我有一个基于物理磁盘的快照系统,但是为了保持文件系统的完整性,我需要将相应物理磁盘上的卷的cache包括metadata都刷下去,但是我不知道什么函数可以实现?如果有api最好,没有的话我想修改一下sfilter,但是刷新文件系统的cache具体要用到那些函数没法入手阿?请大家帮...
全文
回复(13) 2007-12-17 13:42 来自版块 - 文件系统(过滤)驱动程序开发
表情
BITI_Ceasar清缓存的技术活是什么时候清在哪清,至于用什么函数或方法大同小异(2008-08-07 11:20)
jl2004CcflushCache是可以达到目的的(2008-03-08 10:51)
mikechen2003谢谢楼上诸位 我用了fatmouse527的方法,不过好像CcFlushCache起作用了,其他的都是空的没有执行。 我的fileobject是用zwcreatefile(volumename,..然后ObReferenceObjectByHandle获取的,不知道对不对?CcF...(2007-12-27 15:58)
fatmouse527不知道是不是你想要的 KeEnterCriticalRegion(); if(ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsCont...(2007-12-22 16:32)
newkey看看fastfat的代码,文件系统在刷缓存完后会把该irp下发给存储栈,存储栈处理完后返回文件系统,此时文件系统才会释放锁。所以存储栈上的驱动在接受到此irp时,可以保证该卷上的文件系统数据是一致的。 ---------------------------------------...(2007-12-21 12:35)
lovehhy肯定要写驱动啦?(2007-12-19 15:16)
mikechen2003看看fastfat的代码,文件系统在刷缓存完后会把该irp下发给存储栈,存储栈处理完后返回文件系统,此时文件系统才会释放锁。所以存储栈上的驱动在接受到此irp时,可以保证该卷上的文件系统数据是一致的。 ---------------------------------------...(2007-12-18 15:39)
lovehhyIOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES用起来一直有点问题,不知道哪位有用成功的?分享一下。(2007-12-18 12:08)
tooflat看看fastfat的代码,文件系统在刷缓存完后会把该irp下发给存储栈,存储栈处理完后返回文件系统,此时文件系统才会释放锁。所以存储栈上的驱动在接受到此irp时,可以保证该卷上的文件系统数据是一致的。(2007-12-17 23:20)
mikechen2003lovehhy,你说要变态的方法,是不是IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES不行,能不能给个思路,十万分感谢(2007-12-17 17:56)

返回顶部