yangzhe
驱动牛犊
驱动牛犊
  • 注册日期2003-05-30
  • 最后登录2005-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2418回复:4

为什么2k和 xp系统通过HidP_GetCaps得到不同的值

楼主#
更多 发布于:2003-10-23 11:10
同样的设备,联到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 也不能清掉,这是怎么回时,有什么办法么?

多谢多谢!

最新喜欢:

simenmcsimenm...
yangzhe
驱动牛犊
驱动牛犊
  • 注册日期2003-05-30
  • 最后登录2005-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-23 20:57
每人理,就自己顶一下。

各位,多帮忙!
多谢!
gaohtao
驱动牛犊
驱动牛犊
  • 注册日期2003-10-20
  • 最后登录2004-01-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-11 14:25
每次关闭程序前晴空接收缓冲区,这样可行吗?
如果不行的话,就直到接收64字节完毕后再关闭。

Cap的问题我也不明白,我在2000下面使用,不用XP。
yux008007
驱动牛犊
驱动牛犊
  • 注册日期2003-10-12
  • 最后登录2004-12-17
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-12 21:28
Capabilities.NumberInputValueCaps 为1;
Capabilities.NumberInputDataIndices 为1;
都是什么意思?
simenmc
驱动牛犊
驱动牛犊
  • 注册日期2003-12-17
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-17 17:14
在win2k,我的程序在和hid设备通讯。因为每次要从设备收到64个字节的数据。但在接受的时候有可能将程序停掉。这时只收到部分数据。然后再重新和设备连接。进行通讯,发现每次都会得到上没有收到的数据,这样导致我每次的数据都不正确。
使用HidD_FlushQueue 也不能清掉,这是怎么回时,有什么办法么?
-------------------------------------------------------
我现在也碰到这个问题 :(
这个问题只会发生在WIN2K,98和XP下不会。
而且只是发生在之前没有安装过HID驱动的PC上。
搞不明白的是,如果将USB电缆线重新拔插一次或将PC重新启动,通讯即会恢复正常。

如果楼主已有解决方法,还请不吝指教。

[编辑 -  12/17/03 by  simenmc]
程序是冷的,人是热的
游客

返回顶部