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 ,也可能立即调用此例程。

后例程在 ntifs.h 中定义为:

typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
    _In_ PVOID Context1,
    _In_ PVOID Context2
    );

[in] Context1

PostRoutine 中 post 例程的第一个参数。

[in] Context2

PostRoutine 中 post 例程的第二个参数。

[in] BytesToWrite

要写入的数据的字节数。

[in] Retrying

如果首次发布请求,则设置为 FALSE ,否则设置为 TRUE

返回值

备注

CcCanIWrite 收到 返回值 FALSE 后,文件系统通常会调用 CcDeferWrite

若要缓存文件,请使用 CcInitializeCacheMap

传递给 PostRoutine 的上下文参数通常是 I/O 请求和相关上下文数据。

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe

另请参阅

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold