CcSetFileSizes 函数 (ntifs.h)
CcSetFileSizes 例程更新缓存文件(其大小已更改)的缓存映射和节对象。 请改用 CcSetFileSizesEx,因为它提供了 NTSTATUS 返回代码以及更好的错误处理指南。
语法
void CcSetFileSizes(
[in] PFILE_OBJECT FileObject,
[in] PCC_FILE_SIZES FileSizes
);
参数
[in] FileObject
指向缓存文件的文件对象的指针。
[in] FileSizes
指向包含新文件大小信息的 CC_FILE_SIZES 结构的指针。
返回值
没有
言论
文件系统必须调用 CcSetFileSizesEx 或 CcSetFileSizes,以在对缓存文件进行以下更改之一时更新缓存管理器数据结构:
其分配大小增加。
其有效数据长度会减少。
其有效数据长度由非缓存的 I/O 操作增加。
其文件大小增加或减少。
如果发生任何故障,CcSetFileSizes 将引发该特定失败的状态异常。 例如,如果池分配失败,CcSetFileSizes 引发STATUS_INSUFFICIENT_RESOURCES异常。 因此,若要控制是否发生故障,驱动程序应在 try-finally 语句中包装对
文件系统必须确保缓存映射有效,并在此调用期间保持此状态。
若要缓存文件,请使用 CcInitializeCacheMap。
若要获取缓存文件的大小,请将 FileObject 传递给 CcGetFileSizePointer。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |