Каким образом реализовать когда в драйвер приходят IRP_MJ_READ или IRP_MJ_WRITE передать содержимое буфера определенному приложению.
наверно надо регистрировать процедуры обработки этих IRP. Если все таки передавать определенному приложению то наверно лучше использовать IOCTL вот здесь можно почитать подробнее http://www.wasm.ru/series.php?sid=9 по данному вопросу полно информации в гугле также есть под определенным приложением я имел ввиду свое конечно же
Мне нуно вот такое реализовать: Драйвер запускается вместе системой. Когда приходят запросы IRP_MJ_READ и WRITE то драйвер должен проверить запущен ли определенный юзерский процесс под названием "XXX". Если данный процесс запущен то мы аттачимся к нему, находим в памяти юзерского процесса определенную сигнатуру( в юзермоде char Buffer[]="SIGN") и в этом место драйвер пихает данные полученные от READ или WRITE. А как аттачится к юзерскому процессу и пихать данные туда???
пардон, я еще совсем бегиннерс, не осознал сути вопроса, нашел что определить можно по полю IRP Tail.Overlay.Thread, в MSDN написано Is a pointer to the caller's thread control block
я только несовсем понял зачем нужно проверять запущен ли ХХХ по приходу этих IRP?? приатачиться к процессу можно меняя адресное пространство на его, прочитал что для этого используют функции KeAttachProcess KeStackAttachProcess