Función GetVolumeInformationA (fileapi.h)
Recupera información sobre el sistema de archivos y el volumen asociados al directorio raíz especificado.
Para especificar un identificador al recuperar esta información, use la función GetVolumeInformationByHandleW.
Para recuperar el estado de compresión actual de un archivo o directorio, use FSCTL_GET_COMPRESSION.
Sintaxis
BOOL GetVolumeInformationA(
[in, optional] LPCSTR lpRootPathName,
[out, optional] LPSTR lpVolumeNameBuffer,
[in] DWORD nVolumeNameSize,
[out, optional] LPDWORD lpVolumeSerialNumber,
[out, optional] LPDWORD lpMaximumComponentLength,
[out, optional] LPDWORD lpFileSystemFlags,
[out, optional] LPSTR lpFileSystemNameBuffer,
[in] DWORD nFileSystemNameSize
);
Parámetros
[in, optional] lpRootPathName
Puntero a una cadena que contiene el directorio raíz del volumen que se va a describir.
Si este parámetro es NULL, se usa la raíz del directorio actual. Se requiere una barra diagonal inversa final. Por ejemplo, especifique \\MyServer\MyShare como "\\MyServer\MyShare\" o la unidad C como "C:\".
[out, optional] lpVolumeNameBuffer
Puntero a un búfer que recibe el nombre de un volumen especificado. El tamaño del búfer se especifica mediante el parámetro nVolumeNameSize.
[in] nVolumeNameSize
Longitud de un búfer de nombres de volumen, en TCHAR. El tamaño máximo del búfer es MAX_PATHs+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 Instrumental de administración de Windows (WMI) Win32_PhysicalMediaSerialNumber.
[out, optional] lpMaximumComponentLength
Puntero a una variable que recibe la longitud máxima, en TCHAR, 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.
Valor almacenado en la variable que *lpMaximumComponentLength apunta a 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 tal como 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 reanálisis. ReFS: ReFS admite puntos de reanálisis, pero no los indexa, por lo que FindFirstVolumeMountPoint y FindNextVolumeMountPoint no funcionará según lo previsto. |
FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 |
El sistema de archivos admite almacenamiento remoto. |
FILE_RETURNS_CLEANUP_RESULT_INFO 0x00000200 |
En una operación de limpieza correcta, el sistema de archivos devuelve información que describe las acciones adicionales realizadas durante la limpieza, como eliminar el archivo. Los filtros del sistema de archivos pueden examinar esta información en su devolución de llamada posterior a la limpieza. |
FILE_SUPPORTS_POSIX_UNLINK_RENAME 0x00000400 |
El sistema de archivos admite operaciones de eliminación y cambio de nombre de estilo POSIX. |
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, consulte 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 sola escritura secuencial. |
FILE_SUPPORTS_TRANSACTIONS 0x00200000 |
El volumen especificado admite transacciones. Para obtener más información, vea About KTM. |
FILE_SUPPORTS_HARD_LINKS 0x00400000 |
El volumen especificado admite vínculos duros. Para obtener más información, vea vínculos físicos y uniones. Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite hasta Windows Server 2008 R2 y Windows 7. |
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 Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite hasta Windows Server 2008 R2 y Windows 7. |
FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 |
El sistema de archivos admite open by FileID. Para obtener más información, vea FILE_ID_BOTH_DIR_INFO. Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite hasta Windows Server 2008 R2 y Windows 7. |
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, consulte Change Journal Records. Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite hasta Windows Server 2008 R2 y Windows 7. |
FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000 |
El sistema de archivos admite flujos de integridad . |
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 a las escrituras en clústeres compartidos. Indica que FSCTL_DUPLICATE_EXTENTS_TO_FILE es una operación admitida. |
FILE_SUPPORTS_SPARSE_VDL 0x10000000 |
El sistema de archivos realiza un seguimiento de si cada clúster de un archivo contiene datos válidos (ya sea de escrituras de archivos explícitos o ceros automáticos) o datos no válidos (aún no se han escrito en o en cero). Los sistemas de archivos que usan la longitud de datos válida dispersa (VDL) no almacenan una longitud de datos válida y no requieren que los datos válidos sean contiguos dentro de un archivo. |
FILE_DAX_VOLUME 0x20000000 |
El volumen especificado es un volumen de acceso directo (DAX). Nota: Esta marca se introdujo en Windows 10, versión 1607. |
FILE_SUPPORTS_GHOSTING 0x40000000 |
El sistema de archivos admite fantasmas. |
[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 TCHAR. 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.
Observaciones
Cuando un usuario intenta obtener información sobre una unidad de disquete que no tiene un disco de disquete o una unidad de CD-ROM que no tiene un disco compacto, el sistema muestra un cuadro de mensaje para que el usuario inserte un disco de disquete o un disco compacto, respectivamente. Para evitar que el sistema muestre este cuadro de mensaje, llame a la función setErrorMode
La marca FILE_VOL_IS_COMPRESSED es el único indicador de compresión basada en volumen. El nombre del sistema de archivos no se modifica para indicar la compresión; por ejemplo, se devuelve esta marca establecida en un volumen de DoubleSpace. Cuando la compresión está basada en volumen, se comprime un volumen completo o no se comprime.
La marca FILE_FILE_COMPRESSION indica si un sistema de archivos admite la compresión basada en archivos. Cuando la compresión se basa en archivos, los archivos individuales se pueden comprimir o no comprimir.
Las marcas FILE_FILE_COMPRESSION y FILE_VOL_IS_COMPRESSED son mutuamente excluyentes. No se pueden devolver ambos bits.
El valor máximo de longitud de componente que se almacena en lpMaximumComponentLength es el único indicador de que un volumen admite nombres de archivos fat más largos que normales (u otro sistema de archivos). El nombre del sistema de archivos no se modifica para indicar la compatibilidad con nombres de archivo largos.
La función getCompressedFileSize de
Comportamiento de vínculo simbólico
Si la ruta de acceso apunta a un vínculo simbólico, la función devuelve información de volumen para el destino.
A partir de Windows 8 y Windows Server 2012, esta función es compatible con las siguientes tecnologías.
Tecnología | Soportado |
---|---|
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) | Sí |
Sistema de archivos resistente (ReFS) | Sí |
SMB no admite funciones de administración de volúmenes.
Operaciones de transacción
Si el volumen admite transacciones del sistema de archivos, la función devuelve FILE_SUPPORTS_TRANSACTIONS en lpFileSystemFlags.
Nota
El encabezado fileapi.h define GetVolumeInformation como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
fileapi.h (incluya Windows.h) |
biblioteca de |
Kernel32.lib |
DLL de |
Kernel32.dll |
Consulte también
de cifrado de archivos de
funciones de administración de volúmenes de