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,則只會清除 FileOffset 所指定的位元組範圍和 Length

[in] Length

要清除的位元組範圍長度,從 FileOffset 開始。 如果 Length 為零,則會清除 從 FileOffset 到檔案結尾的範圍。 如果 FileOffsetNULL,則會忽略 Length

Flags

設定為 TRUE 以取消初始化檔案的任何私人快取對應,再清除檔案數據。

傳回值

如果快取的檔案數據已成功清除,CcPurgeCacheSection 會傳回 TRUE,否則傳回 FALSE

備註

文件系統會呼叫 CcPurgeCacheSection ,以清除快取中的過時數據。 例如,當檔案遭到截斷但未刪除時,應該呼叫 CcPurgeCacheSection 來清除任何不再屬於檔案的快取數據。

CcPurgeCacheSection 不會清除對應的檔案。

呼叫 CcPurgeCacheSection 之前,呼叫端必須以獨佔方式取得檔案,並確保沒有線程,包括呼叫端已對應或釘選檔案中的任何位元組範圍。

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另請參閱

CcFlushCache

CcInitializeCacheMap

CcIsFileCached

CcUninitializeCacheMap

mmFlushImagesection