Port fantôme vers port série

Mon programme ftdi usb à divers appareils électroniques via un ftdi usb au serial port . Du côté du matériel, il peut arriver que la puce ftdi soit perturbée par une courte panne de courant. Si cela se produit, le logiciel devrait réinitialiser la connexion et continuer à communiquer avec le périphérique. Cela fonctionne bien tant que la panne de courant est suffisamment longue (>~0.5 s) . S’il est très court (comme <~0.1 s ), il n’est plus possible de réinitialiser la connexion pendant plusieurs minutes. Chaque connexion au port échoue avec le message que le port est toujours utilisé. Alors voici ce que j’ai essayé jusqu’à présent:

L’exécution des commandes de l’API FT_ResetDevice , FT_CyclePort et même FT_Rescan et FT_Reload pas.

Détwigr le périphérique de l’USB et de l’alimentation et le retwigr ne aide pas. Le port est toujours bloqué.

Même lorsque le câble USB est déconnecté, un port fantôme est toujours visible dans le gestionnaire de périphériques Windows. Toutes les tentatives de connexion à ce port échouent avec le message de port utilisé, quel que soit le programme que j’utilise pour me connecter au port.

Je pourrais également reproduire l’effet si le port n’était pas ouvert lors de la panne de courant.

Jusqu’ici, la seule action qui a aidé est de redémarrer Windows ou d’attendre quelques minutes. Bien sûr, ce n’est pas une option réalisable.

Ce que je recherche, c’est un moyen de réinitialiser le port USB / série par programmation s’il se trouvait dans un état fantôme. Peut-être que cela pourrait être directement géré via l’API Windows au lieu de l’API ftdi.