繁体   English   中英

如何判断USB设备插入哪个端口?

[英]How to tell which port a USB device is plugged into?

我的c#app必须管理多个USB设备,这些设备是来自同一制造商的相同产品。

如果用户插入我的设备中的3个,然后拔掉其中一个,我需要知道3个设备中的哪个被拔掉。

但是,当我注册设备并接收WM_DEVICECHANGE通知时,DBT_DEVTYP_DEVICEINTERFACE返回的数据对于每个设备都是相同的。

如果我可以在设备到达或移除时获取USB端口信息,它将解决我的问题,但我找不到办法来做到这一点。

有什么建议么?

我对C#一无所知,但在常规C + Win32中,您可以使用SetupAPI函数枚举总线并探测总线上的所有设备。 如果枚举主桥,则应该能够在USB层次结构中找到您的设备。 我链接的那篇文章向您展示了如何使用API​​,如果您查看SetupDiGetClassDevs()系统调用,则可以选择USB系统总线(即参数2,“枚举器”)。

此外,如果您下载Windows驱动程序工具包,我知道它有一个示例应用程序,可以枚举USB总线并提供有关每个USB设备的信息。 该应用程序使用SetupAPI,它可以作为一个很好的参考。

我知道微软已逐渐将Win32 API作为.NET类公开,但我不确定这个API。

暂无
暂无

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

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