我已设法使用 SetupDi 调用枚举所有已连接的 USB 端口。示例代码可在此处获得 link .
谁能告诉我如何找到连接到 USB 端口的设备,例如它是任何 HID 设备还是任何磁盘驱动器?
谢谢。
最佳答案
我建议查看 WDK 中的 USBView 示例。如果您对此不熟悉,只需运行它 - 该工具遍历系统上的整个 USB 树并打印出每个设备的信息和描述符列表。
对于您的情况,我将从本示例中的 RefreshTree() 函数开始,然后您可以按照代码查看它如何枚举主机 Controller 、集线器和最后的设备。对于您找到的每个设备,您可以查看接口(interface)描述符中的 bInterfaceClass 以找出它正在广告的接口(interface)类型(在您的情况下,HID 接口(interface)类为 0x03,大容量存储类为 0x08)。
获取此示例源代码的最简单方法是安装当前可用的 7.1.0 WDK: http://www.microsoft.com/en-us/download/details.aspx?id=11800
关于c++ - 如何在 C++ 中找到连接到 USB 端口(HID 或磁盘驱动器)的设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17833273/