algerfirst
驱动牛犊
驱动牛犊
  • 注册日期2005-07-13
  • 最后登录2008-10-25
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1780回复:3

关于用VC实现与HID设备通信的问题(1)

楼主#
更多 发布于:2008-10-25 09:50
DeviceHandle=CreateFile
                      (detailData->DevicePath,
                       GENERIC_READ|GENERIC_WRITE,
                       FILE_SHARE_READ|FILE_SHARE_WRITE,
                      (LPSECURITY_ATTRIBUTES)NULL,
                       OPEN_EXISTING,
                       FILE_FLAG_OVERLAPPED,
                       NULL);
createfile放在do while 循环中用来枚举hid设备并打开。但是循环第一次不知为啥会显示
说createfile 访问被拒绝,第二次循环找到指定设备,createfile 成功。如何规避第一次
的情况?

Result = HidD_GetInputReport
                        (DeviceHandle,
                        InputReport,
                        Capabilities.InputReportByteLength);
我想用上面的函数读取HID设备信息,但是系统提示这是“错误函数”,这是怎么回事?

Result = ReadFile
                (DeviceHandle,
                InputReport,
                Capabilities.InputReportByteLength,
                &NumberOfBytesRead,
                (LPOVERLAPPED) &HIDOverlapped);
想用readfile 读取HID 设备信息,但是系统提示“非法句柄”(0xC0000008)
这是怎么回事?
algerfirst
驱动牛犊
驱动牛犊
  • 注册日期2005-07-13
  • 最后登录2008-10-25
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-10-25 09:53
调试发现,Capabilities.InputReportByteLength 的值为0
哪里出错了?
ylinux
驱动牛犊
驱动牛犊
  • 注册日期2007-10-09
  • 最后登录2009-02-25
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望56点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-10-27 09:34
Capabilities.InputReportByteLength 的值为0
因为设备的没有输入报告.
judygsf
驱动牛犊
驱动牛犊
  • 注册日期2007-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-10-29 09:22
你的hid是啥设备?好像键盘鼠标时独占的,不能这样打开,即使打开也不能读写
另外,为啥用循环尼?
游客

返回顶部