стандарты USB не говорят ничего конкретного о клавиатурах
или мыши etc. в любой версии.
Это HID стандарт, который делает. Отчет модификаторы 6-key plus
структура была предназначена, чтобы сделать жизнь проще для BIOS (так они
не пришлось разбирать дескрипторы отчетов), но стало де-факто
"стандарт" для клавиатур независимо. Однако, спрятанный стандарт позволяет
для всех видов различные отчеты, и все основные ОС поддерживают его полностью,
так что нет необходимости в дополнительных водителях.
другое ограничение что низкоскоростной пакет данным по USB может только быть a
максимум 8 байт. Отчет может быть больше, но это начинает делать
значительное количество времени для отправки. Стандарт USB позволяет только
низкоскоростное устройство для отправки одного пакета Каждые 10 МС (на конечную точку). ОС
обычно подталкивает до 8 мс, т. е. 125 Гц (без хаков). Занимая
к 16ms для того чтобы получить keypress к была бы лажа! Так у нас было
фаза производителей, пытающихся получить больше от низкоскоростных чипов, чем они
действительно может справиться с трюками, такими как несколько конечных точек и т. д. : (
full-speed USB освобождает эти ограничения. Каждый пакет может быть 64
байты, и могут быть отправлены каждые 1 мс (опять же, на конечную точку). Это позволяет
спрятанный стандарт будет использоваться на полную силу.
наконец, НКРО не делается только ради этого. Делать полное NKRO
требует только одного бита в ключ, а не один байт, а не
рассматривать модификаторы как частный случай. Таким образом, клавиатура может отправить, например, 104
ключи в простом 13 байтах-используя другую схему 13 байтов только
управление 11КРО (11 клавиш + модификаторы + один зарезервированный байт). Конечно, это
все еще много ключей, но это гораздо менее элегантный метод (и все же
не-6KRO, так что все еще может быть несовместимо с тупыми хозяевами).