Здравствуйте, подскажите пожайлуста как реализовать такие задачи.
В драйвере-фильтре клавиатуры, необходимо реализовать такие две функции,как,
1 — скрытие нажатия пользователем определенных клавиш;
2 — дублирование нажатия некоторых клавиш пользователем;
,например при нажатии прользователем клавиши 'q', данный символ не должен
появляться в строке ввода какого либо приложения в user mode и по пункту 2
наоборот, при нажатии некоторой клавиши ее символ нужно 'задвоить'...
На основе примеров получилось сделать драйвер-фильтр который присоединяется
к драйверу клавиатуры, через IoSetCompletionRoutine, в callback процедуре
вижу коды нажатых клавиш.. но в каком направлении двигаться дальше
для реализации выше описанных пунктов, ума не приложу..
Благодарю за ответ.
Берутся исходники KBDFILTR и читаются. Делается на основе их.
Имеем в виду — в KBDFILTR продемонстрированы сразу 2 технологии — а) фильтр клавиатуры как таковой и б) "втыкатель" внутрь i8042prt. Второе — не нужно в данном случае, оно нужно только для поддержки железа, которое дейзи-чейнится в PS/2шный разьем.
IRPы там практически не используются. Там надо профильтровать коллбэк, который зовется портом ниже (HID или i8042) вверх в KBDCLASS. Параметр коллбэка — массив структур, по структуре на нажатие, в структурах лежат сканкоды.