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。
言論
呼叫
如果 CcCanIWrite 傳回 TRUE,呼叫端可以立即呼叫 CcCopyWrite 或 CcFastCopyWrite。
如果 CcCanIWrite 傳回 FALSE,則呼叫端必須改為呼叫 CcDeferWrite 以延遲寫入要求。
一般而言,如果下列條件成立,快取管理員可以接受寫入要求:
要寫入的數據量不是太大。
有足夠的記憶體可執行寫入作業。
系統快取中的臟頁數不會超過髒頁閾值 (CcDirtyPageThreshold)。
如果此檔案存在每個檔案的髒頁面閾值,系統快取中此檔案的髒頁面數目就不會超過。
若要快取檔案,請使用 CcInitializeCacheMap。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |