estrutura FILE_FULL_DIR_INFORMATION (ntifs.h)

A estrutura FILE_FULL_DIR_INFORMATION é usada para consultar informações detalhadas para os arquivos em um diretório.

Sintaxe

typedef struct _FILE_FULL_DIR_INFORMATION {
  ULONG         NextEntryOffset;
  ULONG         FileIndex;
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER LastWriteTime;
  LARGE_INTEGER ChangeTime;
  LARGE_INTEGER EndOfFile;
  LARGE_INTEGER AllocationSize;
  ULONG         FileAttributes;
  ULONG         FileNameLength;
  ULONG         EaSize;
  WCHAR         FileName[1];
} FILE_FULL_DIR_INFORMATION, *PFILE_FULL_DIR_INFORMATION;

Membros

NextEntryOffset

Deslocamento de bytes da próxima entrada de FILE_FULL_DIR_INFORMATION , se várias entradas estiverem presentes em um buffer. Esse membro será zero se nenhuma outra entrada seguir esta.

FileIndex

Deslocamento de bytes do arquivo dentro do diretório pai. Esse membro é indefinido para sistemas de arquivos, como o NTFS, no qual a posição de um arquivo dentro do diretório pai não é fixa e pode ser alterada a qualquer momento para manter a ordem de classificação.

CreationTime

Hora que o arquivo foi criado.

LastAccessTime

Última vez em que o arquivo foi acessado.

LastWriteTime

Última vez em que as informações foram gravadas no arquivo.

ChangeTime

Última vez em que o arquivo foi alterado.

EndOfFile

Nova posição absoluta de fim de arquivo como um deslocamento de bytes do início do arquivo. EndOfFile especifica o deslocamento de bytes até o final do arquivo. Como esse valor é baseado em zero, ele realmente se refere ao primeiro byte gratuito no arquivo. Em outras palavras, EndOfFile é o deslocamento para o byte imediatamente após o último byte válido no arquivo.

AllocationSize

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

FileAttributes

Atributos de arquivo, que podem ser qualquer combinação válida do seguinte:

  • FILE_ATTRIBUTE_READONLY
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_DIRECTORY
  • FILE_ATTRIBUTE_ARCHIVE
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_TEMPORARY
  • FILE_ATTRIBUTE_COMPRESSED

FileNameLength

Especifica o comprimento da cadeia de caracteres de nome de arquivo.

EaSize

Comprimento combinado, em bytes, dos atributos estendidos (EA) para o arquivo.

FileName[1]

Especifica o primeiro caractere da cadeia de caracteres de nome de arquivo. Isso é seguido na memória pelo restante da cadeia de caracteres.

Comentários

Essas informações podem ser consultadas de uma das seguintes maneiras:

  • Chame ZwQueryDirectoryFile, passando FileFullDirectoryInformation como o valor de FileInformationClass e passando um buffer alocado pelo chamador FILE_FULL_DIR_INFORMATION estruturado como o valor de FileInformation.

  • Crie um IRP com código de função principal IRP_MJ_DIRECTORY_CONTROL e código de função secundária IRP_MN_QUERY_DIRECTORY.

Nenhum direito de acesso específico é necessário para consultar essas informações.

Todas as datas e horas estão no formato absoluto de hora do sistema. A hora absoluta do sistema é o número de intervalos de 100 nanossegundos desde o início do ano 1601.

Essa estrutura deve ser alinhada em um limite LONGLONG (8 bytes). Se um buffer contiver duas ou mais dessas estruturas, o valor NextEntryOffset em cada entrada, exceto a última, se enquadra em um limite de 8 bytes.

Requisitos

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

Confira também

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile