estrutura FILE_ALLOCATION_INFORMATION (ntifs.h)

A estrutura FILE_ALLOCATION_INFORMATION é usada para definir o tamanho da alocação de um arquivo.

Sintaxe

typedef struct _FILE_ALLOCATION_INFORMATION {
  LARGE_INTEGER AllocationSize;
} FILE_ALLOCATION_INFORMATION, *PFILE_ALLOCATION_INFORMATION;

Membros

AllocationSize

Tamanho da alocação de arquivo, em bytes. Normalmente, esse valor é um múltiplo do setor ou do tamanho do cluster do dispositivo físico subjacente.

Comentários

Essa operação pode ser executada de qualquer uma das seguintes maneiras:

  • Chame FltSetInformationFile ou ZwSetInformationFile, passando FileAllocationInformation como o valor de FileInformationClass e passando um buffer alocado por chamador FILE_ALLOCATION_INFORMATION estruturado como o valor de FileInformation. O parâmetro FileHandle especifica o arquivo cujo tamanho de alocação deve ser definido.
  • Crie um IRP com o código de função principal IRP_MJ_SET_INFORMATION.
Essa operação é válida somente para arquivos. É indefinido para diretórios.

Os minifiltros do sistema de arquivos devem usar FltSetInformationFile, não ZwSetInformationFile, para definir o tamanho da alocação de um arquivo.

FILE_WRITE_DATA acesso é necessário para definir essas informações.

O tamanho da alocação de um arquivo e a posição de fim de arquivo são independentes uns dos outros, com a seguinte exceção: a posição de fim de arquivo sempre deve ser menor ou igual ao tamanho da alocação. Se o tamanho da alocação for definido como um valor menor que a posição de fim do arquivo, a posição de fim do arquivo será ajustada automaticamente para corresponder ao tamanho da alocação.

O tamanho do buffer FileInformation passado para FltSetInformationFile ou ZwSetInformationFile deve ser >= sizeof(FILE_ALLOCATION_INFORMATION).

Essa estrutura deve ser alinhada em um limite LONGLONG (8 bytes).

Requisitos

   
Cabeçalho ntifs.h (include Ntifs.h, Fltkernel.h)

Confira também

FILE_END_OF_FILE_INFORMATION

FltSetInformationFile

IRP_MJ_SET_INFORMATION

ZwSetInformationFile