如何在C++中找到连接到USB端口(HID或磁盘驱动器)的设备

How to find what device is connected to USB port (HID or Disk drive) in C++

本文关键字:HID 磁盘驱动器 USB C++ 连接 端口      更新时间:2023-10-16

我已经使用SetupDi调用枚举了所有连接的USB端口。此链接提供示例代码。

请任何人告诉我如何找到连接到USB端口的设备,比如它是任何HID设备还是任何磁盘驱动器?

谢谢。

我建议查看WDK中的USBView示例。如果你不熟悉这一点,只需运行它——这个工具会遍历系统上的整个USB树,并打印出每个设备的信息和描述符列表。

在您的情况下,我将从这个示例中的RefreshTree()函数开始,然后您可以按照代码来查看它是如何枚举主机控制器、集线器以及最后的设备的。对于找到的每个设备,您可以查看接口描述符中的bInterface Class,以了解它正在宣传的接口类型(在您的情况下,0x03表示HID接口类,0x08表示大容量存储类)。

获取此示例源代码的最简单方法是安装7.1.0 WDK,该WDK目前在这里可用:http://www.microsoft.com/en-us/download/details.aspx?id=11800