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 |