Как вывести список всех подключенных USB-устройств в Visual C ++ - PullRequest
3 голосов
/ 29 апреля 2010

Вкратце: Мне нужно обнаружить события горячей замены моего устройства USB CDC по PID / VID и получить соответствующий виртуальный COM-порт, который был создан Windows в Visual C ++, и в конце создать DLL.

У меня есть устройство USB CDC, о котором мне нужно уведомлять при подключении / отключении в Windows. Мой подход заключается в использовании RegisterDeviceNotification и «невидимого» окна для получения WM_DEVICECHANGE уведомлений. Эта часть работает до сих пор.

Теперь, насколько я узнал, мне нужно получить список подключенных USB-устройств, выполнить итерацию по нему и отфильтровать устройства с помощью моего PID / VID? Я предполагаю, что смогу получить больше информации об устройстве, включая COM-порт?

Является ли единственным способом достижения моей цели использование SetupDi вызовов в setupapi.h? Является ли использование WDK / DDK единственным способом достижения моей цели?

Как только это сработает, я открываю его на http://github.com/vinzenzweber/USBEventHandler. Версия для Mac уже доступна!

1 Ответ

5 голосов
/ 06 мая 2010

После поиска тонны бесполезной документации на msdn и некоторой отладки я обнаружил недостающую ссылку: SetupDi вызывает в setupapi.h: больше информации, а также исходный код для Mac и Windows можно найти в моем проекте USBEventHandler на github.com с исходниками для Mac и Windows.

...