Função CcSetFileSizes (ntifs.h)

A rotina CcSetFileSizes atualiza os mapas de cache e o objeto de seção de um arquivo armazenado em cache cujo tamanho foi alterado. Em vez disso, use CcSetFileSizesEx , pois ele fornece um código de retorno NTSTATUS, juntamente com melhores diretrizes para tratamento de erros.

Sintaxe

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

Parâmetros

[in] FileObject

Ponteiro para um objeto de arquivo para o arquivo armazenado em cache.

[in] FileSizes

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

Retornar valor

Nenhum

Comentários

Os sistemas de arquivos devem chamar CcSetFileSizesEx ou CcSetFileSizes 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 ocorrer alguma falha, CcSetFileSizes gerará uma exceção status para essa falha específica. Por exemplo, se ocorrer uma falha de alocação de pool, CcSetFileSizes gerará uma exceção STATUS_INSUFFICIENT_RESOURCES. Portanto, para obter controle se ocorrer uma falha, o driver deverá encapsular a chamada para CcSetFileSizes 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
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe

Confira também

CcInitializeCacheMap

CcSetFileSizesEx