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