Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Две клавиатуры на одной машине 16.03.05 13:43
Автор: Pavel!!! Статус: Незарегистрированный пользователь
|
Уважаемые коллеги! Помогите!
Необходимо написать драйвер, который общается с некоей железякой на ISA ииногда, по результатам этого общения каким-то способом помещает данные в поток SCAN-кодов (т.е. является для системы второй клавиатурой). Приходит на ум написать filter в вершине стека (над kbdclass), но этот путь ужасает своей громоздкостью. Наверняка есть простой путь решить такую проблему. Подскажите,pls!
|
|
[C++] SendInput спасет отца русской демократии 16.03.05 15:01
Автор: amirul <Serge> Статус: The Elderman
|
> Уважаемые коллеги! Помогите! > Необходимо написать драйвер, который общается с некоей > железякой на ISA ииногда, по результатам этого общения > каким-то способом помещает данные в поток SCAN-кодов (т.е. > является для системы второй клавиатурой). Приходит на ум > написать filter в вершине стека (над kbdclass), но этот > путь ужасает своей громоздкостью. Наверняка есть простой > путь решить такую проблему. Подскажите,pls! Во всяком случае устаревшие keybd_event и mouse_event используют именно его
Экспортируется из user32, является сервисом win32 подсистемы (win32k.sys) посему можно использовать и из ядра (в частности на WinXP SP0 номер сервиса: 0x11f6).
|
| |
У меня так и сделано в старой версии в в юзер-моде(под... 16.03.05 16:21
Автор: Pavel!!! Статус: Незарегистрированный пользователь
|
> Во всяком случае устаревшие keybd_event и mouse_event > используют именно его > Экспортируется из user32, является сервисом win32 > подсистемы (win32k.sys) посему можно использовать и из ядра > (в частности на WinXP SP0 номер сервиса: 0x11f6). У меня так и сделано в старой версии в в юзер-моде(под Win98), а как его(SendInput) использовать
из ядра?
зы: Надо, чтобы работало под nt4, win2000, XP и т.д.
|
| | |
C nt4 в этой линейке всегда проблемы :-) 16.03.05 19:33
Автор: amirul <Serge> Статус: The Elderman
|
> зы: Надо, чтобы работало под nt4, win2000, XP и т.д. Начиная с w2k и WDM появился и win32k.sys в ядро вынесена. В общем скорее всего придется писать отдельно под w2k+ и отдельно под nt4
А из ядра, как я уже сказал используется так же как все системные сервисы. Номер сервиса можно подглядеть только в user32 (потому как оттуда экспортируется SendInput). К счастью сделать это автоматически не составляет труда. А вот для вызова системного сервиса из ядра нужно подготовить все параметры и сделать сделать
call nt!KiSystemService
Его адрес можно тоже подглядеть в любой ZwXxx функции (в режиме ядра). И сделать это тоже можно автоматически
|
|
|