Настройка USB не удалась - PullRequest
       31

Настройка USB не удалась

1 голос
/ 09 февраля 2009

Я пытаюсь поговорить с USB-устройством, используя libusb, но мне кажется, что я спотыкаюсь на первом этапе гонки. Я точно знаю, с какими конечными точками мне нужно поговорить и т. Д., Но я даже не могу зайти так далеко. У меня есть, по существу:

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

Теперь я могу посмотреть информацию об устройстве в режиме отладки и знаю, что текущая конфигурация равна 0 (неинициализирована / сразу после перезапуска), и есть ровно 1 действительная конфигурация, которая имеет номер конфигурации 1. Но когда я установить конфиг в 1, я получаю возвращаемое значение -22, которое (передается через строковый преобразователь) переводится как «ошибка Windows API: плохой параметр.

Мне не удалось найти других людей, имеющих подобную проблему, и кажется, что это так просто - я не могу даже требовать интерфейс, или установить alt-интерфейс, или что-то подобное потому что я должен сначала установить конфигурацию. Что мне не хватает? (если это имеет значение: это на WinXP)

1 Ответ

0 голосов
/ 29 июня 2009

Глядя на libusb-win32 \ src \ driver \ set_configuration.c, кажется, есть несколько разных причин для возврата STATUS_INVALID_PARAMETER.

Используйте libusb_set_debug (из приложения пользовательского режима), чтобы установить подробный уровень отладки, затем запустите Sysinternals DebugView , чтобы просмотреть сообщения об ошибках драйвера. Надеюсь, вы увидите подсказку, почему ваш set_configuration вызов не удался.

...