阅读:2153回复:10
修改FileMon,拦截IRP_MJ_WRITE,请大虾们看一下:
我想拦截IRP_MJ_WRITE,代码片断如下:
case IRP_MJ_WRITE: if( FilterDef.logwrites ) { Irp->IoStatus.Information = 0; Irp->IoStatus.Status = STATUS_ACCESS_DENIED; // or some other error code return Irp->IoStatus.Status; } 本来我只是在include里面包含了c:\\a.txt,按道理应该只是拦截对c:\\a.txt的写操作。结果所有的写操作都被拦截了!为什么?那位大虾能指点一下。先谢谢了 |
|
|
沙发#
发布于:2003-08-29 09:40
这么多天一个回复的都没有啊,真失望啊,是不是我的问题太菜了?
|
|
|
板凳#
发布于:2003-08-29 12:57
这是肯定的,所有的写文件都会经过IRP_MJ_WRITE,你要把不是写
C:\\aaa.txt的放过 [编辑 - 8/29/03 by else] |
|
地板#
发布于:2003-08-29 20:27
可以我已经在include 里面只包含了c:\\a.txt啊?
else;你能给我说一说吗? |
|
|
地下室#
发布于:2003-09-12 12:31
case IRP_MJ_WRITE:
if( FilterDef.logwrites ) { Irp->IoStatus.Information = 0; Irp->IoStatus.Status = STATUS_ACCESS_DENIED; // or some other error code return Irp->IoStatus.Status; } 最后一个Return只对a.txt有效吗? 你的判断在哪儿?如果其它文件也在这儿返回,则就不能调用缺少的写操作了。 |
|
5楼#
发布于:2003-09-12 13:06
最后一个Return只对a.txt有效吗? 我认为只对a.txt有效,但是实际上全部拦截了, 在filemonhookroutine函数里面 |
|
|
6楼#
发布于:2003-09-12 13:20
[quote]最后一个Return只对a.txt有效吗? 我认为只对a.txt有效,但是实际上全部拦截了, 在filemonhookroutine函数里面 [/quote] 问题应该出在判断部分,最好把代码贴出来看看. |
|
|
7楼#
发布于:2003-09-12 14:10
代码就是上面的啊,我用的就是filemon的源代码
|
|
|
8楼#
发布于:2003-09-12 16:08
这个问题已经解决,感谢 =kk=
请来领分 |
|
|
9楼#
发布于:2003-09-12 16:10
只有上面这部分的话,你判断是否是a.txt的语句在哪儿?
这不就是全部拦住了吗? |
|
10楼#
发布于:2003-09-12 17:30
只有上面这部分的话,你判断是否是a.txt的语句在哪儿? 我重新改写了,现在好了,多谢 |
|
|