我已经设法使用 SetupDi 调用枚举所有连接的 USB 端口。此链接上提供了示例代码。
请任何人告诉我如何找到连接到 USB 端口的设备,例如它是任何 HID 设备还是任何磁盘驱动器?
谢谢。
我建议查看 WDK 中的 USBView 示例。如果您对此不熟悉,只需运行它 - 该工具会遍历系统上的整个 USB 树,并打印出每个设备的信息和描述符列表。
在您的情况下,我将从本示例中的 RefreshTree() 函数开始,然后您可以按照代码查看它如何枚举主机控制器、集线器和最终设备。对于您找到的每个设备,您可以查看接口描述符中的 bInterfaceClass 以找出它正在宣传的接口类型(在您的情况下,0x03 表示 HID 接口类,0x08 表示海量存储类)。
获取此示例源代码的最简单方法是安装 7.1.0 WDK,目前可在此处获得:http: //www.microsoft.com/en-us/download/details.aspx?id=11800