Comment lister tous les périphériques USB connectés dans Visual C ++
-
02-10-2019 - |
Question
En bref: Je dois détecter les événements hotplug de mon appareil CDC USB par PID / VID et obtenir le port COM virtuel correspondant qui a été créé par Windows dans Visual C ++ et à la fin créer une dll .
J'ai un appareil CDC USB que je dois être informé des cas de connexion / déconnexion sous Windows. Mon approche consiste à utiliser RegisterDeviceNotification
et une fenêtre « invisible » pour recevoir les notifications de WM_DEVICECHANGE
. Cette partie travaille à ce jour.
pour autant que j'ai découvert que je dois obtenir la liste des périphériques USB qui est branché, itérer dessus et filtre les appareils avec mon PID / VID? Je suppose que je suis alors en mesure d'obtenir plus d'informations sur le dispositif comprenant le port COM?
Le seul moyen d'atteindre mon objectif d'utiliser les appels SetupDi
à setupapi.h
? Est-ce en utilisant WDK / DDK la seule façon d'atteindre mon objectif?
Dès que je travaille est open source sur http://github.com/vinzenzweber/USBEventHandler . La version Mac est déjà disponible!
La solution
Après avoir creusé des tonnes de documents inutiles à msdn et du débogage je l'ai trouvé le chaînon manquant: appels à SetupDi setupapi.h: Plus d'infos ainsi que le code source pour Mac et Windows peuvent être trouvés dans mon projet USBEventHandler à github.com avec des sources pour Mac et Windows.