求助,DeviceIoControl返回50
HANDLE hDevice = CreateFile(L"\\\\?\\usbstor#disk&ven_kingston&prod_datatraveler_3.0&rev_#60a44c425091f1a1b98300ba&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}",
GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL, OPEN_EXISTING, 0, NULL);
if(hDevice == INVALID_HANDLE_VALUE)
{
printf("Failed to open USB device\n");
return 1;
}
USB_DEVICE_DESCRIPTOR *deviceDescriptor;
DWORD bytesRead;
BYTE descriptorBuffer[1024];
USB_DESCRIPTOR_REQUEST request;
request.ConnectionIndex = 0; // 连接索引
request.SetupPacket.bRequest = USB_REQUEST_GET_DESCRIPTOR;
request.SetupPacket.wValue = (USB_STRING_DESCRIPTOR_TYPE << 8) | 0x00; // 获取设备描述符
request.SetupPacket.wIndex = 0x0409; // 英文语言 ID
request.SetupPacket.wLength = sizeof(descriptorBuffer);
BOOL success = DeviceIoControl(hDevice, IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, &request, sizeof(USB_DESCRIPTOR_REQUEST), &request, sizeof(USB_DESCRIPTOR_REQUEST), &bytesRead, NULL);
我这边想用C++代码获取USB设备的descriptor的信息。这边success总是为0,GetLastError()获取的值为50(貌似为不支持网络请求)。
不知道DeviceIoControl函数是否是哪里传值有问题?求大神帮忙!!!!!!!
...全文
相关推荐
DeviceIoControl详解及例程
硬件设备读写的基本操作DeviceIoControl,入门级教程
实战DeviceIoControl全集
网上有很多版本的《实战DeviceIoControl》,我这里做了一下整理,希望能对大家有所帮助。
DeviceIoControl解读
DeviceIoControl的技术应用,我刚从网上下来的,非常好的语言
DeviceIOControl函数实战演示及源代码
DeviceIOControl实战演示及源代码,是应用程序与设备通信很好的示例教程
实战DeviceIoControl.rar
实战DeviceIoControl。 Aida整理。希望与大家多交流驱动开发经验。


硬件/系统
