Função CcSetFileSizesEx (ntifs.h)

A rotina CcSetFileSizesEx atualiza os mapas de cache e o objeto de seção de um arquivo armazenado em cache cujo tamanho foi alterado.

Sintaxe

NTSTATUS CcSetFileSizesEx(
  PFILE_OBJECT   FileObject,
  PCC_FILE_SIZES FileSizes
);

Parâmetros

FileObject

[in] Ponteiro para um objeto de arquivo para o arquivo armazenado em cache.

FileSizes

[in] Ponteiro para uma estrutura de CC_FILE_SIZES que contém as novas informações de tamanho do arquivo.

Retornar valor

CcSetFileSizesEx retorna STATUS_SUCCESS se o tamanho do arquivo foi alterado com êxito e, se uma limpeza for necessária, a limpeza foi bem-sucedida. Caso contrário, ele retorna um código NSTATUS sem êxito, como STATUS_INSUFFICIENT_RESOURCES, e pode gerar uma exceção status.

Em relação ao aumento de uma exceção status no erro:

  • Se a operação fizer com que CcSetFileSizesEx libere e/ou limpe o arquivo, CcSetFileSizesEx não gerará erros; ele apenas retorna o código NTSTATUS não bem-sucedido apropriado da operação de liberação ou limpeza.

  • Se a operação fizer com que CcSetFileSizesEx estenda a seção, CcSetFileSizesEx gerará qualquer erro que atingir durante essa extensão.

Comentários

Os sistemas de arquivos devem chamar CcSetFileSizesEx para atualizar as estruturas de dados do gerenciador de cache sempre que uma das seguintes alterações for feita em um arquivo armazenado em cache:

  • Seu tamanho de alocação é aumentado.

  • Seu comprimento de dados válido é reduzido.

  • Seu comprimento de dados válido é aumentado por uma operação de E/S não armazenada em cache.

  • Seu tamanho de arquivo é aumentado ou reduzido.

Se a operação fizer com que CcSetFileSizesEx estenda a seção e ocorra uma falha, CcSetFileSizesEx gerará uma exceção status para essa falha específica. Por exemplo, se ocorrer uma falha de alocação de pool, CcSetFileSizesEx gerará uma exceção STATUS_INSUFFICIENT_RESOURCES. Portanto, para obter controle se ocorrer uma falha, o driver deverá encapsular a chamada para CcSetFileSizesEx em uma instrução try-except ou try-finally .

O sistema de arquivos deve garantir que o mapa de cache seja válido e permanecerá assim durante essa chamada.

Para armazenar em cache um arquivo, use CcInitializeCacheMap.

Para obter o tamanho do arquivo armazenado em cache, passe FileObject para CcGetFileSizePointer.

Requisitos

Requisito Valor
Cabeçalho ntifs.h

Confira também

CcInitializeCacheMap

CcSetCacheFileSizes