微过滤器 PRE_OP_CALLBACK 未被调用
Minifilter PRE_OP_CALLBACK not being called
我正在尝试编写一个基本的 minifilter 驱动程序,我根据 Minispy 中的示例整理了以下内容(因为它有很多代码,我将 link 概括为要点)
https://gist.github.com/anonymous/9dce7c550b028fa308a48d36c6098095
如果我使用 WinDBG 附加到内核,我可以看到 DriverEntry 被调用并且我的注册成功完成,如果我调用它,我也可以看到卸载发生。但是,当我 open/create 一个文件时,我从来没有看到我的 PRE_OP_CALLBACK 或我的 POST_OP_CALLBACK 被调用。我不确定我错过了什么。
我建议与工作正常的 minispy 样本进行比较
github : minispy
在 DriverEntry 中它有一个注册...
status = FltRegisterFilter( DriverObject,
&FilterRegistration,
&MiniSpyData.Filter );
以及
status = FltStartFiltering( MiniSpyData.Filter );
其实我也想通了,跟我的INF文件有关。具体来说,如下一行:
Instance1.Flags = 0x1 ; Suppress automatic attachments
删除该行,或将其设置为 0,允许它自动附加。出于我的目的,因为我想监视所有卷,所以我将其设置为 0。在同一个帐户上,minispy 示例仅在 Instance3 标志上设置了 0x1,所以这是有道理的。
我正在尝试编写一个基本的 minifilter 驱动程序,我根据 Minispy 中的示例整理了以下内容(因为它有很多代码,我将 link 概括为要点)
https://gist.github.com/anonymous/9dce7c550b028fa308a48d36c6098095
如果我使用 WinDBG 附加到内核,我可以看到 DriverEntry 被调用并且我的注册成功完成,如果我调用它,我也可以看到卸载发生。但是,当我 open/create 一个文件时,我从来没有看到我的 PRE_OP_CALLBACK 或我的 POST_OP_CALLBACK 被调用。我不确定我错过了什么。
我建议与工作正常的 minispy 样本进行比较 github : minispy
在 DriverEntry 中它有一个注册...
status = FltRegisterFilter( DriverObject,
&FilterRegistration,
&MiniSpyData.Filter );
以及
status = FltStartFiltering( MiniSpyData.Filter );
其实我也想通了,跟我的INF文件有关。具体来说,如下一行:
Instance1.Flags = 0x1 ; Suppress automatic attachments
删除该行,或将其设置为 0,允许它自动附加。出于我的目的,因为我想监视所有卷,所以我将其设置为 0。在同一个帐户上,minispy 示例仅在 Instance3 标志上设置了 0x1,所以这是有道理的。