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 est 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 en tant que « \\MyServer\MyShare\ », ou le lecteur C en tant que « 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, dans TCHAR. La taille maximale de la mémoire tampon est MAX_PATHs+1.
Ce paramètre est ignoré si la mémoire tampon du nom du 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 obligatoire.
Cette fonction retourne le numéro de série du volume affecté par le système d’exploitation lorsqu’un disque dur est mis en forme. Pour obtenir par programme le numéro de série du disque dur attribué par le fabricant, utilisez la propriété WMI (Windows Management Instrumentation) Win32_PhysicalMediaSerialNumber.
[out, optional] lpMaximumComponentLength
Pointeur vers une variable qui reçoit la longueur maximale, dans 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.
Valeur stockée dans la variable à laquelle *lpMaximumComponentLength points à utiliser 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 au fur et à mesure 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 des 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 partiellement alloués. |
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 de sorte que FindFirstVolumeMountPoint et FindNextVolumeMountPoint ne fonctionne 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 des actions supplémentaires effectuées pendant le nettoyage, telles que la suppression du fichier. Les filtres de 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 chiffré (EFS). Pour plus d’informations, consultez chiffrement de fichiers . |
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 durs. Pour plus d’informations, consultez liens durs 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 ne sont pas pris en charge. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 |
Le volume spécifié prend en charge les attributs étendus. Un attribut étendu est une partie des métadonnées spécifiques à l’application qu’une application peut associer à un fichier et 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 ne sont pas pris en charge. |
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 ne sont pas pris en charge. |
FILE_SUPPORTS_USN_JOURNAL 0x02000000 |
Le volume spécifié prend en charge les journaux USN (Update Sequence Number). Pour plus d’informations, consultez Modifier les enregistrements de 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 ne sont pas pris en charge. |
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 les fichiers sur le même volume. Le système de fichiers réalloue 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 suit 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 dans ou zéro). Les systèmes de fichiers qui utilisent une longueur de données valides (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 fantôme. |
[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, dans 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 de retour
Si toutes les informations demandées sont récupérées, la valeur de retour n’est pas nulle.
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’erreur étendues, appelez GetLastError.
Remarques
Lorsqu’un utilisateur tente d’obtenir des informations sur un lecteur de floppy qui n’a pas de disque de floppy ou un lecteur CD-ROM qui n’a pas de disque compact, le système affiche une boîte de message pour que l’utilisateur insère un disque floppy 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 un 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, les 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 maximale de la longueur du composant stockée dans lpMaximumComponentLength est le seul indicateur qu’un volume prend en charge les noms de fichiers FAT plus longs que normaux (ou d’autres systèmes de fichiers). 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 symbolique des liens
Si le chemin pointe vers un lien symbolique, la fonction retourne des informations de volume pour la cible.
À compter de Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.
Technologie | Supporté |
---|---|
Protocole SMB (Server Message Block) 3.0 | Non |
Basculement transparent SMB 3.0 (TFO) | Non |
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) | Non |
Cluster Shared Volume File System (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
SMB ne prend pas en charge les fonctions de gestion des volumes.
Opérations transactionnelles
Si le volume prend en charge les transactions de système de fichiers, la fonction retourne FILE_SUPPORTS_TRANSACTIONS dans lpFileSystemFlags.
Note
L’en-tête fileapi.h définit GetVolumeInformation comme 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. Le mélange 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | fileapi.h (include Windows.h) |
bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |
Voir aussi
À propos du KTM