Wie alle angeschlossenen USB-Geräte in Visual C ++ zur Liste
-
02-10-2019 - |
Frage
Kurz notiert: Ich brauche Hotplug-Ereignisse meines USB CDC Gerät durch PID / VID und erhalten die entsprechenden virtuellen COM-Port zu erkennen, die von Windows in Visual C erstellt wurde ++ und am Ende eine DLL erstellen .
Ich habe ein USB CDC Gerät, das ich brauche, der benachrichtigt werden, wenn sie verbunden / unter Windows getrennt. Mein Ansatz ist RegisterDeviceNotification
und ein „unsichtbares“ Fenster verwenden WM_DEVICECHANGE
Benachrichtigungen zu erhalten. Dieser Teil funktioniert so weit.
Nun, soweit ich herausgefunden, ich brauche die Liste der USB-Geräte zu erhalten, die angeschlossen ist, Iterierte über sie und Filter aus den Geräten mit meinem PID / VID? Ich gehe davon aus, dass ich dann in der Lage, um weitere Informationen über das Gerät einschließlich dem COM-Port zu bekommen?
Ist der einzige Weg, um mein Ziel zu verwenden SetupDi
Anrufe in setupapi.h
zu erreichen? Ist die Verwendung WDK / DDK der einzige Weg, um mein Ziel zu erreichen?
Sobald das funktioniert Ich Open-Source es auf http://github.com/vinzenzweber/USBEventHandler . Die Mac-Version ist bereits verfügbar!
Lösung
Nachdem bei Msdn durch Tonnen von nutzloser Dokumentation zu graben und einige Debuggen fand ich das missing link: SetupDi Anrufe in setupapi.h: Mehr Infos sowie Quellcode für Mac und Windows kann in meinem USBEventHandler Projekt unter github.com mit Quellen für Mac und Windows.