Compartir a través de


Función CcSetFileSizesEx (ntifs.h)

La rutina CcSetFileSizesEx actualiza los mapas de caché y el objeto de sección de un archivo almacenado en caché cuyo tamaño ha cambiado.

Sintaxis

NTSTATUS CcSetFileSizesEx(
  PFILE_OBJECT   FileObject,
  PCC_FILE_SIZES FileSizes
);

Parámetros

FileObject

[in] Puntero a un objeto de archivo para el archivo almacenado en caché.

FileSizes

[in] Puntero a una estructura de CC_FILE_SIZES que contiene la nueva información de tamaño de archivo.

Valor devuelto

CcSetFileSizesEx devuelve STATUS_SUCCESS si el tamaño del archivo se cambió correctamente y, si se necesitaba una purga, la purga se realizó correctamente. De lo contrario, devuelve un código NSTATUS no correcto, como STATUS_INSUFFICIENT_RESOURCES, y podría generar una excepción de estado.

Con respecto a la generación de una excepción de estado en caso de error:

  • Si la operación hace que CcSetFileSizesEx vacíe o purgue el archivo, CcSetFileSizesEx no generará errores; simplemente devuelve el código NTSTATUS no correcto adecuado de la operación de vaciado o purga.

  • Si la operación hace que CcSetFileSizesEx extienda la sección, CcSetFileSizesEx generará cualquier error que se produzca durante esta extensión.

Comentarios

Los sistemas de archivos deben llamar a CcSetFileSizesEx para actualizar las estructuras de datos del administrador de caché siempre que se realice uno de los siguientes cambios en un archivo almacenado en caché:

  • Su tamaño de asignación aumenta.

  • Su longitud de datos válida se reduce.

  • Su longitud de datos válida aumenta mediante una operación de E/S no almacenada en caché.

  • Su tamaño de archivo aumenta o disminuye.

Si la operación hace que CcSetFileSizesEx extienda la sección y se produzca un error, CcSetFileSizesEx genera una excepción de estado para ese error en particular. Por ejemplo, si se produce un error de asignación de grupo, CcSetFileSizesEx genera una excepción de STATUS_INSUFFICIENT_RESOURCES. Por lo tanto, para obtener control si se produce un error, el controlador debe encapsular la llamada a CcSetFileSizesEx en una instrucción try-except o try-finally .

El sistema de archivos debe asegurarse de que la asignación de caché es válida y permanecerá así durante la duración de esta llamada.

Para almacenar en caché un archivo, use CcInitializeCacheMap.

Para obtener el tamaño del archivo almacenado en caché, pase FileObject a CcGetFileSizePointer.

Requisitos

Requisito Valor
Header ntifs.h

Consulte también

CcInitializeCacheMap

CcSetCacheFileSizes