Доброе время суток! Я написал драйвер-фильтр методом атача к девайсу \Device\KeyboardClass0 и заюзал IRP_MJ_READ для получение сканкодов. У меня следующий вопрос: Как мне потом можно отослать этот сканкод программе в юзермоде (программа не моя, могу ставить хуки и подменять оконною процедуру) пробовал сделать методом PostMessage, для этого нашел в памяти KeServiceDescriptorTableShadow и приатачился к процессу csrss чтобы вызвать функцию NtUserPostMessage, суть в том что идет BSOD так как атачиться к процессу можно IRQL: < DISPATCH_LEVEL А диспетчер IRP_MJ_READ выполняется на высшем IRQL(могу ошибаться, прошу не пинать).... Что можете посоветовать? Заранее всем спасибо
я тут немного подумал и... Если создать поток и буфер обмена между потоком и диспетчером IRP_MJ_READ, то есть диспетчер получает сканкод и записывает в буфер, а поток берет с буфера и атачиться к процессу csrss и отсылает сообщения сервисом NtUserPostMessage. Так делать глупо? есть ли другие решения проблемы?
Пацтулом Я чего не пойму... зачем тебе csrss и NtUserPostMessage? Есть приложение, в котором ты можешь подшаманить над кодом... ну и добавь поток с циклом выборки получаемых от драйвера данных из заранее оговоренной области памяти... Передавать сканкоды мессагами типа WM_PAINT... хм ... добрый дедушка Билли узнает - с ума сойдет точно