Когда то встал вопрос и выяснилось, что выход из проблемы один - это драйвер Начал штудировать уроки Four-F. Еще не прошел все статьи, но думаю текущих знаний(которые даютца в статье) уже достаточно, что бы начать писать то, что мне нужно. А собственно цель: написать драйвер, который будет имитировать действия юзера с клавиатуры и мыши. Т.е. устройство, которе будет только для записи. Я так понимаю, в процедуре DriverEntry нужно описать две какую-то MajorFunction, что бы можно писать в устройство . Предпологаю, что IRP_MJ_*_KEYBOARD и IRP_MJ_*_MOUSE. Так же предпологаю, что придетца найти родные драйвера мыши/клавы и что-то с ними наколдовать. Но откровенно говоря, я по статье прочитал, как устроен драйвер и как сделать каркас, но не имею ни какого понятия, что делать дальше. Дайте плиз совет Дайте плиз описание-что делать Помогите одним словом.
Для начало почитать вот это http://www.wasm.ru/forum/viewtopic.php?id=29640 "Внутреннее устройство Выни" вообще книга уматовая. Если ее захочешь почитать то скачивай боевой комплект IT, там она в отличном качестве.
А может кто-нить просто словами описать какие из функций описать и что в них там делать? А дальше уже думаю я разберусь. Мне прост саму затею понять бы..
Что бы разобраться тебе как раз и нужно прочесть эту книгу. Я сейчас тоже дров разрабатываю и читаю эту книгу.
DDK + исходники из DDK + Programming the Microsoft Windows Driver Model (Walter Oney) к примеру + google все есть в сети
Я, конечно, не бог в программирования ядра, но все же мне думается твоих знаний еще не достаточно, чтобы это все написать. Начну со сравнения цели и заголовка темы:"Драйвер-фильтр мыши и клавы" против "написать драйвер, который будет имитировать действия юзера с клавиатуры и мыши. Т.е. устройство, которе будет только для записи." Как я понял - конечной целью является эмуляция ввода данных. В первом случае, с драйвером-фильтром, ты предлагаешь написать драйвер, который будет падать стек драйверов мышки или клавиатуры и, создавая и посылая, "лживые" IRP-запросы имитировать нужные тебе действия. Во втором случае - ты хочешь написать драйвер шины, который будет создавать устройства "виртуальная мышь" или "виртуальная клава". У обоих способов есть свои заморочки. Но ни в одном из них ты не будешь обрабатывать IRP_MJ_*_KEYBOARD и IRP_MJ_*_MOUSE(таких вообще нет). Родные дрова также смотреть не надо!
Ну сорри, что не так назвал) Я прост это всё на пальцах разбирал по примерам из уроков Four-F'a. Я так понял, мне нужно обработаь всего одну IRP_MJ, на чтение и там посылать в порты клавы полученные скан-коды. Пологаю что "посылать" будет выглядеть из пары строк. И у меня всё упераетца в то, как это сделать и что куда послать(простите за пошлую двусмысленность) Сам скелет драйвера более менее ясен и всё науровне "найти из-за чего этот синий экран"