клавиатура не отвечает во время загрузки?

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

  1. Я вызываю NtCreateFile для объекта «Device \ KeyboardClass0», и он возвращает
    успешно с ручкой к объекту.
  2. Затем я создаю событие с NtCreateEvent, и он успешно возвращается.
  3. тогда я вызываю NtReadFile с дескриптором и событием.
  4. тогда я жду на NtWaitForSingleObject события, чтобы сообщить мне, когда есть
    что-то почитать.
  5. когда мне сообщат, я собираюсь прочитать клавишу, которая была нажата пользователем.

Проблема в том, что шаг № 5 никогда не достигается, и я нажимаю на USB
клавиш клавиатуры и ничего не происходит, как будто клавиатура не нажата.

Тот же код прекрасно работает с клавиатурой PS / 2, но с клавиатурой USB я не могу
читай что угодно.

-2

Решение

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

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector