Función GetFileInformationByHandleEx (winbase.h)

Recupera información del archivo especificado.

Para obtener una versión más básica de esta función para aplicaciones de escritorio, consulte GetFileInformationByHandle.

Para establecer información de archivo mediante un identificador de archivo, vea SetFileInformationByHandle.

Sintaxis

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

Parámetros

[in] hFile

Identificador del archivo que contiene la información que se va a recuperar.

Este identificador no debe ser un identificador de canalización.

[in] FileInformationClass

Valor de enumeración FILE_INFO_BY_HANDLE_CLASS que especifica el tipo de información que se va a recuperar.

Para obtener una tabla de valores válidos, vea la sección Comentarios.

[out] lpFileInformation

Puntero al búfer que recibe la información de archivo solicitada. La estructura que se devuelve corresponde a la clase especificada por FileInformationClass. Para obtener una tabla de tipos de estructura válidos, vea la sección Comentarios.

[in] dwBufferSize

Tamaño del búfer lpFileInformation , en bytes.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero y los datos de información del archivo se encuentran en el búfer al que apunta el parámetro lpFileInformation .

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si FileInformationClass es FileStreamInfo y las llamadas se realizan correctamente, pero no se devuelven secuencias, se ERROR_HANDLE_EOF el error devuelto por GetLastError.

Ciertas clases de información de archivos se comportan de forma ligeramente diferente en diferentes versiones del sistema operativo. Estas clases son compatibles con los controladores subyacentes y cualquier información que devuelve está sujeta a cambios entre las versiones del sistema operativo.

En la tabla siguiente se muestran los tipos de clase de información de archivo válidos y sus tipos de estructura de datos correspondientes para su uso con esta función.

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
 

Operaciones de transacción

Si hay una transacción enlazada al subproceso en el momento de la llamada, la función devuelve el tamaño de archivo comprimido de la vista de archivo aislada. Para obtener más información, vea Acerca de NTFS transaccional.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)

Requisitos

   
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winbase.h (incluye Windows.h)
Library Kernel32.lib; FileExtd.lib en Windows Server 2003 y Windows XP
Archivo DLL Kernel32.dll
Redistribuible Windows SDK en Windows Server 2003 y Windows XP.

Consulte también

FILE_INFO_BY_HANDLE_CLASS

Funciones de administración de archivos

SetFileInformationByHandle