ccSetFileSizes 函数 (ntifs.h)

CcSetFileSize 例程更新大小已更改的缓存文件的缓存映射和节对象。 请改用 CcSetFileSizesEx ,因为它提供了 NTSTATUS 返回代码以及更好的错误处理指南。

语法

void CcSetFileSizes(
  [in] PFILE_OBJECT   FileObject,
  [in] PCC_FILE_SIZES FileSizes
);

参数

[in] FileObject

指向缓存文件的文件对象的指针。

[in] FileSizes

指向包含新文件大小信息的 CC_FILE_SIZES 结构的指针。

返回值

备注

每当对缓存文件进行以下更改之一时,文件系统必须调用 CcSetFileSizesExCcSetFileSizes 来更新缓存管理器数据结构:

  • 其分配大小增加。

  • 其有效数据长度已减少。

  • 其有效数据长度通过非缓存 I/O 操作增加。

  • 其文件大小增加或减少。

如果发生任何故障, CcSetFileSizes 将引发该特定失败的状态异常。 例如,如果池分配失败, CcSetFileSizes 将引发STATUS_INSUFFICIENT_RESOURCES异常。 因此,若要在发生故障时获得控制,驱动程序应将对 CcSetFileSizes 的 调用包装在 try-excepttry-finally 语句中。

文件系统必须确保缓存映射有效,并且会在调用期间保持有效。

若要缓存文件,请使用 CcInitializeCacheMap

若要获取缓存文件的大小,请将 FileObject 传递给 CcGetFileSizePointer

要求

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

另请参阅

CcInitializeCacheMap

CcSetFileSizesEx