CcDeferWrite 函式 (ntifs.h)
CcDeferWrite 例程會延遲寫入快取的檔案。 提供後例程時,快取管理員會在可以容納寫入作業時呼叫。
語法
void CcDeferWrite(
[in] PFILE_OBJECT FileObject,
[in] PCC_POST_DEFERRED_WRITE PostRoutine,
[in] PVOID Context1,
[in] PVOID Context2,
[in] ULONG BytesToWrite,
[in] BOOLEAN Retrying
);
參數
[in] FileObject
要寫入數據的快取檔案之檔案物件的指標。
[in] PostRoutine
快取管理員呼叫以寫入快取檔案的例程位址。 請注意,即使 CcCanIWrite 剛傳回 false ,也可能立即呼叫此例程。
post 例程會在 ntifs.h 中定義為:
typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
_In_ PVOID Context1,
_In_ PVOID Context2
);
您可以使用目前 IRP 中設定為 FSRTL_MOD_WRITE_TOP_LEVEL_IRP 的 TopLevelIrp 欄位來呼叫此函式。
[in] Context1
post 例程的第一個參數 PostRoutine。
[in] Context2
post 例程的第二個參數 PostRoutine。
[in] BytesToWrite
要寫入的數據位元組數目。
[in] Retrying
如果第一次張貼要求,則設為 FALSE,否則 TRUE。
傳回值
沒有
言論
從ccCanIWrite收到傳回值
若要快取檔案,請使用 CcInitializeCacheMap。
傳遞至 postRoutine 的內容參數 通常是 I/O 要求和相關內容數據。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |