我有一个文件筛选器驱动程序,应该在特定情况下禁止文件/目录访问。 我使用IoRegisterFsRegistrationChange
来获取有关文件系统更改的通知,并附加到适当的卷设备对象。文件筛选器驱动程序页面文件
它通常是一个传递过滤器。它处理的唯一事情是IRP_MJ_CREATE
(实际上禁止某些类型的文件/目录访问)。所有其他IRP
和快速I/O请求都只传递给底层设备。
它工作正常,除了一件事。如果驱动程序在系统启动时加载(SERVICE_SYSTEM_START
) - 因为我不太明白系统页面文件被禁用。用户登录后会显示“性能选项”弹出式对话框。虚拟内存分页文件被禁用(这是什么触发这个对话框弹出恕我直言)。
如果驱动程序在后期动态加载 - 没有明显问题,一切正常。
我试图禁用IRP_MJ_CREATE
(只是像所有其他请求一样传递)的处理,但没有任何更改。
我明白,通常很难说没有看到代码就问题出在哪里。但无论如何,这是一个已知的问题吗?我应该检查什么?这是不是以正确方式传递某些请求的一种症状,或者将设备对象附加到卷设备对象的偶然事实可能会导致这样的问题?
欢迎所有可能的想法。提前致谢。