2

Я пытаюсь понять, как определяются устройства HID и Composite.

Как узнать (со стороны ОС), что недавно подключенное USB-устройство может только вводить данные (и не может подключаться как жесткий диск, запускать исполняемый файл или что-то еще)?

Далее следует следующее: если ответ заключается в том, что подключенное USB-устройство должно быть HID, может ли это HID состоять из комбинации клавиатура / мышь, например клавиатуры со встроенным трекпадом?

1 ответ1

2

Вопрос не так "Cut 'n' Shut", как это. Идентификация через usb намного больше, чем «одна мышь, один кабель = HID против одной мыши, одна клавиатура, один кабель = композитный».

Например, одиночная клавиатура может быть HID и / или композитным USB-устройством, если у вас когда-либо была клавиатура "Gamer" со встроенными макросами и подсветкой, а также собственное хранилище для сохранения этих макросов для путешествий, то есть составное устройство, потому что оно включает в себя несколько устройств в одной шине.

В противоположность этому, клавиатура Logitech с беспроводной мышью может быть просто устройством HID, потому что это единственный присутствующий класс, хотя может быть два устройства, оба они являются только HID.

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

Источник: USB композитное устройство

И затем есть пункт о том, как Windows видит устройство.

Когда новое USB-устройство подключено к хост-машине, драйвер шины USB создает объект физического устройства (PDO) для устройства и генерирует событие PnP, чтобы сообщить о новом PDO. Затем операционная система запрашивает драйвер шины для идентификаторов оборудования, связанных с PDO.

Драйвер шины также проверяет поля класса устройства (bDeviceClass), подкласса (bDeviceSubClass) и протокола (bDeviceProtocol) дескриптора устройства. Если эти поля равны нулю, устройство является составным устройством, и драйвер шины сообщает о дополнительном совместимом идентификаторе (ID) USB\COMPOSITE для PDO.

Источник: Перечень USB-композитных устройств

Я надеюсь, что это помогло вам понять немного больше по теме.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .