如何确定Windows上的USB端口版本?
问题描述:
我正在运行Windows 7和Python 3.5。 连接USB棒后,我的目标是确定连接的端口版本(2.0,3.0,3.1)以及USB棒支持哪种版本的USB。 任何想法表示赞赏。如何确定Windows上的USB端口版本?
答
你应该看看微软的USBView。
它使用Windows API获取有关每个USB端口和每个设备的信息并显示它。这些信息包括USB端口支持的速度和设备正在使用的速度。
您可以运行它作为一个GUI或者你可以用这样的参数运行它,使之成为数据保存到文本文件:
usbview /saveall:usb.txt
这里是文本输出的一个片段显示的信息你有兴趣在我的USB耳机:
Is Port User Connectable: yes
Is Port Debug Capable: no
Companion Port Number: 1
Companion Hub Symbolic Link Name: USB#VID_0451&PID_8046#5&16bdd27b&0&22#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
USB 1.1: yes
USB 2.0: yes
USB 3.0: no
Device Power State: PowerDeviceD0
---===>Device Information<===---
English product name: "Logitech G930 Headset"
ConnectionStatus:
Current Config Value: 0x01 -> Device Bus Speed: Full (is not SuperSpeed or higher capable)
Device Address: 0x09
Open Pipes: 1
USBVIEW是开源的,甚至有一个MSYS2包,所以你可以尝试一下不编译任何东西。您也许能够从Microsoft找到预编译的二进制文件。
最简单的路径可能是从您的Python程序运行USBView并解析其文本输出。另一种选择是查看source code for USBView,并以某种方式将其转换为Python或将Python C扩展出来。
+0
似乎工作解决方案。谢谢。 – wolfich
测试速度可能是一个想法 –
,这是不够可靠。我可以得到一个低速USB棒,并认为它是2.0。而且,这需要时间。最好的方法是使用像WMI查询那样的不合格,但不确定在哪里寻找。 – wolfich
收集这些信息后你会做什么? – WhatsThePoint