estrutura FILE_ID_64_EXTD_BOTH_DIR_INFORMATION (ntifs.h)
A estrutura FILE_ID_64_EXTD_BOTH_DIR_INFORMATION é usada para consultar informações de número de referência de arquivo de 64 bits para os arquivos em um diretório.
Sintaxe
typedef struct _FILE_ID_64_EXTD_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;
ULONG ReparsePointTag;
LARGE_INTEGER FileId;
CCHAR ShortNameLength;
WCHAR ShortName[12];
WCHAR FileName[1];
} FILE_ID_64_EXTD_BOTH_DIR_INFORMATION, *PFILE_ID_64_EXTD_BOTH_DIR_INFORMATION;
Membros
NextEntryOffset
Deslocamento de bytes da próxima entrada de FILE_ID_64_EXTD_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_NORMAL
- FILE_ATTRIBUTE_TEMPORARY
- FILE_ATTRIBUTE_COMPRESSED
FileNameLength
Especifica o comprimento da cadeia de caracteres do nome do arquivo.
EaSize
Comprimento combinado, em bytes, dos atributos estendidos (EA) para o arquivo.
ReparsePointTag
Valor da marca para o ponto de nova análise.
FileId
O número de referência do arquivo de 64 bits para o arquivo. Esse número é gerado e atribuído ao arquivo pelo sistema de arquivos.
ShortNameLength
Especifica o comprimento 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 FileId64ExtdBothDirectoryInformation como o valor de FileInformationClass e passando um buffer alocado por um chamador, FILE_ID_64_EXTD_BOTH_DIR_INFORMATIONestruturado como o valor de FileInformation.
Crie um IRP com IRP_MJ_DIRECTORY_CONTROL de código de função principal e IRP_MN_QUERY_DIRECTORY de código de função secundária.
Nenhum direito de acesso específico é necessário para consultar essas informações.
Os números de referência de arquivo, também chamados de IDs de arquivo, têm a garantia de serem exclusivos somente em um sistema de arquivos estático. Eles não têm garantia de serem exclusivos ao longo do tempo, pois os sistemas de arquivos são livres para reutilizá-los. Também não há garantia de que eles permaneçam constantes. Por exemplo, o sistema de arquivos FAT gera o número de referência de arquivo para um arquivo do deslocamento de bytes do registro de entrada de diretório do arquivo (DIRENT) no disco. A desfragmentação pode alterar esse deslocamento de bytes. Portanto, um número de referência de arquivo FAT pode ser alterado ao longo do tempo.
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 |
---|---|
de cliente com suporte mínimo | Windows 11, versão 23H2 |
cabeçalho | ntifs.h |