Может ли USB-устройство сообщить хосту, какой альтернативный интерфейс использовать при запуске? - PullRequest
1 голос
/ 25 декабря 2011

Возможно ли, чтобы устройство USB сообщало хосту, какие альтернативные интерфейсы использовать, во время запуска или в любое другое время?

Я знаю о запросах интерфейса GET_INTERFACE и SET_INTERFACE, но у меня сложилось впечатление, что хост просто будет предполагать, что при запуске действует альтернативный интерфейс 0 - по крайней мере, для устройств HID. Я надеюсь найти способ обойти это без написания драйвера хоста.


Справка: Я работаю над личным проектом, включающим конвертацию различных PS / 2 и других устройств в USB (HID). Обычно для этого не требуется драйвер, поскольку ОС обычно поддерживают такие устройства. Однако для интерфейса клавиатуры я бы хотел предоставить несколько вариантов NKRO, поэтому некоторые интерфейсы клавиатуры будут иметь больше, чем стандартные клавиши-модификаторы 6+. Это нормально работает в операционных системах, которые я пробовал, но я хотел бы позволить пользователю выбирать, какой интерфейс клавиатуры использовать. В идеале это будет сохранено на устройстве и снова вступит в силу при запуске, поэтому мне не нужно предоставлять драйвер для устройства.

1 Ответ

2 голосов
/ 05 января 2012

Нет, хост, (строго говоря - драйвер HID в вашем случае) по умолчанию всегда выбирает первый интерфейс.

Но вы можете изменить порядок, в котором ваше устройство отправляет информацию об интерфейсе во время перечисления, поэтому выбранный интерфейс всегда будет первым.

...