php文件如何刷新,怎么刷新文件系统的cache

不知道是不是你想要的

KeEnterCriticalRegion();

if(ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource, FALSE))

{

//if(ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource, FALSE))

{

if(FileObject->SectionObjectPointer)

{

IoSetTopLevelIrp( (PIRP)FSRTL_FSP_TOP_LEVEL_IRP );

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

if(FileObject->SectionObjectPointer->ImageSectionObject)

{

MmFlushImageSection(

FileObject->SectionObjectPointer,

MmFlushForWrite//MmFlushForDelete//

) ;

}

if(FileObject->SectionObjectPointer->DataSectionObject)

{

CcPurgeCacheSection( FileObject->SectionObjectPointer,

NULL,

0,

FALSE ); //为TRUE,会强迫所有的FileObject重新初始化Cache

}

if(FileObject->PrivateCacheMap)

{

CcUninitializeCacheMap(FileObject, NULL, NULL);;

}

if(FileObject->SectionObjectPointer->DataSectionObject)

{

//Interval.QuadPart = DELAY_ONE_MILLISECOND * 500;//500ms

//KeDelayExecutionThread(KernelMode, FALSE, &Interval);

MmForceSectionClosed( FileObject->SectionObjectPointer,

TRUE//改为TRUE,彻底刷新缓存!!!

);

}

IoSetTopLevelIrp(NULL);

}

//ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource );

}

ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource );

}

KeLeaveCriticalRegion();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值