我的目标是在文件被删除之前覆盖文件内容和名称 - 擦除已删除的文件。
我正在尝试使用微过滤器驱动程序和在最终删除操作之前调用的预清理回调例程。
到目前为止,我已经能够摆脱创建/更改/访问日期并在文件被删除之前覆盖文件的内容。
但是我无法更改文件名和所有者信息。
我发现我可以使用 FltSetFileInformation 重命名文件,但是在清理过程中文件没有正确删除。使用 shift+delete,它会被删除,但光盘上的文件名保持不变。只需正常删除,它就不会进入回收站(可能是因为无法移动它,现在它有了一个新名称。)
微过滤器的控制流程对我来说有点不清楚。例如,如果我调用 FltWriteFile 它只是发送另一个 IRP,它是同步还是异步执行。
如何在 IRP 中更改要删除的文件的名称,这样它仍然会被较低的驱动程序删除。