USB通用驱动源码分析
+ -

USBCCGP 复合设备接口设备ID

2021-09-15 1053 1

复合 USB 设备上的接口可分组到集合中或分别代表一个 USB 函数。
如果接口未分组在集合中,则通用父驱动程序会为每个接口创建一个 PDO,并为每个 PDO 生成一组硬件 Id。

USB设备ID

接口 PDO 的设备 ID具有以下格式:

USB\VID_v(4)&PID_p(4)&MI_z(2)

在这些 Id 中:

  • v (4) 是 USB 标准委员会分配给供应商的四位供应商代码。
  • p (4) 是供应商分配给设备的四位数产品代码。
  • z (2) 是从接口描述符的bInterfaceNumber字段中提取的接口号。

如果是HID报告描述符实现的复合设备,则还有COL_x(2),如HID\VID_1A2C&PID_2124&REV_0110&MI_01&Col02

USB设备兼容 ID

一般父驱动程序还通过使用接口描述符中的信息(USB接口描述符)生成以下兼容的 id:

USB\CLASS_d(2)&SUBCLASS_s(2)&PROT_p(2)
USB\CLASS_d(2)&SUBCLASS_s(2)
USB\CLASS_d(2)

在这些 Id 中:

  • d (2) 是类代码(bInterfaceClass)
  • s (2) 是子类代码(bInterfaceSubClass)
  • p (2) 是协议代码(bInterfaceProtocol)

    其中每个代码均为四位数字。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB通用父驱动usbccgp.sys的过滤UVC摄像头、UAC麦克风和HID设备硬件ID
激动的心情,无溢言表。。虽然只是一个很简单的东西。。但相于折腾了这么久,还是很开心的了。最近有个需求,功能是这样的:有一个USB复合设备,连接到windows系统中它在windows下的设备树如下:USB Composite Device(usbccgp.sys)UVC CameraUAC ......
HID复合设备(键盘、鼠标)的实现
在使用一些USB键盘或鼠标的时候,特别是一些电竟高档HID设备时,经常发现这些设备会额外定义一些特别的快捷键,使得这些设备不仅有基础设备(如键盘,鼠标)的功能,也有一些特别的快捷功能(如系统声音的放大放小)。甚至更有一些复杂的设备,只需要一个USB接口,就同时支持鼠标键盘功能或在键盘的额外区域支持触......
Windows驱动硬件ID生成
Windows驱动硬件ID生成的测试代码这里只是对代码进行收藏,方便以后要用的时候直接复制来用Index = swprintf(Buffer, L"USB\Class_%02x&SubClass_%02x&Prot_%02x", DeviceDescript......
USBCCGP 复合设备接口设备ID
复合 USB 设备上的接口可分组到集合中或分别代表一个 USB 函数。如果接口未分组在集合中,则通用父驱动程序会为每个接口创建一个 PDO,并为每个 PDO 生成一组硬件 Id。USB设备ID接口 PDO 的设备 ID具有以下格式:USBVID_v(4)&PID_p(4)&MI......
Windows驱动usbstor硬件ID生成规则
如本人手中的金士顿U盘,在设备管理器中如下:我们查看设备的属性信息,可以看到,其使用的驱动是:USBPCapy.sysUSBSTOR.SYS从驱动来看,这是一个典型的BOT协议的U盘,更多详见:http://www.usbzh.com/article/detail-353.htmlUSBST......
HID报告描述符复合HID设备
如我们电脑中有一个键盘,其设备管理器中如下:它们的硬件ID分别如下:USBVID_1A2C&PID_2124&REV_0110USBVID_1A2C&PID_2124&REV_0110&MI_00HIDVID_1A2C&PID_2124......
HIDCLASS.SYS获取HID设备的硬件ID
在应用层通过如下代码实现: HANDLE tmp_DeviceHandle = CreateFile(st.DeviceName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, ......
USB设备硬件ID和兼容ID的生成规则介绍
USB设备在插入电脑后,会触发一系列的操作,详见Windows下USB设备的枚举过程分析:https://www.usbzh.com/article/detail-420.html当然这里更多是站在硬件或者USB层面来讲的,但是USB设备与驱动是怎么绑定的呢?这里得先介绍一个概念叫做硬件ID和兼容I......
USBIP 请求设备ID(IRP_MN_QUERY_ID)
一个设备包括各种ID,不过都是通过IRP_MN_QUERY_ID来完成的,只是根据不同的参数来区分不同的ID类型。 case IRP_MN_QUERY_ID: status = pnp_query_id(vdev, irp, irpstack); break;......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!