Compartir a través de


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 con SEM_FAILCRITICALERRORS.

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 obtiene el tamaño comprimido de un archivo. La función GetFileAttributes puede determinar si un archivo individual está comprimido.

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)
Sistema de archivos resistente (ReFS)

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

Acerca de KTM

de cifrado de archivos de

getCompressedFileSize

GetFileAttributes

GetVolumeInformationByHandleW

SetErrorMode

SetVolumeLabel

funciones de administración de volúmenes de