structure FILE_FS_ATTRIBUTE_INFORMATION (ntifs.h)
La structure FILE_FS_ATTRIBUTE_INFORMATION est utilisée pour interroger les informations d’attribut d’un système de fichiers.
Syntaxe
typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
Membres
FileSystemAttributes
Masque de bits d’indicateurs spécifiant les attributs du système de fichiers spécifié, en tant que combinaison compatible des indicateurs suivants.
Valeur | Signification |
---|---|
FILE_CASE_SENSITIVE_SEARCH (0x00000001) | Le système de fichiers prend en charge les noms de fichiers respectant la casse. |
FILE_CASE_PRESERVED_NAMES (0x00000002) | Le système de fichiers conserve la casse des noms de fichiers lorsqu’il place un nom sur le disque. |
FILE_UNICODE_ON_DISK (0x00000004) | Le système de fichiers prend en charge Unicode dans les noms de fichiers. |
FILE_PERSISTENT_ACLS (0x00000008) | Le système de fichiers conserve et applique des listes de contrôle d’accès (ACL). |
FILE_FILE_COMPRESSION (0x00000010) | Le système de fichiers prend en charge la compression basée sur les fichiers. Cet indicateur n’est pas compatible avec l’indicateur FILE_VOLUME_IS_COMPRESSED . Cet indicateur n’affecte pas la façon dont les données sont transférées sur le réseau. |
FILE_VOLUME_QUOTAS (0x00000020) | Le système de fichiers prend en charge les quotas par utilisateur. |
FILE_SUPPORTS_SPARSE_FILES (0x00000040) | Le système de fichiers prend en charge les fichiers éparses. |
FILE_SUPPORTS_REPARSE_POINTS (0x00000080) | Le système de fichiers prend en charge les points d’analyse. |
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 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é. Cet indicateur n’est pas compatible avec l’indicateur FILE_FILE_COMPRESSION . Cela n’affecte pas la façon dont les données sont transférées sur le réseau. |
FILE_SUPPORTS_OBJECT_IDS (0x00010000) | Le système de fichiers prend en charge les identificateurs d’objet. |
FILE_SUPPORTS_ENCRYPTION (0x00020000) | Le système de fichiers prend en charge le chiffrement. |
FILE_NAMED_STREAMS (0x00040000) | Le système de fichiers prend en charge les flux de données nommés pour un fichier. |
FILE_READ_ONLY_VOLUME (0x00080000) | Le volume spécifié est en lecture seule. |
FILE_SEQUENTIAL_WRITE_ONCE (0x00100000) | Le volume spécifié peut être écrit en une seule fois. L’écriture doit être effectuée dans l’ordre séquentiel. |
FILE_SUPPORTS_TRANSACTIONS (0x00200000) | Le système de fichiers prend en charge le traitement des transactions. |
FILE_SUPPORTS_HARD_LINKS (0x00400000) | Le système de fichiers prend en charge les liens directs vers d’autres appareils et partitions. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES (0x00800000) | Le système de fichiers prend en charge les attributs étendus (EA). |
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000) | Le système de fichiers prend en charge l’ouverture par ID de fichier. |
FILE_SUPPORTS_USN_JOURNAL (0x02000000) | Le système de fichiers prend en charge les journaux de numéro de séquence de mise à jour (USN). |
FILE_SUPPORTS_INTEGRITY_STREAMS (0x04000000) | Le système de fichiers prend en charge les flux d’intégrité. |
FILE_SUPPORTS_BLOCK_REFCOUNTING (0x08000000) | Le système de fichiers prend en charge le clonage de blocs, c’est-à-dire 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. |
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 dans ou zéro). Les systèmes de fichiers qui utilisent une longueur de données valide éparse (VDL) ne stockent pas de longueur de données valide et n’exigent pas que les données valides soient contiguës au sein d’un fichier. |
FILE_DAX_VOLUME (0x20000000) | Le volume spécifié est un volume d’accès direct (DAX). |
FILE_SUPPORTS_GHOSTING (0x40000000) | Le système de fichiers prend en charge l’ghosting. |
MaximumComponentNameLength
Longueur maximale du composant de nom de fichier, en octets, prise en charge par le système de fichiers spécifié. Un composant de nom de fichier est la partie d’un nom de fichier entre les caractères séparateurs de chemin d’accès (tels que les barres obliques inverses).
FileSystemNameLength
Longueur, en octets, du nom du système de fichiers. La valeur de ce champ doit être supérieure à zéro.
FileSystemName[1]
Champ Unicode de longueur variable contenant le nom du système de fichiers. Ce champ n’est pas terminé par null et doit être géré comme une séquence d’octets FileSystemNameLength .
Remarques
Ces informations peuvent être interrogées de l’une des manières suivantes :
Appelez FltQueryVolumeInformation ou ZwQueryVolumeInformationFile, en passant FileFsAttributeInformation comme valeur de FileInformationClass et en passant une mémoire tampon FILE_FS_ATTRIBUTE_INFORMATION structurée par l’appelant comme valeur de FileInformation.
- Remarque : Sur CSVFS, FileFsAttributeInformation retourne FILE_FS_ATTRIBUTE_INFORMATION pour le système de fichiers CSVFS. Si vous souhaitez interroger FileFsAttributeInformation pour le système de fichiers CSVFS est superposé, vous devez utiliser FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS.
Créez un IRP avec le code de fonction principal IRP_MJ_QUERY_VOLUME_INFORMATION.
Aucun droit d’accès spécifique n’est requis pour interroger ces informations. Par conséquent, ces informations sont disponibles tant que le volume est accessible via un handle ouvert au volume lui-même ou à un fichier ou un répertoire sur le volume.
La taille de la mémoire tampon passée dans le paramètre FileInformation à FltQueryVolumeInformation ou ZwQueryVolumeInformationFile doit être au moins sizeof(FILE_FS_ATTRIBUTE_INFORMATION)
. Étant donné qu’une longueur maximale de nom de système de fichiers ne peut pas être supposée (pratiquement, la limite est de 2^31 points de caractères), un deuxième appel à l’une de ces routines sera nécessaire une fois fileSystemNameLength connu.
Cette structure doit être alignée sur une limite LONG (4 octets).
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntifs.h (include Ntifs.h, Fltkernel.h) |