【发布时间】:2017-02-08 14:27:55
【问题描述】:
我只是想知道如何在 window 中找到连接到 USB3.0 或 USB2.0 端口的 USB 设备。我正在使用 c++ 和 win32 API。请让我知道你的想法。
【问题讨论】:
-
1.找出设备连接到哪个端口。 2. 确定是否是 USB 3 端口。我敢打赌,这是两个截然不同的问题。我还敢打赌,如果您搜索,您会找到涵盖这两个方面的问题。
标签: winapi visual-c++
我只是想知道如何在 window 中找到连接到 USB3.0 或 USB2.0 端口的 USB 设备。我正在使用 c++ 和 win32 API。请让我知道你的想法。
【问题讨论】:
标签: winapi visual-c++
根据您的问题的表述方式,我假设您知道设备何时连接,并且需要知道它连接的端口是否支持 USB 3.0 速度。
查看USB_NODE_CONNECTION_INFORMATION_EX 结构,特别是其中的字段Speed,它可能对应于枚举USB_DEVICE_SPEED 中定义的值。对于 USB 3.0,Speed 的值为 UsbSuperSpeed。
documentation page 表示您可以使用IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 请求来获取有关与指定 USB 端口关联的连接的信息。
您可能还会发现文档中的以下注释很有帮助:
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 只返回有关端口的信息。IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX,则返回有关端口和连接设备的信息。USB_NODE_CONNECTION_INFORMATION_EX 结构是USB_NODE_CONNECTION_INFORMATION 的扩展版本。这两个结构是相同的,除了一个成员。在扩展结构中,Speed 成员表示设备速度。我还鼓励您单步执行 usbview 项目,该项目是 Github 中可用的 Windows 驱动程序示例的一部分。
【讨论】: