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