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。
言论
在调用 ccCopyWrite 或
如果 CcCanIWrite 返回 TRUE,则调用方可以立即调用 CcCopyWrite 或 CcFastCopyWrite。
如果 CcCanIWrite 返回 FALSE,则调用方必须改为 CcDeferWrite 延迟写入请求。
一般来说,如果满足以下条件,缓存管理器可以接受写入请求:
要写入的数据量不会太大。
有足够的内存来执行写入操作。
系统缓存中的脏页数不超过脏页阈值(CcDirtyPageThreshold)。
如果此文件存在每文件脏页阈值,则系统缓存中此文件的脏页数不会超过该阈值。
若要缓存文件,请使用 CcInitializeCacheMap。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |