当前位置: 代码迷 >> 驱动开发 >> vs2005开发USB-HID应用,writefile返回0x57解决方法
  详细解决方案

vs2005开发USB-HID应用,writefile返回0x57解决方法

热度:58   发布时间:2016-04-28 10:13:27.0
vs2005开发USB-HID应用,writefile返回0x57
最近使用VS2005 SDK开发一个USB-HID的应用程序,现在对于hid设备能识别出来,creatfile也没问题,但是继续writefile的时候出问题,使用getlasterror返回值一直是0x57
代码和网上给的例程都是一致的,现在使用BusHound软件能够和hid设备通信,能观察到下发和上传的数据,这样能证明底层USB驱动没问题么?
我现在定位不了错误,不知道怎么继续解决了,希望大牛能帮我分析下
------解决方案--------------------
看一下
Capabilities.OutputReportByteLength的值是多少
这个值应该比你的下位机读取长度大1
------解决方案--------------------
BYTE *pByte = new BYTE[m_nBlockSize+1];
ZeroMemory(pByte, m_nBlockSize + 1);
memcpy(pByte+1, buf, min(m_nBlockSize-1, len));
DWORD dwWrite = 0;
BOOL bWrite  = ::WriteFile(m_hUsb, pByte, m_nBlockSize, &dwWrite, NULL);
delete [] pByte;
return bWrite;
要这样来发.
m_nBlockSize = Capabilities.InputReportByteLength;

------解决方案--------------------
第一个字节要写入1个output Report ID,后面才跟数据。

个人建议,仅供参考。
------解决方案--------------------
hid里第一个字节是报告ID
  相关解决方案