1

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

4

1 回答 1

1

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

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

获取此示例源代码的最简单方法是安装 7.1.0 WDK,目前可在此处获得:http: //www.microsoft.com/en-us/download/details.aspx?id=11800

于 2013-08-13T04:41:13.890 回答