阅读:1093回复:2
usb GET_DEVICE_DESCRIPTOR问题
bResult = DeviceIoControl(h, // 设备句柄
IOCTL_D12_GET_DEVICE_DESCRIPTOR, // 命令 NULL, // 输入缓冲区 0, // 不需要输入数据 长度 (PVOID)&c, // 输出数据缓冲区 1, // 输出数据缓冲区 &nBytes, // 输出数据长度 (LPOVERLAPPED)NULL); // 用同步I/O 请问,(PVOID)&c, // 输出数据缓冲区 1, 如何写才正确? |
|
最新喜欢:nameku... |
沙发#
发布于:2005-02-25 11:56
搞定了:
// us421.cpp : Defines the entry point for the console application. #include \"stdafx.h\" #include \"windows.h\" #include \"stdio.h\" #include \"winioctl.h\" #include \"iostream.h\" #include \"ioctl.h\" char completeDeviceName[256]=\"\\\\\\\\?\\\\usb#vid_0557&pid_2404#5&d4ccdbd&0&2#{36fc9e60-c465-11cf-8056-444553540000}\\\\PIPE00\"; int main(int argc, char* argv[]) { HANDLE h; BOOL bResult; // DeviceIoControl的返回结果 USB_DEVICE_DESCRIPTOR deviceDescriptor; ULONG nBytes = 0; // 输出数据长度 char c; /////////////////////////// h = CreateFile(completeDeviceName, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING, // FILE_FLAG_OVERLAPPED, 0, NULL); if (INVALID_HANDLE_VALUE==h){ printf(\"打开USB设备失败\\n\"); }else{ printf(\"打开USB设备成功\\n\"); } // 控制请求 bResult = DeviceIoControl(h, // 设备句柄 IOCTL_D12_GET_DEVICE_DESCRIPTOR, // 命令 NULL, // 输入缓冲区 0, // 不需要输入数据 长度 &deviceDescriptor, // 输出数据缓冲区 sizeof(deviceDescriptor), // 输出数据缓冲区 &nBytes, // 输出数据长度 (LPOVERLAPPED)NULL); // 用同步I/O if (!bResult){ printf(\"DeviceIoControl失败\\n\"); }else{ printf(\"DeviceIoControl成功\\n\"); } printf(\"0x%x \\n\", deviceDescriptor.idVendor ); CloseHandle(h); return 0; } |
|
板凳#
发布于:2005-02-25 13:10
指针就可以了
|
|
|