VS2019分析HID报告描述符解析源代码
2021-06-30
2475
0
常有人问,有没有HID解析的工具,好像除了usb官网提供的dt.exe,没有其它的好的东东了。
Linux下有相关的工具,在本站的社区里:http://www.usbzh.com/zone/detail-12.html 可以查看
做HID开发,其实最麻烦的就是HID报表描述符了。
这里本人移植了ReactOS的 HidParser.sys的源代码到应用层,现将代码贡献出来。
当然对于特定的设备类,其在其驱动中有更加详尽的代码解析报表描述符。我这里也只是抛砖引玉,既然可以移植,应该所有的相关sys的代码都可以移植了。
工程配置
- VS2019
- Windows10 x64
编译调试效果:
测试代码
main.cpp源代码为:
int main()
{
HIDP_DEVICE_DESC Hidp ;
UCHAR Report[] = {
0x05, 0x01, // Global Generic Desktop
0x09, 0x02, // Local Mouse
0xa1, 0x01, // Main app collection
0x09, 0x01, // Local Pointer
0xa1, 0x00, // Main phy collection
0x95, 0x03, // Global ReportCount
0x75, 0x01, // Global ReportSize
0x05, 0x09, // Global Button
0x19, 0x01, // Local Usage Min
0x29, 0x03, // Local Usage Max
0x15, 0x00, // Global Logical Min
0x25, 0x01, // Global Logical Max
0x81, 0x02, // Main Input(Data,Var,Abs)
0x95, 0x01, // Global ReportCount
0x75, 0x05, // Global ReportSize
0x81, 0x03, // Main Input(Cnsr,Var,Abs)
0x95, 0x03, 0x75, 0x08, // Global ReportCount Global ReportSize
0x05, 0x01, // Global Generic Desktip
0x09, 0x30, // Local X
0x09, 0x31, // Local Y
0x09, 0x38, // Locak Wheel
0x15, 0x81, // Global Logical Min
0x25, 0x7f, // Global Logical Max
0x81, 0x06, // Main Input(Data,Var,Rel)
0xc0 // Main End collection
};
HidP_GetCollectionDescription((PHIDP_REPORT_DESCRIPTOR)Report, sizeof(Report), 0, &Hidp);
return 0;
}
工程文件目录文件:
2021/06/22 19:29 <DIR> .
2021/06/22 19:29 <DIR> ..
2021/06/22 17:27 23,168 api.cpp
2021/06/22 17:29 7,921 context.cpp
2021/06/22 19:29 <DIR> Debug
2021/06/22 17:48 8,933 hidp.cpp
2020/04/09 18:06 236 hidp.h
2021/06/22 17:49 34,719 hidparser.cpp
2021/06/22 17:44 10,320 hidparser.h
2021/06/22 17:28 7,623 hidparser.vcxproj
2021/06/22 17:28 1,788 hidparser.vcxproj.filters
2021/06/22 16:59 168 hidparser.vcxproj.user
2021/06/22 19:29 3,007 main.cpp
2021/06/22 17:47 19,933 main.h
2021/06/22 17:48 40,574 parser.cpp
2021/06/22 17:07 8,634 parser.h
什么是hidparser.sys 可参见:http://www.usbzh.com/zone/detail-31.html
下载地址
USB中文网技术交流QQ群下载
源代码/hidparser(www.usbzh.com).zip
QQ群号:952873936
QQ群文件下载需加入本站QQ群。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936