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 |