[英]How can I determine the speed of a USB port?
有一种简单的方法可以以编程方式确定USB端口的速度(或版本)吗? 我希望根据最大带宽控制发送到USB端口的数据的速度。
如果您需要Windows解决方案,这应该是一个好的开始:
http://msdn.microsoft.com/en-us/library/ms793313.aspx
基本上你应该试试这个:
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
在驱动程序句柄上执行DeviceIoControl。 这将使您返回结构USB_NODE_CONNECTION_INFORMATION_EX
。 那里有一个名为Speed
的USB_DEVICE_SPEED
类型的USB_DEVICE_SPEED
。 这对您来说也很有趣: CodeProject:枚举已安装设备的属性
要回答您的问题,我确信有办法获取您需要的信息。 我不知道Windows的答案,但Linux有你可以在sysfs目录结构中读取的文件。
速度控制通常由驱动器和控制总线的硬件来处理。 大多数现代USB控制器每端口连接2个控制器。 1表示速度较慢的12Mbps USB 1.0,另一表示较高速度的480Mbps USB 2.0。 内部有一个魔术开关可以正确连接它。 驱动程序本身确保正确枚举所有内容,控制流程等。更高级别的“用户空间”应用程序通常不需要担心这些事情。
此外,如果您的设备能够以高于12Mbps的速度运行,并且将其插入12Mbps端口,则无论您是否愿意,都会将其拖至12Mbps。 难道你想知道它被拖了下来吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.