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

标签 c++ winapi usb usb-drive

我已设法使用 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/

相关文章:

c++ - 如果只知道程序名称,如何使用 CreateProcess 打开程序?

c# - 从网络摄像头拍照 C#

c++ - 与 Android 设备的 Windows MTP/WPD 通信

audio - 如何使用 Raspbian Stretch 在 Raspberry Pi 3B 上设置默认麦克风?

c# - 将 USB 设备名称映射到 C# 中的 com 端口?

c++ - 信号 - 循环内的槽连接

c++ - 模板和单独编译

c++ - C函数指针

c++ - 在保持递归性的同时使这个函数线程安全

winapi - Win32。如何将 POINT 转换为 LPARAM