Compartilhar via


estrutura FILE_BOTH_DIR_INFORMATION (ntifs.h)

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

Sintaxe

typedef struct _FILE_BOTH_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;
  CCHAR         ShortNameLength;
  WCHAR         ShortName[12];
  WCHAR         FileName[1];
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;

Membros

NextEntryOffset

Deslocamento de bytes da próxima entrada de FILE_BOTH_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 no 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 em que o arquivo foi criado.

LastAccessTime

Última vez que o arquivo foi acessado.

LastWriteTime

Da última vez, as informações foram gravadas no arquivo.

ChangeTime

Última vez que o arquivo foi alterado.

EndOfFile

Nova posição de fim de arquivo absoluta como um deslocamento de bytes desde o 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 setor ou do tamanho 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_DEVICE
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_TEMPORARY
  • FILE_ATTRIBUTE_SPARSE_FILE
  • FILE_ATTRIBUTE_REPARSE_POINT
  • FILE_ATTRIBUTE_COMPRESSED
  • FILE_ATTRIBUTE_OFFLINE
  • FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
  • FILE_ATTRIBUTE_ENCRYPTED

FileNameLength

Especifica o comprimento, em bytes, da cadeia de caracteres de nome do arquivo.

EaSize

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

ShortNameLength

Especifica o comprimento, em bytes, da cadeia de caracteres de nome de arquivo curto.

ShortName[12]

Cadeia de caracteres Unicode que contém o nome curto (8.3) do 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.

Observações

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

  • Chame ZwQueryDirectoryFile, passando FileBothDirectoryInformation como o valor de FileInformationClass e passando um buffer alocado por um chamador, estruturado FILE_BOTH_DIR_INFORMATION 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 em formato absoluto de tempo 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 nextEntryOffset valor em cada entrada, exceto o último, cairá em um limite de 8 bytes.

Requisitos

Requisito Valor
cabeçalho ntifs.h (inclua Ntifs.h, Fltkernel.h)

Consulte também

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile