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
指向变量的指针,该变量指定要清除数据的缓存文件中的起始字节偏移量。
如果 FileOffset 为 NULL,则会从缓存中清除整个文件。
如果 FileOffset 不为 NULL,则仅清除 FileOffset 和 Length 指定的字节范围。
[in] Length
要清除的字节范围的长度,从 FileOffset 开始。 如果 Length 为零,则清除从 FileOffset 到文件末尾的范围。 如果 FileOffset 为 NULL,则忽略 Length 。
Flags
设置为 TRUE 以在清除文件数据之前取消初始化文件的任何专用缓存映射。
返回值
如果成功清除缓存的文件数据,CcPurgeCacheSection 将返回 TRUE,否则返回 FALSE。
注解
文件系统调用 CcPurgeCacheSection 以清除缓存中的过时数据。 例如,当某个文件被截断但未删除时,应调用 CcPurgeCacheSection 来清除不再属于该文件的任何缓存数据。
CcPurgeCacheSection 不会清除映射的文件。
在调用 CcPurgeCacheSection 之前,调用方必须以独占方式获取文件,并确保没有线程(包括调用方)映射或固定文件中的任何字节范围。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |