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,则会从缓存中清除整个文件。

如果 FileOffset 不为 NULL,则仅清除 FileOffsetLength 指定的字节范围。

[in] Length

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

Flags

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

返回值

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

注解

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

CcPurgeCacheSection 不会清除映射的文件。

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

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另请参阅

CcFlushCache

CcInitializeCacheMap

CcIsFileCached

CcUninitializeCacheMap

mmFlushImageSection