Мне удалось перечислить все подключенные порты USB с помощью вызовов SetupDi. Пример кода доступен на этом ссылка на сайт.
Кто-нибудь может сказать мне, как я могу найти, какое устройство подключено к USB-порту, например, какое-либо устройство HID или любой дисковод?
Благодарю.
Я бы порекомендовал посмотреть на образец USBView в WDK. Если вы не знакомы с этим, просто запустите его — этот инструмент обходит все дерево USB в системе и распечатывает информацию и списки дескрипторов для каждого устройства.
В вашем случае я бы начал с функции RefreshTree () в этом примере, затем вы можете следовать коду, чтобы увидеть, как он перечисляет хост-контроллеры, концентраторы и, наконец, устройства. Для каждого устройства, которое вы обнаружите, вы можете посмотреть на bInterfaceClass в дескрипторах интерфейса, чтобы узнать, какие типы интерфейсов оно рекламирует (в вашем случае 0x03 для класса интерфейса HID и 0x08 для класса запоминающего устройства).
Самый простой способ получить исходный код для этого примера — установить WDK 7.1.0, который в настоящее время доступен здесь:
http://www.microsoft.com/en-us/download/details.aspx?id=11800
Других решений пока нет …