Заблокировать создание файла

Мне нужно написать функциональность, которая не позволяет пользователю создавать файлы на рабочем столе (кроме файлов ярлыков (*.lnk) и каталогов) для Windows XP. После некоторых исследований я пришел к выводу, что это можно сделать с помощью драйвера фильтра файловой системы или мини-драйвера. Изменение разрешений NTFS не работает, так как перемещаемый профиль не может быть загружен/сохранен.

Я посмотрел образцы DDK. например отменитьБезопасно. Они отменяют ввод-вывод, но это не то, чего я хочу. Я видел антивирусные программы, которые блокировали доступ к зараженному файлу, и ОС возвращала код ошибки 5: Отказано в доступе.

Я хочу точно такого же поведения. Итак, как я могу добиться этого в драйвере фильтра?


person AcidJunkie    schedule 06.06.2013    source источник


Ответы (1)


  1. Вам нужно написать драйвер минифильтра и подключитесь к соответствующему тому, где находится папка на рабочем столе.
  2. В минифильтре отфильтруйте IRP_MJ_CREATE
  3. В обратном вызове PreOperation для IRP проверьте путь к файлу, если его путь к папке на рабочем столе не соответствует IRP и не передает его дальше по стеку.
  4. IRP может завершиться ошибкой, выполнив его в обратном вызове перед операцией и установив соответствующий статус в IoStatus.Status. Дополнительные сведения см. по адресу Завершение I/ O Операция в подпрограмме обратного вызова перед операцией
person Rohan    schedule 06.06.2013