Función GetVolumeInformationByHandleW (fileapi.h)

Recupera información sobre el sistema de archivos y el volumen asociado al archivo especificado.

Para recuperar el estado de compresión actual de un archivo o directorio, use FSCTL_GET_COMPRESSION.

Sintaxis

BOOL GetVolumeInformationByHandleW(
  [in]            HANDLE  hFile,
  [out, optional] LPWSTR  lpVolumeNameBuffer,
  [in]            DWORD   nVolumeNameSize,
  [out, optional] LPDWORD lpVolumeSerialNumber,
  [out, optional] LPDWORD lpMaximumComponentLength,
  [out, optional] LPDWORD lpFileSystemFlags,
  [out, optional] LPWSTR  lpFileSystemNameBuffer,
  [in]            DWORD   nFileSystemNameSize
);

Parámetros

[in] hFile

Identificador del archivo.

[out, optional] lpVolumeNameBuffer

Puntero a un búfer que recibe el nombre de un volumen especificado. El tamaño máximo del búfer es MAX_PATH+1.

[in] nVolumeNameSize

Longitud de un búfer de nombres de volumen, en WCHARs. El tamaño máximo del búfer es MAX_PATH+1.

Este parámetro se omite si no se proporciona el búfer de nombres de volumen.

[out, optional] lpVolumeSerialNumber

Puntero a una variable que recibe el número de serie del volumen.

Este parámetro puede ser NULL si no se requiere el número de serie.

Esta función devuelve el número de serie del volumen que asigna el sistema operativo cuando se da formato a un disco duro. Para obtener mediante programación el número de serie del disco duro que asigna el fabricante, use la propiedad SerialNumber del Instrumental de administración de Windows (WMI Win32_PhysicalMedia).

[out, optional] lpMaximumComponentLength

Puntero a una variable que recibe la longitud máxima, en WCHARs, de un componente de nombre de archivo que admite un sistema de archivos especificado.

Un componente de nombre de archivo es la parte de un nombre de archivo entre barras diagonales inversas.

El valor almacenado en la variable a la que apunta *lpMaximumComponentLength se usa para indicar que un sistema de archivos especificado admite nombres largos. Por ejemplo, para un sistema de archivos FAT que admite nombres largos, la función almacena el valor 255, en lugar del indicador 8.3 anterior. Los nombres largos también se pueden admitir en sistemas que usan el sistema de archivos NTFS.

[out, optional] lpFileSystemFlags

Puntero a una variable que recibe marcas asociadas al sistema de archivos especificado.

Este parámetro puede ser una o varias de las marcas siguientes. Sin embargo, FILE_FILE_COMPRESSION y FILE_VOL_IS_COMPRESSED son mutuamente excluyentes.

Valor Significado
FILE_CASE_SENSITIVE_SEARCH
0x00000001
El volumen especificado admite nombres de archivo que distinguen mayúsculas de minúsculas.
FILE_CASE_PRESERVED_NAMES
0x00000002
El volumen especificado admite mayúsculas y minúsculas conservadas de nombres de archivo cuando coloca un nombre en el disco.
FILE_UNICODE_ON_DISK
0x00000004
El volumen especificado admite Unicode en los nombres de archivo a medida que aparecen en el disco.
FILE_PERSISTENT_ACLS
0x00000008
El volumen especificado conserva y aplica listas de control de acceso (ACL). Por ejemplo, el sistema de archivos NTFS conserva y aplica las ACL, y el sistema de archivos FAT no lo hace.
FILE_FILE_COMPRESSION
0x00000010
El volumen especificado admite la compresión basada en archivos.
FILE_VOLUME_QUOTAS
0x00000020
El volumen especificado admite cuotas de disco.
FILE_SUPPORTS_SPARSE_FILES
0x00000040
El volumen especificado admite archivos dispersos.
FILE_SUPPORTS_REPARSE_POINTS
0x00000080
El volumen especificado admite puntos de nuevo análisis.
FILE_VOLUME_IS_COMPRESSED
0x00008000
El volumen especificado es un volumen comprimido, por ejemplo, un volumen DoubleSpace.
FILE_SUPPORTS_OBJECT_IDS
0x00010000
El volumen especificado admite identificadores de objeto.
FILE_SUPPORTS_ENCRYPTION
0x00020000
El volumen especificado admite el sistema de archivos cifrado (EFS). Para obtener más información, vea Cifrado de archivos.
FILE_NAMED_STREAMS
0x00040000
El volumen especificado admite flujos con nombre.
FILE_READ_ONLY_VOLUME
0x00080000
El volumen especificado es de solo lectura.
FILE_SEQUENTIAL_WRITE_ONCE
0x00100000
El volumen especificado admite una única escritura secuencial.
FILE_SUPPORTS_TRANSACTIONS
0x00200000
El volumen especificado admite transacciones. Para obtener más información, vea Acerca de KTM.
FILE_SUPPORTS_HARD_LINKS
0x00400000
El volumen especificado admite vínculos duros. Para obtener más información, vea Vínculos duros y uniones.

Windows Vista y Windows Server 2008: Este valor no se admite.

FILE_SUPPORTS_EXTENDED_ATTRIBUTES
0x00800000
El volumen especificado admite atributos extendidos. Un atributo extendido es un fragmento de metadatos específicos de la aplicación que una aplicación puede asociar a un archivo y no forma parte de los datos del archivo.

Windows Vista y Windows Server 2008: Este valor no se admite.

FILE_SUPPORTS_OPEN_BY_FILE_ID
0x01000000
El sistema de archivos admite open by FileID. Para obtener más información, consulte FILE_ID_BOTH_DIR_INFO.

Windows Vista y Windows Server 2008: Este valor no se admite.

FILE_SUPPORTS_USN_JOURNAL
0x02000000
El volumen especificado admite diarios de número de secuencia de actualización (USN). Para obtener más información, vea Cambiar registros del diario.

Windows Vista y Windows Server 2008: Este valor no se admite.

FILE_SUPPORTS_BLOCK_REFCOUNTING
0x08000000
El volumen especificado admite el uso compartido de clústeres lógicos entre archivos del mismo volumen. El sistema de archivos se reasigna en escrituras en clústeres compartidos. Indica que FSCTL_DUPLICATE_EXTENTS_TO_FILE es una operación admitida.

[out, optional] lpFileSystemNameBuffer

Puntero a un búfer que recibe el nombre del sistema de archivos, por ejemplo, el sistema de archivos FAT o el sistema de archivos NTFS. El tamaño del búfer se especifica mediante el parámetro nFileSystemNameSize .

[in] nFileSystemNameSize

Longitud del búfer de nombres del sistema de archivos, en WCHARs. El tamaño máximo del búfer es MAX_PATH+1.

Este parámetro se omite si no se proporciona el búfer de nombres del sistema de archivos.

Valor devuelto

Si se recupera toda la información solicitada, el valor devuelto es distinto de cero.

Si no se recupera toda la información solicitada, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

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

SMB no admite funciones de administración de volúmenes.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado fileapi.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Acerca de KTM

Cifrado de archivos

GetCompressedFileSize

GetFileAttributes

GetVolumeInformation

SetErrorMode

SetVolumeLabel

Funciones de administración de volúmenes