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