繁体   English   中英

如何确定正在使用哪个USB端口?

[英]How to determine which USB port is being used?

我的硬件设备连接到PC并公开了虚拟串行端口。 串行端口号取决于将设备插入哪个物理USB端口。 我的应用程序可以通过某种方式知道我的设备连接到哪个物理USB端口吗? 这确实可以帮助我优化代码。 目前,我的应用程序通过迭代所有可能的端口来确定每次连接设备时的实际端口号,这是一个漫长的过程。 如果我知道它连接了哪个USB端口,那么我已经知道它公开了哪个通讯端口,并且可以为每个特定的物理USB端口(配置文件)保存/加载这些设置。 我正在使用C ++ / MFC和Windows7。我也希望它能在XP中工作。

WDK中提供了USBView示例源。 如果您对此不熟悉,只需运行它-该工具将遍历系统上的整个USB树,并打印出每个设备的信息和描述符列表以及主机控制器和集线器上的位置。

从此示例中的RefreshTree()函数开始,然后可以按照代码查看如何枚举主机控制器,集线器以及最终设备。

获取此样本源的最简单方法是安装7.1.0 WDK,当前可在此处下载: http : //www.microsoft.com/zh-cn/download/details.aspx?id=11800

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM