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

Мне нужно создать приложение для создания блочного файла в папке, я пытался увидеть несколько примеров о минифильтре, но до сих пор не понимаю, как это сделать. Нашел этот кусок кода, который выполняет обработку. Это ссылка на пример https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter/minispy

CONST FLT_OPERATION_REGISTRATION Callbacks[] = 
{
{ IRP_MJ_CREATE,
  0,
  SpyPreOperationCallback,
  SpyPostOperationCallback },

{ IRP_MJ_WRITE,
  0,
  SpyPreOperationCallback,
  SpyPostOperationCallback },

{ IRP_MJ_SET_INFORMATION,
  0,
  SpyPreOperationCallback,
  SpyPostOperationCallback },

  { IRP_MJ_CLOSE,
  0,
  SpyPreOperationCallback,
  SpyPostOperationCallback },

   { IRP_MJ_OPERATION_END } };

person koly86    schedule 11.02.2019    source источник


Ответы (1)


Короче говоря, любое открытие или создание файла завершается обратным вызовом IRP_MJ_CREATE. Вы можете получить имя открываемого (или созданного) файла, имя папки и т. д. (FltGetFileNameInformation) и решить, разрешить ли запрос (вернуть FLT_PREOP_SUCCESS_NO_CALLBACK, что позволяет продолжить запрос) или установить IoStatus на что-то вроде STATUS_ACCESS_DENIED и вернуть FLT_PREOP_COMPLETE, чтобы заблокировать запрос. Вкратце это то, что должен делать ваш фильтр, чтобы заблокировать создание файлов в определенной папке.

person koly86    schedule 14.02.2019