GetVolumeInformationByHandleW, fonction (fileapi.h)

Récupère des informations sur le système de fichiers et le volume associés au fichier spécifié.

Pour récupérer l’état de compression actuel d’un fichier ou d’un répertoire, utilisez FSCTL_GET_COMPRESSION.

Syntaxe

BOOL GetVolumeInformationByHandleW(
  [in]            HANDLE  hFile,
  [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] hFile

Descripteur du fichier.

[out, optional] lpVolumeNameBuffer

Pointeur vers une mémoire tampon qui reçoit le nom d’un volume spécifié. La taille maximale de la mémoire tampon est MAX_PATH+1.

[in] nVolumeNameSize

Longueur d’une mémoire tampon de nom de volume, en WCHARs. La taille maximale de la mémoire tampon est MAX_PATH+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 avoir la valeur 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 mis en forme. Pour obtenir par programmation 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, en WCHAR, 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 des barres obliques inverses.

La valeur stockée dans la variable vers laquelle *lpMaximumComponentLength pointe 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 préservé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 des 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 éparses.
FILE_SUPPORTS_REPARSE_POINTS
0x00000080
Le volume spécifié prend en charge les points de ré-analyse.
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 écriture séquentielle unique.
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 Vista et Windows Server 2008 : Cette valeur n’est pas prise en charge.

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 Vista et Windows Server 2008 : Cette valeur n’est pas prise 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 Vista et Windows Server 2008 : Cette valeur n’est pas prise en charge.

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

Windows Vista et Windows Server 2008 : Cette valeur n’est pas prise en charge.

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.

[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 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 WCHARs. 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 zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Notes

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 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
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.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête fileapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

À propos de KTM

Chiffrement de fichiers

GetCompressedFileSize

GetFileAttributes

GetVolumeInformation

SetErrorMode

SetVolumeLabel

Fonctions de gestion des volumes