CcCanIWrite 函式 (ntifs.h)

CcCanIWrite 例程會判斷呼叫端是否可以寫入快取的檔案。

語法

BOOLEAN CcCanIWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        BytesToWrite,
  [in] BOOLEAN      Wait,
  [in] UCHAR        Retrying
);

參數

[in] FileObject

快取檔案之檔案物件的指標。

[in] BytesToWrite

要寫入的位元組數目。

[in] Wait

如果呼叫端可以放入等候狀態,直到可以寫入快取的檔案,則設定為 TRUE,否則為 FALSE。

[in] Retrying

如果這是第一次針對此寫入要求呼叫 CcCanIWrite ,請設定為 FALSE,否則為 TRUE。

傳回值

如果快取管理員可以接受寫入要求,則 CcCanIWrite 會傳回 TRUE,否則為 FALSE。

備註

呼叫 CcCopyWrite 或 CcFastCopyWrite 之前,應該先呼叫 CcCanIWrite

如果 CcCanIWrite 傳回 TRUE,則呼叫端可以立即呼叫 CcCopyWriteCcFastCopyWrite

如果 CcCanIWrite 傳回 FALSE,則呼叫端必須改為呼叫 CcDeferWrite 以延遲寫入要求。

一般而言,如果下列條件成立,快取管理員就可以接受寫入要求:

  • 要寫入的數據量並不太大。

  • 有足夠的記憶體可執行寫入作業。

  • 系統快取中的中途分頁數目不會超過 ccDirtyPageThreshold) 中途頁面閾值 (。

  • 如果此檔案有個別檔案的中途分頁閾值,系統快取中此檔案的中途分頁數目不會超過此檔案的已變更頁面數目。

若要快取檔案,請使用 CcInitializeCacheMap

規格需求

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

另請參閱

CcCopyWrite

CcDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold