补充:设备为HID设备,协议为通用协议。

解决方案 »

  1.   

    这是最底层的函数,可以用,但不太方便。查一下这个USB驱动的接口函数,一般封装了设备、端点等类,通过OPEN,端点的READ,WRITE等函数读写,要简单些。
      

  2.   

    应该知道usb的设备描述符
    配置描述符
    接口描述符
    端点描述符
     然后打开某个固定的端点
    进行数据传输。
      

  3.   

    用writefile和readfile进行读写。
      

  4.   

    看来还是有好多高人。我把情况再说的详细一些:
    我用二层循环查找的办法,查出了设备的描述符,
    就是上面函数中的pNodeKeyName,值为:\\.\\HCD2\{36FC9E60-C465-11CF-8056-444553540000}\0035,
    (对应注册表里的Driver值)
    用上面CreateFile后,返回句柄为hNodeDevice,
    我单步跟踪,其返回值为:0x00000740。
    (注册表里还有一个HardWareId值为USB\Vid_0471&Pid_1011&Rev_0001 USB\Vid_0471&Pid_1011,是不是要用它阿?)
    而后,我定义往设备中写的内容:
    char inbuf[10];
    PCHAR pInput;
    DWORD sendSize;
    LPDWORD pSendSize;
    char outbuf[50];
    PCHAR pOutBuff;
    DWORD returnSize;
    LPDWORD pReturnSize;strcpy(inbuf, "00");
    pInput = inbuf;
    sendSize = 2;
    pSendSize = &sendSize;
    pOutBuff = outbuf;
    returnSize = 8;
    pReturnSize = &returnSize;bSend = DeviceIoControl(hDevice,
    FILE_WRITE_ACCESS,
    pInput,
    inputSize,
    pOutBuf,
    sizeof(outbuf),
    pReturnSize,
    NULL);
    结果DeviceIoControl返回失败换用WriteFile:
    bSend = WriteFile(hDevice,
    pInput,
    inputSize,
    pInputSize,
    NULL);
    也是失败.不知道错在哪里,是不是参数FILE_WRITE_ACCESS不对?
    还是哪里有错误?