读取USB数据,该如何处理

读取USB数据
可以获得USB设备路径: \\?\usb#vid_068e&pid_00d0#6&37fc7702&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
现在CreateFile以读方式创建成功了,但ReadFile时,接收数据长度(recv)为0,出错代码为1。哪里出错了,要怎样才能读它的数据

char InputReport[100]="0";
DWORD recv;
int Result = ReadFile (hRead, InputReport, 100, &recv, NULL);


------解决方案--------------------
要确认USB设备驱动是否支持ReadFile的读方式, 如果不支持, 就肯定支持DeviceIoControl
------解决方案--------------------
具体怎么读, 是有协议的, 跟读硬盘文件不同.
楼主可以把100换成512或1024试试.
------解决方案--------------------
C/C++ code
    ULONG nBytes;
    BOOL bRet;

    bRet = DevIoCtrl(hDevice,
                     IOCTL_Ezusb_GET_DEVICE_DESCRIPTOR,
                     NULL,
                     0,
                     descr,
                     sizeof(USB_DEVICE_DESCRIPTOR),
                     &nBytes,
                     NULL);
    if (bRet)
    {
        this->VendorID = descr->idVendor;
        this->ProductID = descr->idProduct;
    }
    else
    {
        NtStatus = GetLastError();
    }

------解决方案--------------------
bulkControl.pipeNum=512;
这个肯定不对, 管道号, 不是数据长度.
 应该是2,4,6这些值吧,有点记不清了
------解决方案--------------------
你自己试, 或者问硬件人员. USB管道是多选一, 谁知道做硬件的选了哪个. 
看完USB协议再来写程序