Мини-фильтр не блокирует изображения, открытые "windows photos"
Я закодировал мини-фильтр, который блокирует все изображения JPG с относительным успехом. За исключением тех случаев, когда файл открывается с помощью "Windows Photos". Мини-фильтр зарегистрирован для всех MJ_CREATE, и в WinDbg я вижу, как мой код вызывается для блокировки JPG-изображений при открытии Windows Photos. Однако изображение по-прежнему успешно загружается.
тестовая среда:
Изображения копируются перед загрузкой фильтра. Фильтр устанавливается, после чего система перезагружается.
Проблема:
Изображения все еще могут быть доступны с помощью Windows Photos после перезагрузки системы. (Фильтр загружается при запуске, поэтому технически изображения должны быть заблокированы после перезагрузки).
Все остальные операции успешно блокируются, например (копирование,вставка, Открытие с помощью другой программы, такой как paint). Любые новые JPG-изображения, пытающиеся быть открытыми или перенесенными после загрузки, также успешно блокируются.
Что я уже пробовал:
PostOperatonCallback:
if (RtlCompareUnicodeString(&fileDetails->Extension, &jpgExt, TRUE) == 0) { DbgPrint("Blocking JPG file...\n"); FltCancelFileOpen(FltObjects->Instance, FltObjects->FileObject); Data->IoStatus.Status = STATUS_ACCESS_DENIED; Data->IoStatus.Information = 0; FltReleaseFileNameInformation(fileDetails); return FLT_POSTOP_FINISHED_PROCESSING; }
Параметры запуска фильтра:
StartType = 0 Class = "ActivityMonitor" Altitude= "370030"
Интересно, что я упускаю? Загружаются ли некоторые изображения так рано, что они обходят FilterManager? Есть ли IRP, который я, возможно, упускаю? Моя конечная цель на данный момент-просто заблокировать загрузку всех JPG-файлов (если это возможно, включая миниатюру).
Огромное спасибо всем, кто нашел время прочитать мой вопрос, и всем, кто может помочь.
Овации,
Брайс Вудс