zzbwang
驱动牛犊
驱动牛犊
  • 注册日期2009-03-18
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分62分
  • 威望611点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
阅读:2015回复:4

为什么驱动中按进程过滤时过滤不到IRP_MJ_READ?

楼主#
更多 发布于:2009-04-17 19:20
我的驱动程序以进程和文件名后缀作为过滤条件,当文件名和进程名都匹配时,为该文件流加StreamHandleContext,其中有是否进行加密解密的标志,然后在读写操作的处理例程中检查流上下文中是否有这个标记,如果有则解密,否则不解密。

但是,当我在测试的时候发现,程序没有过滤到应用程序从指定的流读取数据。但是在保存数据的时候可以捕获到。

比如,过滤条件设置为进程名:NotePad.exe,文件名后缀.c,当我们用记事本打开test.c文件的时候,可以看到记事本打开文件流的IRP_MJ_CREATE,程序在这个流上设置了流句柄上下文。但是并没有过滤到notepad.exe用这个流读取文件内容。而记事本仍然可以显示文件内容。

文件打开的方式是:在资源管理器中右键点击test.c文件,然后选择“用记事本打开”。

有没有人遇到这种情况,这是什么问题造成的呢?
zzbwang
驱动牛犊
驱动牛犊
  • 注册日期2009-03-18
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分62分
  • 威望611点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2009-04-18 13:30
我查了一些资料,也发现了是缓存的问题,如何才能把系统对某个文件的缓存清理掉?
游客

返回顶部