Минифильтр и IRP_MJ_DIRECTORY_CONTROL после операции - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь перехватить вызовы на FindFirstFile/ZwQueryDirectoryFile из указанного c приложения от Minifilter. Цель состоит в том, чтобы приложение увидело папку, которая не существует. Поэтому, если приложение перечисляет файлы и папки из пустой папки C:\Temp, это приложение не должно видеть, что папка пуста, вместо этого оно должно видеть папку в этом каталоге (что я предоставлю в результате вывода).

Теперь я понимаю, что мне нужно изменить DirectoryBuffer или Mdl буфер, указанный MdlAddress. По сути, мне нужно вернуть еще один FILE_BOTH_DIR_INFORMATION экземпляр структуры вызывающей стороне. Проблема в том, что эти буферы имеют фиксированный размер, поэтому я не могу ничего добавить в них.

Итак, мой вопрос:

  1. Какие варианты у меня есть. Должен ли я выделить больший объем памяти из невыгружаемого пула и заменить указатель DirectoryBuffer в пост-операции (то же самое с Mdl)? Сможет ли звонящий получить доступ к этой памяти?

  2. Если так, что мне делать с исходным буфером, должен ли я его освободить?

  3. Если нет, как я могу вернуть больший буфер вызывающей стороне в пользовательском режиме?

Я потерян, любая помощь будет очень полезна оценил.

Спасибо

...