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,則呼叫端可以立即呼叫 CcCopyWrite 或 CcFastCopyWrite。
如果 CcCanIWrite 傳回 FALSE,則呼叫端必須改為呼叫 CcDeferWrite 以延遲寫入要求。
一般而言,如果下列條件成立,快取管理員就可以接受寫入要求:
要寫入的數據量並不太大。
有足夠的記憶體可執行寫入作業。
系統快取中的中途分頁數目不會超過 ccDirtyPageThreshold) 中途頁面閾值 (。
如果此檔案有個別檔案的中途分頁閾值,系統快取中此檔案的中途分頁數目不會超過此檔案的已變更頁面數目。
若要快取檔案,請使用 CcInitializeCacheMap。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |