微筛选器无法阻止'Windows Photos'打开的图像

Mini-filter fails to block images opened by 'Windows Photos'

本文关键字:Photos 图像 Windows 筛选      更新时间:2023-10-16

我编写了一个迷你过滤器,可以相对成功地阻止所有JPG图像。 除非文件被"Windows照片"打开。微筛选器已注册到所有MJ_CREATE,在WinDbg中,我可以看到我的代码在Windows照片打开时被调用以阻止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 照片仍可访问图像。(过滤器在启动时加载,因此从技术上讲,映像应在重新启动后被阻止(。

所有其他操作都被成功阻止,例如(复制,粘贴,使用另一个程序(如油漆(打开(。任何尝试在启动后打开或传输的新 JPG 图像也会成功阻止。

我想知道我错过了什么?某些图像是否加载得太早以至于绕过了过滤器管理器?我可能缺少 IRP 吗?我现在的最终目标只是阻止加载所有JPG(如果可能的话,包括缩略图(。

非常感谢所有花时间阅读我的问题的人以及任何可以提供帮助的人。

干杯

布莱斯伍兹

实际上,Windows 10缓存图像及其缩略图并将其存储在".db"文件中。我开始阻止这些文件,它解决了我的问题!