CcPurgeCacheSection 函数 (ntifs.h)

CcPurgeCacheSection 例程从系统缓存中清除所有或部分缓存的文件。

语法

BOOLEAN CcPurgeCacheSection(
  [in]           PSECTION_OBJECT_POINTERS SectionObjectPointer,
  [in, optional] PLARGE_INTEGER           FileOffset,
  [in]           ULONG                    Length,
                 ULONG                    Flags
);

参数

[in] SectionObjectPointer

指向包含文件对象的节对象指针的结构的指针。

[in, optional] FileOffset

指向一个变量的指针,该变量指定要清除数据的缓存文件中的起始字节偏移量。

如果 FileOffsetNULL,则会从缓存中清除整个文件。

如果未 NULLFileOffset,则仅清除由 fileOffset 指定的字节范围,并清除 Length

[in] Length

要清除的字节范围的长度,从 FileOffset开始。 如果 长度 为零,则会清除从 FileOffset 到文件末尾的范围。 如果 FileOffsetNULL,则忽略 Length

Flags

设置为 TRUE 在清除文件数据之前取消初始化文件的任何专用缓存映射。

返回值

CcPurgeCacheSection 如果缓存的文件数据已成功清除,则返回 true TRUE,否则 FALSE

言论

文件系统调用 CcPurgeCacheSection 清除缓存中的过时数据。 例如,在截断但未删除文件时,应调用 CcPurgeCacheSection 以清除不再属于文件的任何缓存数据。

CcPurgeCacheSection 不会清除映射的文件。

在调用 CcPurgeCacheSection之前,调用方必须以独占方式获取文件,并确保文件中没有线程(包括调用方)映射或固定任何字节范围。

要求

要求 价值
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另请参阅

CcFlushCache

CcInitializeCacheMap

CcIsFileCached

CcUninitializeCacheMap

mmFlushImagesection