Драйвер клавиатуры (kbdclass из MS WDK), Необходимо переопре
От: XTender  
Дата: 18.02.10 17:14
Оценка:
Добрый день, надеюсь кто-нибудь мне поможет с моей проблемой. В Microsoft Windows Device Kit есть пример драйверов клавиатуры и мыши (kbdclass и mouclass), но я никак не могу разобраться как и где мне внести изменения, чтобы, например, backspace считывался как escape.
Насколько я понял чтение происходит в методе KeyboardClassReadCopyData и скорее всего в
RtlMoveMemory(
destination,
(PCHAR) DeviceExtension->DataOut,
moveSize
);

Верно ли это, и если верно, то каким образом мне нужно работать с этими буферами?
Желательно, пожалуйста, с рабочим примером.

P.S. изменять необходимо именно в драйвере, т.к. переопределения клавиш должны работать исключительно в одной из двух подключенных клавиатур.
P.S.2. еще есть доп. вопрос каким образом можно сделать в драйвере же возможность обработки комбинации нажатий (например, двойной Esc в течение секунду — это Home).
Re: Драйвер клавиатуры (kbdclass из MS WDK), Необходимо пере
От: x64 Россия  
Дата: 26.02.10 21:39
Оценка:
XT>В Microsoft Windows Device Kit есть пример драйверов клавиатуры и мыши (kbdclass и mouclass)...

Это не драйвера клавиатур, драйвера клавиатур это i8042prt.sys и kbdhid.sys, а это классовые драйвера для клавитур и мышей, соответственно.

XT>Желательно, пожалуйста, с рабочим примером.


То, что тебе нужно, вполне решается классовым драйвером-фильтром клавиатуры.

XT>P.S. изменять необходимо именно в драйвере, т.к. переопределения клавиш должны работать исключительно в одной из двух подключенных клавиатур.


Ну да, пиши драйвер типа WDM-фильтр для класса Keyboard, и делай уже в обработчиках, что тебе нужно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.