我正在尝试使用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上)
答案 0 :(得分:0)
查看libusb-win32 \ src \ driver \ set_configuration.c,返回STATUS_INVALID_PARAMETER
似乎有很多不同的原因。
使用libusb_set_debug
(来自您的用户模式应用程序)设置详细调试级别,然后运行Sysinternals DebugView以查看驱动程序的错误消息。希望您能看到为什么set_configuration
呼叫失败的线索。