我只是想知道如何在窗口中找到连接到USB3.0或USB2.0端口的USB设备。我正在使用c ++和win32 API。请让我知道你的想法。
答案 0 :(得分:0)
根据您的问题的措辞,我假设您知道设备何时连接,并且需要知道它所连接的端口是否能够支持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驱动程序示例的一部分。