共用方式為


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收到傳回值 FALSE 之後,文件系統通常會呼叫 CcDeferWrite

若要快取檔案,請使用 CcInitializeCacheMap

傳遞至 postRoutine 的內容參數 通常是 I/O 要求和相關內容數據。

要求

要求 價值
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe

另請參閱

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold