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) |