Input from keyboard using Native NT API - how to?
От: kpoxman  
Дата: 09.05.06 10:27
Оценка:
Добрый день!

Мое приложение использует Native NT API, для того, чтобы работать при загрузке
ОС в blue screen, как autochk.exe.

Как прочитать char с клавиатуры?

Я попробовал нижепреведенный кусок кода, однако, не помогло. При открытии файла
возвращается код ошибки Invalid Parameter.

UNICODE_STRING KeyboardName = RTL_CONSTANT_STRING(L"\\Device\\KeyboardClass0");
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatusBlock;
NTSTATUS Status;
InitializeObjectAttributes(&ObjectAttributes, &KeyboardName, 0, NULL, NULL);
Status = NtOpenFile(&StdInput, FILE_READ_ACCESS, &ObjectAttributes, &IoStatusBlock, 0, FILE_SYNCHRONOUS_IO_NONALERT);
{
IO_STATUS_BLOCK Iosb;
NTSTATUS Status;
KEYBOARD_INPUT_DATA InputData;
Status = NtReadFile(StdInput, NULL, NULL, NULL, &Iosb, &InputData, sizeof(KEYBOARD_INPUT_DATA), NULL, 0);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.