estrutura BY_HANDLE_FILE_INFORMATION (fileapi.h)
Contém informações que a função GetFileInformationByHandle recupera.
Sintaxe
typedef struct _BY_HANDLE_FILE_INFORMATION {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD dwVolumeSerialNumber;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD nNumberOfLinks;
DWORD nFileIndexHigh;
DWORD nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
Membros
dwFileAttributes
Os atributos de arquivo. Para obter valores possíveis e suas descrições, consulte Constantes de atributo de arquivo.
ftCreationTime
Uma estrutura FILETIME que especifica quando um arquivo ou diretório é criado. Se o sistema de arquivos subjacente não der suporte à hora de criação, esse membro será zero (0).
ftLastAccessTime
Uma estrutura FILETIME . Para um arquivo, a estrutura especifica a última vez em que um arquivo é lido ou gravado. Para um diretório, a estrutura especifica quando o diretório é criado. Para arquivos e diretórios, a data especificada está correta, mas a hora do dia é sempre definida como meia-noite. Se o sistema de arquivos subjacente não der suporte à hora do último acesso, esse membro será zero (0).
ftLastWriteTime
Uma estrutura FILETIME . Para um arquivo, a estrutura especifica a última vez em que um arquivo é gravado. Para um diretório, a estrutura especifica quando o diretório é criado. Se o sistema de arquivos subjacente não der suporte à hora da última gravação, esse membro será zero (0).
dwVolumeSerialNumber
O número de série do volume que contém um arquivo.
nFileSizeHigh
A parte de alta ordem do tamanho do arquivo.
nFileSizeLow
A parte de baixa ordem do tamanho do arquivo.
nNumberOfLinks
O número de links para esse arquivo. Para o sistema de arquivos FAT, esse membro é sempre 1. Para o sistema de arquivos NTFS, pode ser mais de 1.
nFileIndexHigh
A parte de alta ordem de um identificador exclusivo associado a um arquivo. Para obter mais informações, consulte nFileIndexLow.
nFileIndexLow
A parte de baixa ordem de um identificador exclusivo associado a um arquivo.
O identificador (partes baixa e alta) e o número de série do volume identificam exclusivamente um arquivo em um único computador. Para determinar se dois identificadores abertos representam o mesmo arquivo, combine o identificador e o número de série do volume para cada arquivo e compare-os.
O sistema de arquivos ReFS, introduzido com Windows Server 2012, inclui identificadores de arquivo de 128 bits. Para recuperar o identificador de arquivo de 128 bits, use a função GetFileInformationByHandleEx com FileIdInfo para recuperar a estrutura FILE_ID_INFO . Não há garantia de que o identificador de 64 bits nessa estrutura seja exclusivo no ReFS.
Comentários
O identificador armazenado nos membros nFileIndexHigh e nFileIndexLow é chamado de ID do arquivo. O suporte para IDs de arquivo é específico do sistema de arquivos. Não há garantia de que as IDs de arquivo sejam exclusivas ao longo do tempo, pois os sistemas de arquivos são livres para reutilizá-las. Em alguns casos, a ID de arquivo de um arquivo pode ser alterada ao longo do tempo.
No sistema de arquivos FAT, a ID do arquivo é gerada do primeiro cluster do diretório que o contém e o deslocamento de bytes dentro do diretório da entrada para o arquivo. Alguns produtos de desfragmentação alteram esse deslocamento de bytes. (A desfragmentação na caixa do Windows não.) Portanto, uma ID de arquivo FAT pode ser alterada ao longo do tempo. Renomear um arquivo no sistema de arquivos FAT também pode alterar a ID do arquivo, mas somente se o novo nome de arquivo for maior que o antigo.
No sistema de arquivos NTFS, um arquivo mantém a mesma ID de arquivo até ser excluído. Você pode substituir um arquivo por outro arquivo sem alterar a ID do arquivo usando a função ReplaceFile . No entanto, a ID do arquivo de substituição, não o arquivo substituído, é mantida como a ID do arquivo resultante.
Nem todos os sistemas de arquivos podem registrar a criação e a hora do último acesso, e nem todos os sistemas de arquivos os registram da mesma maneira. Por exemplo, em um sistema de arquivos FAT do Windows, o tempo de criação tem uma resolução de 10 milissegundos, o tempo de gravação tem uma resolução de 2 segundos e o tempo de acesso tem uma resolução de 1 dia (a data de acesso). No sistema de arquivos NTFS, o tempo de acesso tem uma resolução de 1 hora. Para obter mais informações, confira Horas de arquivo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | fileapi.h (inclua Windows.h) |