关于U盘,控制代码IOCTL_GET_USB_DESCRIPTOR有关问题,顶者有分

关于U盘,控制代码IOCTL_GET_USB_DESCRIPTOR问题,顶者有分!
已安装DDK,并包含相关路径,调用DeviceIoControl函数,控制代码为IOCTL_GET_USB_DESCRIPTOR,已包含相关头文件。以下为我的代码:

                  DWORD   dwError,dwSize,dwInDataSize;
CString   strInfo;
USBSCAN_GET_DESCRIPTOR   UsbscanGetDescriptor   =   {   0   };
USB_CONFIGURATION_DESCRIPTOR   UsbDeviceDescriptor   =   {   0   };

HANDLE   hUsbDevice   =   CreateFile   (   "\\\\.\\H: ",//H盘为U盘盘符
GENERIC_READ   |   GENERIC_WRITE,
FILE_SHARE_READ   |   FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL   );

if   (   INVALID_HANDLE_VALUE   ==   hUsbDevice   )
{
dwError   =   GetLastError   ();
strInfo.Format( "CreateFile(%d) ",dwError);
MessageBox(strInfo);
return   ;
}


dwSize   =   sizeof   (   UsbDeviceDescriptor   );
UsbscanGetDescriptor.DescriptorType   =   USB_DEVICE_DESCRIPTOR_TYPE;
UsbscanGetDescriptor.Index   =   1;
UsbscanGetDescriptor.LanguageId   =   0;

dwError   =     (   DWORD   )   DeviceIoControl   (   hUsbDevice,   IOCTL_GET_USB_DESCRIPTOR,   &UsbscanGetDescriptor,  
sizeof(UsbscanGetDescriptor),  
&UsbDeviceDescriptor,  
dwSize,   &dwInDataSize,  
NULL   );
if   (   0   ==   dwError   )
{
dwError   =   GetLastError   (   );
strInfo.Format( "DeviceIoControl(%d) ",dwError);
MessageBox(strInfo);
}
程序运行没问题,但DeviceIoControl函数返回值为0,用GetLastError获得错误代码为50,不明白到底什么地方出了问题,希望能给点提示或者提供点相关的资料,顶者有分,如果问题解决将另开帖送200分。

------解决方案--------------------
The USB device path may should looks like as below, you can find it from registry

\\?\USB#Vid_413c&Pid_4011#0e01312e-0507-1116-2800-0050bfe45ce5#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
------解决方案--------------------
H: 和 \\?\ 打开差不多,不知道是不是 administrator 权限。
------解决方案--------------------
顶! 严重关注ing
------解决方案--------------------
up
------解决方案--------------------
up