我的硬件设备连接到PC并公开虚拟串行端口。串口号取决于我插入设备的物理USB端口。我的应用程序有没有办法知道我的设备连接到哪个物理USB端口?这真的可以帮助我优化代码。目前,我的应用程序通过迭代所有可能的端口确定设备连接的实际端口号,这是一个漫长的过程。如果我知道它连接了哪个USB端口,我已经知道它暴露了哪个通信端口,我可以为每个特定的物理USB端口(配置文件)保存/加载这些设置。我正在使用C ++ / MFC和Windows 7.我也希望这可以在XP中使用。
答案 0 :(得分:1)
WDK中提供了USBView示例源。如果您对此不熟悉,只需运行它 - 该工具遍历系统上的整个USB树,并打印出每个设备的信息和描述符列表,以及主机控制器和集线器上的位置。
从此示例中的RefreshTree()函数开始,然后您可以按照代码查看它如何枚举主机控制器,集线器和最终设备。
获取此示例源代码的最简单方法是安装当前可用的7.1.0 WDK:http://www.microsoft.com/en-us/download/details.aspx?id=11800