这跟你操作的类型有关的,可以是自己定的一个参数值
比如:
hDevice = CreateFile("\\\\.\\WbUsb\\Pipe0",     // for Control Pipe
                  GENERIC_READ | GENERIC_WRITE,
                  FILE_SHARE_READ | FILE_SHARE_WRITE,
            NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
然后:
DeviceIoControl(hDevice, IOCTL_WBUSB_PIPE0_WRITE,//defined by user
              ioBuffer, 65536, ioBuffer, 65536,
              &ReturnBytes, NULL);

解决方案 »

  1.   

    我create的是这个:
     hDevice = CreateFile ( "\\\\.\\vwin32", 0, 0, NULL, 0, FILE_FLAG_DELETE_ON_CLOSE, NULL );
      

  2.   

    这个参数,由Driver决定的。你如果编写过VXD和WDM,就非常清楚了。总的来说,它是一种WDM/VXD与WIN32程序使用自定义方式联系的机制。非常类似于#define WM_USER1 WM_USER+100
    这种思路
    在使用DeviceIoControl访问VXD/WDM时,如果该VXD/WDM是自己编写的,这个值就可以自己约定,如果VXD/WDM是别人提供的,那只有使用参考资料了。
    这个值,既约定了“自定义消息”,同时也约定了VXD/WDM与WIN32程序联系时的内存访问缓冲模式。详细的,可以参考MSDN和DDK。