xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1802回复:4

关于IRP_MJ_QUERY_INFORMATION和Fast入口

楼主#
更多 发布于:2003-01-23 15:23
用户被禁言,该主题自动屏蔽!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-23 15:58
做Filter最头疼的问题之一就是需要修改文件大小:(
在2000下要做到没有BUG非常非常非常困难!

一般采用另外一种麻烦(头疼:)但是安全的方法:
接管FSD对文件的控制,直接和Cache Manager打交道,就是说把整个文件虚拟。代码可以参考FASTFAT源代码

还有一种做法就是使用NTFS META放文件信息,可惜只有NTFS能用

最简单的办法就是把文件信息和源文件分离,但是也有不少问题需要解决:(

难啊~
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-01-23 18:00
用户被禁言,该主题自动屏蔽!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-01-24 10:17
CcManager除了Lazy Write Thread是活动的,会主动发出IRP_MJ_WRITE,其它情况不会发出任何IRP到FSD(IRP_MJ_READ,IRP_MJ_CLOSE应该算是被动的)

CcManager并不是通过IRP_MJ_QUERY_INFORMATION得到文件大小的,而是通过由FSD调用CcInitializeCacheMap/CcSetFileSizes等Cc函数被动告知的。

这种直接修改FileSize而不虚拟FileObject的方法,我也没有很好的成功例子,所以没法给你更多的提示,祝好运~
kabunhi
驱动牛犊
驱动牛犊
  • 注册日期2007-06-27
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分461分
  • 威望57点
  • 贡献值0点
  • 好评度46点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-07-20 09:55
不知道搂主解决这个问题了没
游客

返回顶部