Função GetFileInformationByHandleEx (winbase.h)

Recupera informações do arquivo especificado.

Para obter uma versão mais básica dessa função para aplicativos da área de trabalho, consulte GetFileInformationByHandle.

Para definir informações de arquivo usando um identificador de arquivo, consulte SetFileInformationByHandle.

Sintaxe

BOOL GetFileInformationByHandleEx(
  [in]  HANDLE                    hFile,
  [in]  FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
  [out] LPVOID                    lpFileInformation,
  [in]  DWORD                     dwBufferSize
);

Parâmetros

[in] hFile

Um identificador para o arquivo que contém as informações a serem recuperadas.

Esse identificador não deve ser um identificador de pipe.

[in] FileInformationClass

Um FILE_INFO_BY_HANDLE_CLASS valor de enumeração que especifica o tipo de informação a ser recuperado.

Para obter uma tabela de valores válidos, consulte a seção Comentários.

[out] lpFileInformation

Um ponteiro para o buffer que recebe as informações de arquivo solicitadas. A estrutura retornada corresponde à classe especificada por FileInformationClass. Para obter uma tabela de tipos de estrutura válidos, consulte a seção Comentários.

[in] dwBufferSize

O tamanho do buffer lpFileInformation , em bytes.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero e os dados de informações do arquivo serão contidos no buffer apontado pelo parâmetro lpFileInformation .

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se FileInformationClass for FileStreamInfo e as chamadas forem bem-sucedidas, mas nenhum fluxo for retornado, o erro retornado por GetLastErrorserá ERROR_HANDLE_EOF.

Determinadas classes de informações de arquivo se comportam um pouco diferente em diferentes versões do sistema operacional. Essas classes são compatíveis com os drivers subjacentes e todas as informações retornadas estão sujeitas a alterações entre as versões do sistema operacional.

A tabela a seguir mostra os tipos de classe de informações de arquivo válidos e seus tipos de estrutura de dados correspondentes para uso com essa função.

Valor FileInformationClass Tipo lpFileInformation
FileBasicInfo (0) FILE_BASIC_INFO
FileStandardInfo (1) FILE_STANDARD_INFO
FileNameInfo (2) FILE_NAME_INFO
FileStreamInfo (7) FILE_STREAM_INFO
FileCompressionInfo (8) FILE_COMPRESSION_INFO
FileAttributeTagInfo (9) FILE_ATTRIBUTE_TAG_INFO
FileIdBothDirectoryInfo (0xa) FILE_ID_BOTH_DIR_INFO
FileIdBothDirectoryRestartInfo (0xb) FILE_ID_BOTH_DIR_INFO
FileRemoteProtocolInfo (0xd) FILE_REMOTE_PROTOCOL_INFO
FileFullDirectoryInfo (0xe) FILE_FULL_DIR_INFO
FileFullDirectoryRestartInfo (0xf) FILE_FULL_DIR_INFO
FileStorageInfo (0x10) FILE_STORAGE_INFO
FileAlignmentInfo (0x11) FILE_ALIGNMENT_INFO
FileIdInfo (0x12) FILE_ID_INFO
FileIdExtdDirectoryInfo (0x13) FILE_ID_EXTD_DIR_INFO
FileIdExtdDirectoryRestartInfo (0x14) FILE_ID_EXTD_DIR_INFO
 

Operações transacionadas

Se houver uma transação associada ao thread no momento da chamada, a função retornará o tamanho do arquivo compactado da exibição de arquivo isolado. Para obter mais informações, consulte Sobre o NTFS transacional.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
TFO (Failover transparente) do SMB 3.0 Sim
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Sim
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim

Requisitos

   
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winbase.h (inclua Windows.h)
Biblioteca Kernel32.lib; FileExtd.lib no Windows Server 2003 e Windows XP
DLL Kernel32.dll
Redistribuível SDK do Windows no Windows Server 2003 e Windows XP.

Confira também

FILE_INFO_BY_HANDLE_CLASS

Funções de gerenciamento de arquivos

SetFileInformationByHandle