HID 类设备驱动程序笔记

HID 类驱动程序枚举设备的顶级集合,并为每个顶级集合创建物理设备对象(PDO)。 
用户模式应用程序或内核模式驱动程序可以通过打开其 PDO 并使用 HIDClass 支持例程 
和 HID 类驱动程序 IOCTL 来访问顶级集合。

HID class 支持函数:设备发现和设备信息获取,数据移动,hid控件分析。

顶级集合是一组面向特定软件使用者(或使用者类型)的功能分组。

顶级集合的内部结构和功能:

HIDP_CAPS结构汇总了顶级集合的功能:
链接集合 描述顶级集合中包含的嵌套集合的组织。
按钮功能数组 和 值功能数组 描述顶级集合支持的控件的功能。
报表描述符定义一个或多个 顶级集合。
与每个集合关联的报表项定义一个或多个 HID 报表。
预先分析的数据(PreparsedData) 是与 顶级集合关联的报表描述符数据。用于获取 集合的信息。

集合信息:
集合功能。
按钮功能数组 和 值功能数组,描述集合支持的控件的功能。
链接集合数组,描述其 链接集合的内部组织。

特定控件使用情况由其使用情况页(usagepage)、 使用情况 ID、名称说明和定义(条目)。 使用情况页值是 16 位无符号值。

控件实例包含两种:按钮和值

HID 客户端驱动程序:

如果驱动程序是功能或筛选器驱动程序,则它已附加到集合的设备堆栈。
如果驱动程序不是功能驱动程序或筛选器驱动程序,则可以使用即插即用通知来查找 HID 集合。

系统提供的 HID 微型驱动程序不支持设备的端口或总线,则需要供应商提供微型驱动程序。
application -->vendor (specific deivce) driver stack-->hid 客户端驱动程序-->hid类驱动程序-->传输微型驱动程序(HID mini driver)--> port or bus driver stack
HID 设备生成驱动程序堆栈:
pnp管理器-->传输驱动pdo(winusb)-->传输微型驱动程序(HID mini driver)-->hid类驱动程序-->HID顶级集合PDO-->供应商提供的功能或筛选器驱动程序为顶级集合创建 FDO 或筛选器 DO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值