设置USB配置失败

时间:2009-02-09 15:26:50

标签: usb device-driver libusb

我正在尝试使用libusb与USB设备通话,但我觉得我在比赛的第一站绊倒了。我确切地知道我需要与哪些端点交谈等等,但我甚至无法做到这一点。我本质上是:

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

现在,我可以在调试模式下查看设备信息,我知道当前配置为0(未初始化/刚启动后),并且正好有1个有效配置,其配置编号为1.但是当我将配置设置为1,我得到一个返回值-22,它(通过字符串传递)转换为“windows api error:bad parameter。

我一直无法找到其他有类似问题的人,这似乎是一件很简单的事情 - 我甚至无法声称界面,或设置alt界面,或类似的东西,因为我必须先设置配置。我错过了什么? (如果重要:这是在WinXP上)

1 个答案:

答案 0 :(得分:0)

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

使用libusb_set_debug(来自您的用户模式应用程序)设置详细调试级别,然后运行Sysinternals DebugView以查看驱动程序的错误消息。希望您能看到为什么set_configuration呼叫失败的线索。