Я пытаюсь поговорить с 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)