3

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

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

现在,我可以在调试模式下查看设备信息,我知道当前配置为 0(未初始化/重启后),并且正好有 1 个有效配置,其配置编号为 1。但是当我设置配置时到 1,我得到一个返回值 -22,它(通过 stringifier 传递)转换为“windows api 错误:错误参数。

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

4

1 回答 1

0

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

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

于 2009-06-28T22:30:21.093 回答