C++ 迷你过滤器无法阻止由';Windows照片&x27;
我已经编写了一个迷你过滤器,它可以相对成功地屏蔽所有JPG图像。 “Windows照片”打开文件时除外。迷你过滤器已注册到所有MJ_CREATE,在WinDbg中,当Windows照片打开时,我可以看到我的代码被调用以阻止JPG图像。但是,映像仍然成功加载 术后回拨:C++ 迷你过滤器无法阻止由';Windows照片&x27;,c++,c,windows,driver,minifilter,C++,C,Windows,Driver,Minifilter,我已经编写了一个迷你过滤器,它可以相对成功地屏蔽所有JPG图像。 “Windows照片”打开文件时除外。迷你过滤器已注册到所有MJ_CREATE,在WinDbg中,当Windows照片打开时,我可以看到我的代码被调用以阻止JPG图像。但是,映像仍然成功加载 术后回拨: if (RtlCompareUnicodeString(&fileDetails->Extension, &jpgExt, TRUE) == 0) { DbgPrint("Blocking JPG
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"
测试环境:
在加载过滤器之前,将复制图像。安装过滤器后,系统将重新启动
问题:
系统重新启动后,Windows照片仍可访问图像。(过滤器在启动时加载,因此从技术上讲,映像应该在重新启动后被阻止)
成功阻止所有其他操作,例如(复制、粘贴、使用其他程序(如paint)打开)。在引导后尝试打开或传输的任何新JPG映像也会被成功阻止
我想知道我错过了什么?是否有些映像加载得太早以至于绕过了FilterManager?是否有我可能丢失的IRP?我现在的最终目标是阻止加载所有JPG(如果可能的话,包括缩略图)
非常感谢所有花时间阅读我的问题的人,以及所有能够提供帮助的人
干杯
布莱斯·伍兹(Bryce Woods)事实上,Windows 10可以缓存图像及其缩略图,并将其存储在“.db”文件中。我开始阻止这些文件,它解决了我的问题