liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2146回复:4

清除缓存影响文件写,透明加解密问题求助。

楼主#
更多 发布于:2008-03-25 13:42
我在Cleanup中清掉缓存。方便每次都能在SfRead中收到消息。这样,解密是正常了。
但是加密却发现了一些问题,首先看看清缓存的代码:
if(IrpSp->MajorFunction == IRP_MJ_CLEANUP)
    {
        if(FileObject->SectionObjectPointer)
        {
            IoSetTopLevelIrp( (PIRP)FSRTL_FSP_TOP_LEVEL_IRP );

            CcFlushCache( FileObject->SectionObjectPointer, NULL, 0, NULL );

            if(FileObject->SectionObjectPointer->DataSectionObject)
            {
                CcPurgeCacheSection( FileObject->SectionObjectPointer,
                    NULL,
                    0,
                    FALSE ); //为TRUE,会强迫所有的FileObject重新初始化Cache                                                      
            }

            if(FileObject->PrivateCacheMap)
            {
                CcUninitializeCacheMap(FileObject, NULL, NULL);;  
            }
                          
            IoSetTopLevelIrp(NULL);                                  
        }


    }

这个代码使用后,当我写文件时再也收不到IRP_MJ_WRITE了。不知道各位有什么办法能解决不。

其实最好是不用清缓存而使每次文件读都进入SfRead处理,可系统一般会预读文件到缓存中。不知道有什么其他的办法能解决小文件收不到IRP_MJ_READ的办法,恳请赐教。

最新喜欢:

mr6698mr6698
q065700
驱动牛犊
驱动牛犊
  • 注册日期2007-11-09
  • 最后登录2008-05-08
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-03-25 18:45
关注~
microbe
驱动小牛
驱动小牛
  • 注册日期2007-12-10
  • 最后登录2011-01-17
  • 粉丝1
  • 关注0
  • 积分914分
  • 威望420点
  • 贡献值1点
  • 好评度88点
  • 原创分0分
  • 专家分1分
板凳#
发布于:2008-03-27 09:21
驱网上有强人写的清缓存的代码,,找出来看看。。。。

如果它预读到了缓存中,想办法把预读的搞掉不就有read了??
liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2008-03-27 12:13
搞清后,是有READ了。
但写的数据也破坏了。
现在解决了。
调整了下FILE_CONTEXT的初始化顺序,在读加密标志时的IRP加入NO_CACHE等flags.
问题解决。
abc13271552
驱动小牛
驱动小牛
  • 注册日期2007-08-13
  • 最后登录2023-12-05
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望552点
  • 贡献值0点
  • 好评度160点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2008-03-27 18:08
能加我QQ:471933891否? 我卡你接下来的问题上.你怕是也会碰到.一会解决.
驱网无线,快乐无限
游客

返回顶部