【问题标题】:winusb_initialize returns falsewinusb_initialize 返回 false
【发布时间】: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


【解决方案1】:

我你说你的手柄很好,你需要做的就是:

   BOOL bResult;
   WINUSB_INTERFACE_HANDLE usbHandle;
   bResult = WinUsb_Initialize(deviceHandle, &usbHandle);

如果bResulttrue,说明你正确初始化了WinUsb。

【讨论】:

    猜你喜欢
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2015-08-02
    • 2012-05-17
    • 2013-10-26
    • 2013-01-06
    • 2011-01-24
    相关资源
    最近更新 更多