您现在的位置是:主页 > USB百科 >
同样的soc板子用的同一个USB驱动设备名称,厂商和产品ID都一样,使用什么方法来区别?
发布时间:2022-12-04 05:45:06所属栏目:USB百科 已帮助人编辑作者:【USB接口百科】
今天在本站USB中文网 http://www.usbzh.com 的技术交流群中有位同学提问:
各位老铁,我们自己的soc板子用的usb一个驱动,那么usb设备名称,厂商和产品ID就一样了,这个是没有方法来区别下比如一个PC同时插入我们的3块USB对于这个问题,就是典型的多个相同的板板接入电脑中,并且由于硬件的设备信息一致,会导致在设备管理器中出现多个相同的设备。
对于与此相关联的问题记得自己当时写了一篇关于HID的相关文章,详见:
HID 枚举系统中所有HID设备信息代码示例:http://www.usbzh.com/article/detail-111.html
从文章至少是HID设备来看,这种情况至少在Windows下是存在的。通过HID的示例代码来看,对于同一种设备类型,系统会对这种设备类型注册相同的设备接口GUID,这个系统会根据这个接口GUID来创建一个设备链接名。
这里我们区分一下Windows USB设备ID或者说名称的几个概念:
硬件ID:包括PID,VID,REV(bcdVersion)实例ID:相同的硬件ID的设备实例标识ID.从上面来看,这里比较关键的就是实例ID,这个在Windows驱动中会通过IRP_MN_QUERY_ID的BusQueryInstanceID来获取。详见:windows加载即插即用PNP设备的过程 http://www.pnpon.com/article/detail-160.html
设备的链接名其实就是这些设备的相关信息的组合,成一个比较长的名字,具体可详见设备链接名:
本对于本人的计算机中关于USB鼠标的HID设备根设备:
我们分别查看设备的属信息:
我们再通过Winobj查看其对位的链接名:
再通过设备管理器查看设备的
从上图可以看到,设备链接名包括:
设备的总线类型:USB设备的硬件ID:VID,PID设备的类型 :GUID_DEVINTERFACE_USB_DEVICE {A5DCBF10-6530-11D2-901F-00C04FB951ED}设备的实例名:这部分与设备的位置和第几个同类型设备枚举有关。以上的这些信息在Windows应用层都是可以通过SetupApi函数来获取,而在内核中是可以通过 Windows驱动中获取设备PDO的属性信息http://www.usbzh.com/article/detail-546.html 可以获得。
其实在早些的时候,记得大概第一次做windows驱动时,记得同事是在板卡上设备一个拨码开关,通过读取这个拨码开组合不同的值来确定是那个设备。但这是一个风险,就是如果相同的板卡拨码开关置相同的值时,又会有问题的。
以上就是USB接口百科为您提供同样的soc板子用的同一个USB驱动设备名称,厂商和产品ID都一样,使用什么方法来区别?的解读,本文章链接: http://www.usb-hub.cn/usbbk/42123.html 欢迎分享转载,更多婚礼相关资讯请前往USB百科
上一篇:手机的USB调试模式简介
相关文章
USB接口百科推荐
USB3.0和USB2.0有什么区别
Windows下USB堆栈如何枚举USB设备
USB2.0一定支持高速模式吗?
USB设备的枚举过程分析
USB通信设备类CDC简介
USB规范分类大全和USB协议关系树
USB3.0传输速度是多少?
USB的连接模型
USB与其它总线相比的优点是什么
USB的VendorID、ProductID和BcdDevice有什么作用
USB设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol
DisplayLink简介 USB显示技术
同样的soc板子用的同一个USB驱动设备名称,厂商和产品ID都一样,使用什么方法
USB 配对/伴随端口(Companion Port)
USB设备和USB集线器HUB的数据传输