阅读:3368回复:5
StreamHandleContext的奇怪问题(怪异的Powerpint?)
最近在用Minifilter做一个文件追踪的程序,主要流程是:
1) 在PostCreate中得到文件路径,如果是需要追踪的路径,那么创建FltAllocateContext,同时设置FltSetStreamHandleContext,绑定到FileObject上。 2)在PreWrite中通过FltGetStreamHandleContext来判断是否是被追踪的文件。 3)在PreClean中释放Context。 现在发现这个流程都大多数程序都管用,唯独对于Powerpoint程序,即使在PreCreate绑定了ConText,也无法在PreWrite中获得Context,因此无法追踪它的写操作。 用ProcMon可以看到Powerpoint有Writefile的行为,但是在我的Filter中却无法得到。 请问各位朋友,有什么好的想法和建议?拜谢。 |
|
沙发#
发布于:2008-09-25 22:55
在preclose中释放Context即可。
|
|
板凳#
发布于:2008-09-25 22:57
还有,用stream context
|
|
地板#
发布于:2008-09-25 23:44
引用第1楼AlexSho于2008-09-25 22:55发表的 : 我是参照DDK中的Scanner模型写的,只是FltReleaseContext( context )了,这个应该会在计数器清零后自动释放的哦。 |
|
地下室#
发布于:2008-09-25 23:46
引用第2楼AlexSho于2008-09-25 22:57发表的 : 这个我试试,回头把结果告诉大家,多谢 |
|
5楼#
发布于:2008-09-26 16:23
成功了,谢谢AlexSho兄弟。
|
|