c ++ - Mini-filter undlader at blokere billeder åbnet af 'Windows Photos'

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har kodet et mini-filter, der blokerer alle JPG-billeder med relativ succes.
Undtagen når filen åbnes af 'Windows Photos'. Mini-filteret er registreret for alle MJ\_CREATE'er, og i WinDbg kan jeg se min kode kaldes for at blokere JPG-billeder, når de åbnes af Windows Photos. Imidlertid læses billedet stadig med succes.


PostOperatonCallback:


if (RtlCompareUnicodeString(&fileDetails->Extension, &jpgExt, TRUE) == 0)
{

    DbgPrint("Blocking JPG file...
");
    FltCancelFileOpen(FltObjects->Instance, FltObjects->FileObject);

    Data->IoStatus.Status = STATUS\_ACCESS\_DENIED;
    Data->IoStatus.Information = 0;

    FltReleaseFileNameInformation(fileDetails);

    return FLT\_POSTOP\_FINISHED\_PROCESSING;
}


Filtreringsopstartsparametre:


StartType = 0
Class = "ActivityMonitor"
Altitude= "370030"


Testmiljø:


Billeder kopieres før filtret er indlæst. Filtret er installeret, så systemet genstartes.


Problem:


Billeder kan stadig fås af Windows Photos efter systemstart. (Filtret er indlæst ved opstart, så billederne skal blokeres efter genstart).


Alle andre operationer blokeres med succes, f.eks. (Kopier, Indsæt, Åbning med et andet program som maling). Eventuelle nye JPG-billeder, der forsøger at blive åbnet eller overført efter opstart, er også blokeret.


Jeg undrer mig over, hvad jeg mangler? Bliver nogle billeder lastet så tidligt, at det går forbi FilterManager? Er der en IRP, jeg kan mangle? Mit slutmål for nu er bare at blokere alle JPG'er fra at blive lastet (hvis muligt herunder miniaturen).


En stor tak til alle, der har taget sig tid til at læse mit spørgsmål og til alle, der kan hjælpe.


Skål,


Bryce Woods

Bedste reference


Faktisk Det viste sig Windows 10 caches billeder og deres miniaturer og gemmer dem i '.db' filer. Jeg begyndte at blokere disse filer, og det løste mit problem!