(Вот ответ, но прочитайте сноску о модели угрозы)
- В вашем фильтре вызовите
FltCreateCommunicationPort
.Параметр PFLT_MESSAGE_NOTIFY MessageNotifyCallback
является указателем на функцию обратного вызова для обмена сообщениями. - Ваш клиент вызовет
FilterSendMessage
, чтобы отправить сообщение водителю - В обратном вызове вашего драйверафункция (
MessageNotifyCallback
), сохранить сообщение, выбранное пользователем.Остерегайтесь выравнивания памяти. - При необходимости ваш клиент снова вызывает
FilterSendMessage
, на этот раз, чтобы получить строку, отправленную драйверу. - Вызов
FltCloseCommunicationPort
и другие функции очистки.
Введите findstr /s FltCreateCommuncationPort *.c
в каталоге src
вашей установки WDK.Найдите любой образец фильтра Microsoft, чтобы попробовать свою идею, он быстро заработает.Когда закончите, скопируйте рабочий код в свой фильтр.
Но подумайте о модели вашего потока .Либо я чего-то не понимаю (вполне возможно;), либо что это не стоит затраченных усилий.Почему бы не проверить, установлен ли ваш драйвер и работает ли его цифровая подпись?
Может быть, вы можете обновить свой OP, сообщив нам, как код пользовательского режима узнает, что он отправляет строку (сообщение для отображения) в первую очередь законному драйверу?