Windows10 x64 HID设备的枚举过程
2022-04-15
632
0
群有有一个同学问了HID的枚举过程中。
本人使用自己虚拟的HID设备加上日志,以下的工作流程。看的懂各位就将就看吧:
这个自定义HID设备有一对输入输出端点,分别用来传输输入和输出报告:
- PdoStartDevice 设备启动IRP_MN_START_DEVICE
- HidGetDeviceDescriptor 获取设备描述符
- HidGetConfigrationDescriptor leng=9 获取配置描述符的前9字节
- HidGetConfigrationDescriptor leng=41 获取全部的配置描述符
- SelectConfiguration 选择配置端点
- SET_IDLE
- HidGetReportDescriptor 获取报告描述符
- HID INPUT Report Content Reuqest 进入工作态,下发INPUT Report请求,等待返固结果。
- HID INPUT Report Content Reuqest 再发一个INPUT Report请求,等待返固结果。
以上的都是在没有应用层打开这个HID的情况下,这个读请求其实是如果固件有数据,读到会缓存到HID驱动中的,上位机通过ReadFile读报告内容时,会自动从缓存中的数据复制给上位机。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936