USB总线驱动中的标识串

来源:本站
导读:目前正在解读《USB总线驱动中的标识串》的相关信息,《USB总线驱动中的标识串》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《USB总线驱动中的标识串》的详细说明。
简介:本文将介绍USB总线驱动中的标识串

在驱动设备的枚举和加载过程中,设备的标识串起着很重要的作用。设备标识串一般分为硬件标识串、兼容类标识串和设备标识串这几种。这些标识串其实是由上一级的驱动程序(一般是总线驱动)产生的,Windows系统用它来寻找和加载相应的驱动程序。

举一个简单的例子,当你插入一个U盘时,USB总线就会检测到这个U盘设备被插入了,然后,它就会创建这个U盘设备的PDO,同时呢,会给这个PDO产生标识串,就象你在设备管理器中设备属性对话框的详细信息中看到的那样:

设备范例Id:

USBVID_123A&PID_567B1234567890ABCDEF

硬件Id:

USBVid_123A&Pid567B&Rev_0001

USBVid_123A&Pid567B

兼容Id:

USBClass_08&SubClass_06&Pro_50

USBClass_08&SubClass_06

USBClass_08

每种设备产生的标识串都是不一样的,特别的,对于USB设备,这些标识串的产生是有一定的规范的。

USB设备分为单功能设备和多功能设备。单功能设备最常见,如U盘、鼠标等,而多功能设备是指设备描述符里具备多个接口描述符的设备,如USB手柄,包含按键和听筒及受话器,按键部分定义的是HID接口,听筒及受话器部分定义的是Audio接口。

多功能设备的枚举比单功能设备要复杂一些,USB总线要先加载usbccgp.sys驱动。然后,这个驱动按每个功能接口继续枚举设备。

硬件标识串

它是由多个子字符串组成的,以来分隔,以结尾。

对于普通的单功能设备来说,一般是2个子字符串,第一个字符串是 USBVID_xxxx&PID_xxxx&REV_xxxx,每个xxxx都是4位的16进制字符数字,分别表示Vendor ID, Product ID, Revision ID。一般而言,这三项能精确确定某一款具体的设备。但一般情况下,Revision ID不是很重要,在设备驱动安装时可以不指定,所以就有了第二个字符串USBVID_xxxx&PID_xxxx。

对于多功能设备来说,一般包含一个子字符串USBVID_xxxx&PID_xxxx&MI_xx,前面的xxxx分别表示是 Vendor ID和Product ID,后面的xx则是表示接口的数目,与设备的接口描述符的bInterfaceNumber项一致。

兼容标识串

它也是由多个子字符串组成的,以来分隔,以结尾。

对于普通的单功能设备来说,一般是3个子字符串,第一个字符串是 USBCLASS_xx&SUBCLASS_xx&PROT_xx,每个xx都是2位的16进制字符数字,分别表示Class ID, SubClass ID, Protocol ID。一般而言,这三项能精确确定该设备是属于哪一类设备用的是什么协议。其中Class ID最重要,其它两项则有可能会被忽略,所以就有了第二、第三个子字串:USBCLASS_xx&SUBCLASS_xx, USBCLASS_xx。

对于多功能设备来说,一般是4个子字符串,前三个子字符串是差不多 的:USBDEVCLASS_xx&SUBCLASS_xx&PROT_xx,USB DEVCLASS_xx&SUBCLASS_xx,USBDEVCLASS_xx,第四个子字符串则是 USBCOMPOSITE。

提醒:《USB总线驱动中的标识串》最后刷新时间 2024-03-14 01:13:35,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《USB总线驱动中的标识串》该内容的真实性请自行鉴别。