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 | Sí |
Conmutación por error transparente (TFO) de SMB 3.0 | Sí |
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) | Sí |
Sistema de archivos de Volumen compartido de clúster (CsvFS) | Sí |
Sistema de archivos resistente a errores (ReFS) | Sí |
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. |