birdtomaster
驱动牛犊
驱动牛犊
  • 注册日期2003-10-03
  • 最后登录2008-09-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:934回复:0

急,filemon过滤word文档后其不能再打开,请高手指点

楼主#
更多 发布于:2004-08-01 22:38
在filemon中,直接拒绝任何操作在IRP_MJ_CREATE 中返回一点问题都没有,但是我只读不写在word、accees等就有问题了,因为读和写开始都是IRP_MJ_CREATE,我不知道如何判断这个IRP_MJ_CREATE是读还是写时产生的,只好在其它地方加过滤代码,只在IRP_MJ_WRITE中返回不能起作用,还在IRP_MJ_QUERY_INFORMATION、IRP_MJ_SET_INFORMATION、IRP_MJ_CLEANUP、IRP_MJ_CLOSE中都加入
if( writerefuse==1) {
Irp->IoStatus.Status=STATUS_INVALID_DEVICE_REQUEST;
Irp->IoStatus.Information=0;
IoCompleteRequest(Irp,IO_NO_INCREMENT);
return STATUS_INVALID_DEVICE_REQUEST;
虽然word等文档能读不能写,但是出现了以下问题:
1、保存是保存不了,但是直接关闭以后在打开就不能打开了,说文件被锁定,另一个程序正在使用,通知、只读都不行??????
2、从应用程序更改过滤规则将只读改为可以读写,仍然如此,请教一下这是为什么?是不是在写时产生IRP_MJ_CREATE,就被锁定了,如何释放,或者能否在IRP_MJ_CREATE时判断时写就不让IRP_MJ_CREATE或者这时就设置要拦截的对象文档的属性为只读?请大侠指点,谢了

最新喜欢:

ljmmaryljmmar...
游客

返回顶部