chinspirit
驱动牛犊
驱动牛犊
  • 注册日期2002-10-28
  • 最后登录2005-03-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1042回复:1

为什么不能向USB发命令?

楼主#
更多 发布于:2002-10-28 17:30
欲取得USB设备的status

BYTE out[8] , in[2];
DWORD status=0;
BOOL ret=false;

m_hUSBDev = OpenUsbDevice( &Guid, devName ); // 此步骤返回正确的m_hUSBDev , devName.

memset(in , 0 , 2);
memset(out , 0 , 8);
out[0] = 0x80;
*(PWORD)(out+6) = 2;    // 即最终送到USB设备的数据为8000000000000002 , 共8个byte
ret = DeviceIoControl(m_hUSBDev,IOCTL_BULKUSB_VENDER_READ_DATA,(char*)out,8,(char*)in,2,&status,NULL);    // 此步骤返回 ret=0 , status=0 , in中仍为0,没有数据

errCode = GetLastError();    // 此步骤返回ret= 87 , The parameter is incorrect.

为什么我参照协议送了数据,而它总是说我参数给的不对?我还试了别的命令,同样也不行。
bbear
驱动小牛
驱动小牛
  • 注册日期2002-08-20
  • 最后登录2009-04-16
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-29 09:51
 

*(PWORD)(out+6) = 2; // 即最终送到USB设备的数据为8000000000000002 , 共8个byte


// 即最终送到USB设备的数据为8000000000000002 , 共8个byte
游客

返回顶部