Partager via


GetVolumeInformationW, 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 GetVolumeInformationW(
  [in, optional]  LPCWSTR lpRootPathName,
  [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
);

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, 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_PATH+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é.

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

de chiffrement de fichiers

GetCompressedFileSize

GetFileAttributes

GetVolumeInformationByHandleW

SetErrorMode

SetVolumeLabel

fonctions de gestion des volumes