GetVolumeInformationA, fonction (fileapi.h)
Récupère des informations sur le système de fichiers et le volume associés au répertoire racine spécifié.
Pour spécifier un handle lors de la récupération de ces informations, utilisez la fonction GetVolumeInformationByHandleW .
Pour récupérer l’état de compression actuel d’un fichier ou d’un répertoire, utilisez FSCTL_GET_COMPRESSION.
Syntaxe
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
);
Paramètres
[in, optional] lpRootPathName
Pointeur vers une chaîne qui contient le répertoire racine du volume à décrire.
Si ce paramètre a la valeur NULL, la racine du répertoire actif est utilisée. Une barre oblique inverse de fin est requise. Par exemple, vous spécifiez \\MyServer\MyShare comme « \\MyServer\MyShare\ », ou le lecteur C comme « C :\ ».
[out, optional] lpVolumeNameBuffer
Pointeur vers une mémoire tampon qui reçoit le nom d’un volume spécifié. La taille de la mémoire tampon est spécifiée par le paramètre nVolumeNameSize .
[in] nVolumeNameSize
Longueur d’une mémoire tampon de nom de volume, en TCHAR. La taille maximale de la mémoire tampon est MAX_PATHs+1.
Ce paramètre est ignoré si la mémoire tampon de nom de volume n’est pas fournie.
[out, optional] lpVolumeSerialNumber
Pointeur vers une variable qui reçoit le numéro de série du volume.
Ce paramètre peut être NULL si le numéro de série n’est pas requis.
Cette fonction retourne le numéro de série du volume attribué par le système d’exploitation lorsqu’un disque dur est formaté. Pour obtenir par programmation le numéro de série du disque dur attribué par le fabricant, utilisez la propriété de Win32_PhysicalMedia Windows Management Instrumentation ( WMI) SerialNumber.
[out, optional] lpMaximumComponentLength
Pointeur vers une variable qui reçoit la longueur maximale, en TCHAR, d’un composant de nom de fichier pris en charge par un système de fichiers spécifié.
Un composant de nom de fichier est la partie d’un nom de fichier entre les barres obliques inverses.
La valeur stockée dans la variable vers laquelle pointe *lpMaximumComponentLength est utilisée pour indiquer qu’un système de fichiers spécifié prend en charge les noms longs. Par exemple, pour un système de fichiers FAT qui prend en charge les noms longs, la fonction stocke la valeur 255, plutôt que l’indicateur 8,3 précédent. Les noms longs peuvent également être pris en charge sur les systèmes qui utilisent le système de fichiers NTFS.
[out, optional] lpFileSystemFlags
Pointeur vers une variable qui reçoit des indicateurs associés au système de fichiers spécifié.
Ce paramètre peut être un ou plusieurs des indicateurs suivants. Toutefois, FILE_FILE_COMPRESSION et FILE_VOL_IS_COMPRESSED s’excluent mutuellement.
Valeur | Signification |
---|---|
FILE_CASE_SENSITIVE_SEARCH 0x00000001 |
Le volume spécifié prend en charge les noms de fichiers respectant la casse. |
FILE_CASE_PRESERVED_NAMES 0x00000002 |
Le volume spécifié prend en charge la casse conservée des noms de fichiers lorsqu’il place un nom sur le disque. |
FILE_UNICODE_ON_DISK 0x00000004 |
Le volume spécifié prend en charge Unicode dans les noms de fichiers tels qu’ils apparaissent sur le disque. |
FILE_PERSISTENT_ACLS 0x00000008 |
Le volume spécifié conserve et applique les listes de contrôle d’accès (ACL). Par exemple, le système de fichiers NTFS conserve et applique les listes de contrôle d’accès, et le système de fichiers FAT ne le fait pas. |
FILE_FILE_COMPRESSION 0x00000010 |
Le volume spécifié prend en charge la compression basée sur les fichiers. |
FILE_VOLUME_QUOTAS 0x00000020 |
Le volume spécifié prend en charge les quotas de disque. |
FILE_SUPPORTS_SPARSE_FILES 0x00000040 |
Le volume spécifié prend en charge les fichiers épars. |
FILE_SUPPORTS_REPARSE_POINTS 0x00000080 |
Le volume spécifié prend en charge les points d’analyse. Refs: ReFS prend en charge les points d’analyse, mais ne les indexe pas, donc FindFirstVolumeMountPoint et FindNextVolumeMountPoint ne fonctionnent pas comme prévu. |
FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 |
Le système de fichiers prend en charge le stockage distant. |
FILE_RETURNS_CLEANUP_RESULT_INFO 0x00000200 |
Lors d’une opération de nettoyage réussie, le système de fichiers retourne des informations qui décrivent les actions supplémentaires effectuées pendant le nettoyage, telles que la suppression du fichier. Les filtres du système de fichiers peuvent examiner ces informations dans leur rappel post-nettoyage. |
FILE_SUPPORTS_POSIX_UNLINK_RENAME 0x00000400 |
Le système de fichiers prend en charge les opérations de suppression et de renommage de style POSIX. |
FILE_VOLUME_IS_COMPRESSED 0x00008000 |
Le volume spécifié est un volume compressé, par exemple un volume DoubleSpace. |
FILE_SUPPORTS_OBJECT_IDS 0x00010000 |
Le volume spécifié prend en charge les identificateurs d’objet. |
FILE_SUPPORTS_ENCRYPTION 0x00020000 |
Le volume spécifié prend en charge le système de fichiers EFS (Encrypted File System). Pour plus d’informations, consultez Chiffrement de fichier. |
FILE_NAMED_STREAMS 0x00040000 |
Le volume spécifié prend en charge les flux nommés. |
FILE_READ_ONLY_VOLUME 0x00080000 |
Le volume spécifié est en lecture seule. |
FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 |
Le volume spécifié prend en charge une seule écriture séquentielle. |
FILE_SUPPORTS_TRANSACTIONS 0x00200000 |
Le volume spécifié prend en charge les transactions. Pour plus d’informations, consultez À propos de KTM. |
FILE_SUPPORTS_HARD_LINKS 0x00400000 |
Le volume spécifié prend en charge les liens physiques. Pour plus d’informations, consultez Liens physiques et jonctions. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge tant que Windows Server 2008 R2 et Windows 7. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 |
Le volume spécifié prend en charge les attributs étendus. Un attribut étendu est un élément de métadonnées spécifiques à l’application qu’une application peut associer à un fichier et qui ne fait pas partie des données du fichier. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge tant que Windows Server 2008 R2 et Windows 7. |
FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 |
Le système de fichiers prend en charge l’ouverture par FileID. Pour plus d’informations, consultez FILE_ID_BOTH_DIR_INFO. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge tant que Windows Server 2008 R2 et Windows 7. |
FILE_SUPPORTS_USN_JOURNAL 0x02000000 |
Le volume spécifié prend en charge les journaux de numéro de séquence de mise à jour (USN). Pour plus d’informations, consultez Modifier les enregistrements Journal. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge tant que Windows Server 2008 R2 et Windows 7. |
FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000 |
Le système de fichiers prend en charge les flux d’intégrité. |
FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000 |
Le volume spécifié prend en charge le partage de clusters logiques entre des fichiers sur le même volume. Le système de fichiers se réalloue sur les écritures dans des clusters partagés. Indique que FSCTL_DUPLICATE_EXTENTS_TO_FILE est une opération prise en charge. |
FILE_SUPPORTS_SPARSE_VDL 0x10000000 |
Le système de fichiers vérifie si chaque cluster d’un fichier contient des données valides (à partir d’écritures de fichiers explicites ou de zéros automatiques) ou de données non valides (n’a pas encore été écrit ou mis à zéro). Les systèmes de fichiers qui utilisent une longueur de données valide éparse (VDL) ne stockent pas une longueur de données valide et ne nécessitent pas que les données valides soient contiguës dans un fichier. |
FILE_DAX_VOLUME 0x20000000 |
Le volume spécifié est un volume d’accès direct (DAX). Remarque : Cet indicateur a été introduit dans Windows 10, version 1607. |
FILE_SUPPORTS_GHOSTING 0x40000000 |
Le système de fichiers prend en charge le ghosting. |
[out, optional] lpFileSystemNameBuffer
Pointeur vers une mémoire tampon qui reçoit le nom du système de fichiers, par exemple, le système de fichiers FAT ou le système de fichiers NTFS. La taille de la mémoire tampon est spécifiée par le paramètre nFileSystemNameSize .
[in] nFileSystemNameSize
Longueur de la mémoire tampon du nom du système de fichiers, en TCHAR. La taille maximale de la mémoire tampon est MAX_PATH+1.
Ce paramètre est ignoré si la mémoire tampon du nom du système de fichiers n’est pas fournie.
Valeur retournée
Si toutes les informations demandées sont récupérées, la valeur de retour est différente de zéro.
Si toutes les informations demandées ne sont pas récupérées, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Lorsqu’un utilisateur tente d’obtenir des informations sur un lecteur de disquette qui n’a pas de disquette ou un lecteur de CD-ROM qui n’a pas de disque compact, le système affiche une boîte de message permettant à l’utilisateur d’insérer une disquette ou un disque compact, respectivement. Pour empêcher le système d’afficher cette boîte de message, appelez la fonction SetErrorMode avec SEM_FAILCRITICALERRORS.
L’indicateur FILE_VOL_IS_COMPRESSED est le seul indicateur de compression basée sur le volume. Le nom du système de fichiers n’est pas modifié pour indiquer la compression. Par exemple, cet indicateur est retourné défini sur un volume DoubleSpace. Lorsque la compression est basée sur le volume, un volume entier est compressé ou non compressé.
L’indicateur FILE_FILE_COMPRESSION indique si un système de fichiers prend en charge la compression basée sur les fichiers. Lorsque la compression est basée sur des fichiers, des fichiers individuels peuvent être compressés ou non compressés.
Les indicateurs FILE_FILE_COMPRESSION et FILE_VOL_IS_COMPRESSED s’excluent mutuellement. Les deux bits ne peuvent pas être retournés définis.
La valeur de longueur maximale du composant stockée dans lpMaximumComponentLength est le seul indicateur qu’un volume prend en charge des noms de fichiers de système de fichiers FAT (ou d’autres systèmes de fichiers) plus longs que la normale. Le nom du système de fichiers n’est pas modifié pour indiquer la prise en charge des noms de fichiers longs.
La fonction GetCompressedFileSize obtient la taille compressée d’un fichier. La fonction GetFileAttributes peut déterminer si un fichier individuel est compressé.
Comportement des liens symboliques
Si le chemin pointe vers un lien symbolique, la fonction retourne des informations de volume pour la cible.
À compter de Windows 8 et de Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.
Technologie | Prise en charge |
---|---|
Protocole Server Message Block (SMB) 3.0 | No |
Basculement transparent SMB 3.0 (TFO) | No |
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) | No |
Système de fichiers du volume partagé de cluster (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
SMB ne prend pas en charge les fonctions de gestion des volumes.
Opérations traitées
Si le volume prend en charge les transactions du système de fichiers, la fonction retourne FILE_SUPPORTS_TRANSACTIONS dans lpFileSystemFlags.
Notes
L’en-tête fileapi.h définit GetVolumeInformation en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | fileapi.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |