Я пишу приложение Дефрагментации во время загрузки. Но проблема в том, что во время загрузки, когда монитор запускается и появляется черный экран, он не реагирует на какие-либо клавиши клавиатуры при нажатии?клавиатура не отвечает во время загрузки?
Мой код выглядит, что:
- Я называю NtCreateFile объекта «Device \ KeyboardClass0», и он возвращает успешно с ручкой на объект.
- Затем я создаю событие с помощью NtCreateEvent и он успешно возвращается.
- затем я вызываю NtReadFile с дескриптором и событием.
- затем я жду на NtWaitForSingleObject, чтобы сообщить мне, когда есть что-то прочитать.
- Когда мне сообщают, я собираюсь прочитать ключ, который был нажат пользователем.
Проблема заключается в том, что шаг # 5 недостижим, и я нажатия на клавиши клавиатуры USB и ничего не происходит, как будто клавиатура не была нажата.
Тот же код отлично работает с клавиатурой PS/2, но с клавиатурой USB я не могу что-то прочитал.
ОК, поэтому у вас есть ошибки с серьезными последствиями. Только этого можно ожидать от такого программного обеспечения. Просто переформатируйте и восстановите резервные копии, прежде чем пытаться отладить вашу утилиту. –
Я проверил тот же код, и я еще не нашел ошибок. Я тестировал один и тот же код на разных машинах Windows. Но проблема все еще сохраняется. Для PS/2 клавиатурный код работает нормально, но дает проблему для USB-клавиатур. Я также отформатировал свою батарею CMOS. Но все равно не получаю никакого решения. Когда инициируется «проверка диска», он правильно распознает ключ Escape. Но для приложение «Deframentation» не распознает нажатия клавиш. –