阅读:2419回复:4
为什么2k和 xp系统通过HidP_GetCaps得到不同的值
同样的设备,联到win2k 和winxp系统得到的数据不一样
HidP_GetCaps (PreparsedData, &Capabilities); 在win2k: Capabilities.NumberInputValueCaps 为1; Capabilities.NumberInputDataIndices 为1; 在winxp: Capabilities.NumberInputValueCaps 为2; Capabilities.NumberInputDataIndices 为64; 在report中定义的report count为64,report size为8。 这是什么原因呢? 还有个问题。 在win2k,我的程序在和hid设备通讯。因为每次要从设备收到64个字节的数据。但在接受的时候有可能将程序停掉。这时只收到部分数据。然后再重新和设备连接。进行通讯,发现每次都会得到上没有收到的数据,这样导致我每次的数据都不正确。 使用HidD_FlushQueue 也不能清掉,这是怎么回时,有什么办法么? 多谢多谢! |
|
最新喜欢:![]() |
沙发#
发布于:2003-10-23 20:57
每人理,就自己顶一下。
各位,多帮忙! 多谢! |
|
板凳#
发布于:2003-11-11 14:25
每次关闭程序前晴空接收缓冲区,这样可行吗?
如果不行的话,就直到接收64字节完毕后再关闭。 Cap的问题我也不明白,我在2000下面使用,不用XP。 |
|
地板#
发布于:2003-12-12 21:28
Capabilities.NumberInputValueCaps 为1;
Capabilities.NumberInputDataIndices 为1; 都是什么意思? |
|
地下室#
发布于:2003-12-17 17:14
在win2k,我的程序在和hid设备通讯。因为每次要从设备收到64个字节的数据。但在接受的时候有可能将程序停掉。这时只收到部分数据。然后再重新和设备连接。进行通讯,发现每次都会得到上没有收到的数据,这样导致我每次的数据都不正确。
使用HidD_FlushQueue 也不能清掉,这是怎么回时,有什么办法么? ------------------------------------------------------- 我现在也碰到这个问题 :( 这个问题只会发生在WIN2K,98和XP下不会。 而且只是发生在之前没有安装过HID驱动的PC上。 搞不明白的是,如果将USB电缆线重新拔插一次或将PC重新启动,通讯即会恢复正常。 如果楼主已有解决方法,还请不吝指教。 [编辑 - 12/17/03 by simenmc] |
|
|