Основной вопрос, на который я пытаюсь ответить, прост:
Какое максимальное количество символов в секунду теоретически можно записать с помощью устройства HID в Windows 10?
Чтобы ответить на этот вопрос, я должен выяснить, как ОС Windows 10 обрабатывает ввод с клавиатуры. Пролистав сотни страниц документации, я запутался больше всего на свете.
Собранная справочная информация
Из базовых знаний в области электроники известно, что для аппаратного нажатия кнопки, которое должно интерпретироваться программным обеспечением, это можно проверить двумя способами: опрос и прерывания.
Опрос повторно проверяет состояние оборудования на предмет изменения входного значения.
Прерывания - это события, инициируемые аппаратным обеспечением, которые прерывают код основной линии, чтобы предоставить информацию об изменении в оборудовании.
Поскольку опрос крайне неэффективен при обработке событий, которые должны иметь мгновенный ответ, прерывания, как правило, используются. Опрос не используется, так как для мониторинга мгновенных изменений потребуется очень высокая частота опроса, много раз в секунду, использующая слишком много системных ресурсов.
Поэтому я предполагаю, что ОС Windows использует аппаратные прерывания для обработки нажатий клавиатуры. Тем не менее, большинство механических кнопок подвержены подпрыгиванию и требуют примерно 10 мсек для восстановления. Я предполагаю, что это устанавливает максимальный теоретический предел с аппаратной точки зрения до ~ 100 Гц.
Но как насчет программного обеспечения? Как Windows 10 обрабатывает прерывания? Сколько прерываний может быть сгенерировано в секунду?