【发布时间】:2013-09-06 02:46:04
【问题描述】:
我使用的是 ZTE USB Modem 设备。我的设备安装到 Ports 类(驱动程序是 usbser.sys)。 我遵循了 msdn 示例“如何使用 WinUSB 函数访问 USB 设备”。 一切都很好,直到我调用函数 winusb_initialize。它返回 false 并带有 getlasterror 87 i-e ERROR_INVALID PARAMETER。我在“http://www.microchip.com/forums/m653017-print.aspx”上找到了解决方案,但它没有帮助。当我尝试更改 x86 文件夹中的 winusb.inf 文件时,计算机说即使我以管理员身份登录,访问也被拒绝。 请帮助我。
提前致谢
【问题讨论】:
-
你为什么关心USB?通常调制解调器只是为调制解调器提供一个“虚拟”串行端口。您可以将调制解调器用作普通串行设备...
-
其实我必须为任何USB设备制作一个通用程序。我必须使用winusb完成分配。
-
代码 sn-p 是 BOOL GetWinUSBHandle(HANDLE hDeviceHandle, PWINUSB_INTERFACE_HANDLE phWinUSBHandle) { if (hDeviceHandle == INVALID_HANDLE_VALUE) { return FALSE; } BOOL bResult = WinUsb_Initialize(hDeviceHandle, phWinUSBHandle); if(!bResult) { //错误。 printf("WinUsb_Initialize 错误 %d.", GetLastError());返回错误; } 返回 bResult; }
-
你是怎么弄到句柄的?
-
*hDeviceHandle = CreateFile (lpDevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); if (*hDeviceHandle == INVALID_HANDLE_VALUE) { //错误。 printf("错误 %d.", GetLastError());完成; }
标签: visual-c++ winusb