代码之家  ›  专栏  ›  技术社区  ›  Coderer

设置USB配置失败

  •  1
  • Coderer  · 技术社区  · 16 年前

    我试着用libusb和一个usb设备通话,但我觉得我在比赛的第一站绊倒了。我很清楚我需要谈什么样的终点,但我甚至都做不到。本质上,我有:

    usb_device *dev = ...; // opened from get_busses()
    usb_set_configuration(dev, dev->config[0].bConfigurationValue); // bConfigVal = 1
    

    现在,我可以在调试模式下查看设备信息,我知道当前配置是0(未初始化/刚重启),只有1个有效配置,配置号为1。但是当我将config设置为1时,我得到的返回值是-22,它(通过字符串化器传递)转换为“WindowsAPI错误:错误参数”。

    我没能找到其他人也有类似的问题,这似乎是一件很简单的事情——我甚至不能声明接口,或者设置alt接口,或者其他类似的事情,因为我必须先设置配置。我错过了什么?(如果重要的话:这是在WinXP上)

    1 回复  |  直到 14 年前
        1
  •  0
  •   Ilya    15 年前

    查看libusb-win32\src\driver\set\configuration.c,返回的原因似乎有很多不同 STATUS_INVALID_PARAMETER .

    使用 libusb_set_debug (从用户模式应用程序)设置详细调试级别,然后运行 Sysinternals DebugView 查看驱动程序的错误消息。希望你能找到一条线索来解释 set_configuration 呼叫失败。