2017-05-27 39 views
0

我正在尝试编写一个基本的微过滤器驱动程序,并且基于Minispy的示例(因为它有很多代码,我将链接到一个要点),下面放在一起:微过滤器PRE_OP_CALLBACK不被称为

https://gist.github.com/anonymous/9dce7c550b028fa308a48d36c6098095

如果我使用WinDbg附加到内核中,我可以看到DriverEntry中被调用,我的注册成功完成,而且我还可以看到卸载发生,如果我把它。但是,当我打开/创建一个文件时,我永远不会看到我的PRE_OP_CALLBACK或我的POST_OP_CALLBACK被调用。我不确定我错过了什么。

+0

看来你已经采取了太多的minispy了。回去一些步骤。 – mksteve

回答

0

我想通了实际上,它必须处理我的INF文件。具体而言,以下行:

Instance1.Flags   = 0x1   ; Suppress automatic attachments 

删除该行或设置为0,允许它自动附加。出于我的目的,因为我想监视所有卷,所以我将它设置为0.在同一个帐户上,Minispy示例仅在Instance3标志上设置了0x1,因此这是有道理的。

1

我会建议与正常工作 github : minispy

在DriverEntry中有登记minispy样品比较...

status = FltRegisterFilter(DriverObject, 
           &FilterRegistration, 
           &MiniSpyData.Filter); 

以及

status = FltStartFiltering(MiniSpyData.Filter); 
+0

你是说你在这些电话中看到我的问题?因为我在使用minispy作为示例并尝试删除任何不需要的不必要数据的情况下构建了这个程序。 – TheRedAgent