Как перечислить все прикрепленные USB-устройства в Visual C ++
-
02-10-2019 - |
Вопрос
Вкратце: Мне нужно обнаруживать события Hot Plug из моего 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 уже доступна!
Решение
После копания через тонны бесполезной документации в MSDN и некоторую отладку я обнаружил отсутствующую ссылку: setupdi вызывает в setupapi.h: больше инфо, а также исходный код для Mac и Windows можно найти в моем проекте USBEVENTHANDLER github.com. С источниками для Mac и Windows.