USB,HID报告描述符,XP和Win8相关疑问。
我在报告描述符里放进了一段MOUSE的描述符(用另一个REPORT_ID),在XP和WIN8在都可以正常识别,同时可以正常操作,请问怎样才能使设备在XP下只发出MOUSE的报告,在WIN8下发单点和多点触控的报告呢?
就是说我这个设备怎么才能识别当前的操作系统?
[解决办法]
针对系统建立多个程序文件 不用在同一文件中满足多个系统
[解决办法]
兄弟, XP 和 WIN7, WIN8 下的枚举过程是不一样的.
WIN 7和WIN 8 上 在枚举设备时, 会使用Get_Report 询问你支持的点数, 然后使用 Set_Report设置你的输入模式. 而XP下是没有的.
也就是说, 你的设备默认都是工作在鼠标报告的模式, 在XP下, 一切没有发生, 而在Win 7 和Win8上, 系统询问你支持的点数, 你回答 2, 然后系统设置的输入模式, 你把报告模式切换到触摸. 就好了 .
http://msdn.microsoft.com/en-us/library/ff553739(v=vs.85).aspx
这个地方就是那个描述.
如果你HID做的好, 在Linux, MAC OS下都是鼠标, 如果做的不好,有的地方就不能用.
我现在就 Android的HID Multi-Touch 没有搞定了.