Native Nt API - Keyboard input

Тема в разделе "WASM.BEGINNERS", создана пользователем Kpoxman, 8 май 2006.

  1. Kpoxman

    Kpoxman New Member

    Публикаций:
    0
    Регистрация:
    8 май 2006
    Сообщения:
    1
    Адрес:
    Spb
    Добрый день!



    Подскажите, как можно в Native Nt API считать символ с клавиатуры? Предполагается, что программа будет работать при загрузке ОС, как autochk.exe.



    Я попытался сделать следующее (но при открытии файла возвращается код ошибки, INVALID PARAMETERS):



    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);

    }