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

时间:2013-07-24 11:53:57

标签: c++ winapi usb usb-drive

我已设法使用SetupDi调用枚举所有连接的USB端口。示例代码位于此link

请任何人告诉我如何找到连接到USB端口的设备,例如是否有任何HID设备或任何磁盘驱动器?

感谢。

1 个答案:

答案 0 :(得分:1)

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

在您的情况下,我将从此示例中的RefreshTree()函数开始,然后您可以按照代码查看它如何枚举主机控制器,集线器和最终设备。对于您找到的每个设备,您可以查看接口描述符中的bInterfaceClass,以找出它所宣传的接口类型(对于HID接口类为0x03,对于大容量存储类为0x08)。

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