【问题标题】:Can I catch file CREATION the operation in minifilter driver?我可以在 minifilter 驱动程序中捕获文件 CREATION 操作吗?
【发布时间】:2014-12-22 16:38:09
【问题描述】:

我不太懂英语。请理解我。 :)

在文件系统微过滤驱动程序中,我想重定向创建文件的操作的文件路径。 所以,我决定使用minifilter驱动。我考虑了 MSDN 的simrep sample project。但是,它只是显示像重新解析路径。 我的意思是,如果我将文件保存在 C:\aaa\abc.txt 中,那么该文件将保存在 C:\bbb\abc.txt 中。 只是重定向!而且,虽然驱动程序将被分离和卸载,但 abc.txt 文件将存在于 C:\bbb\abc.txt 中。

然后,我想在回调例程句柄 IRP_MJ_CREATE 中捕获唯一的 CAREATION 操作。 我知道 IRP_MJ_CREATE 的回调例程是通过打开和创建文件、设备等来调用的。 我该怎么做?

【问题讨论】:

    标签: filesystems minifilter


    【解决方案1】:

    如果您的意思是创建新文件,那么您可以在 pre create 中检查以下 create disposition。

    FILE_SUPERSEDED 文件创建 FILE_OVERWRITE FILE_OVERWRITE_IF

    所有这些处理都发生在创建新文件时。

    【讨论】:

    • 是的,如果创建处置是 FILE_SUPERSEDED,你是对的,因为 FILE_SUPERSEDED 意味着始终创建新文件。但是,只有在文件不存在时才会创建新文件,在 FILE_CREATE 的情况下。我通过使用 Windows 的 NotePad.exe 保存文件进行了测试。然后,将 CreateDisposition 值呈现为 1~3。这意味着 FILE_CREATE、FILE_OPEN、FILE_OPEN_IF。但是,几乎是 FILE_CREATE。 :(我不想抓文件打开操作
    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 2020-06-17
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    相关资源
    最近更新 更多