FILE_FS_ATTRIBUTE_INFORMATION Struktur (ntifs.h)
Die FILE_FS_ATTRIBUTE_INFORMATION Struktur wird verwendet, um Attributinformationen für ein Dateisystem abzufragen.
Syntax
typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
Angehörige
FileSystemAttributes
Bitmaske von Flags, die Attribute des angegebenen Dateisystems angeben, als kompatible Kombination der folgenden Flags.
Wert | Bedeutung |
---|---|
FILE_CASE_SENSITIVE_SEARCH (0x00000001) | Das Dateisystem unterstützt Dateinamen mit Groß-/Kleinschreibung. |
FILE_CASE_PRESERVED_NAMES (0x00000002) | Das Dateisystem behält die Groß-/Kleinschreibung von Dateinamen bei, wenn sie einen Namen auf dem Datenträger platziert. |
FILE_UNICODE_ON_DISK (0x00000004) | Das Dateisystem unterstützt Unicode- in Dateinamen. |
FILE_PERSISTENT_ACLS (0x00000008) | Das Dateisystem bewahrt und erzwingt Zugriffssteuerungslisten (ACLs). |
FILE_FILE_COMPRESSION (0x00000010) | Das Dateisystem unterstützt dateibasierte Komprimierung. Dieses Kennzeichen ist nicht mit dem FILE_VOLUME_IS_COMPRESSED-Flag kompatibel. Dieses Kennzeichen wirkt sich nicht darauf aus, wie Daten über das Netzwerk übertragen werden. |
FILE_VOLUME_QUOTAS (0x00000020) | Das Dateisystem unterstützt Kontingente pro Benutzer. |
FILE_SUPPORTS_SPARSE_FILES (0x00000040) | Das Dateisystem unterstützt sparse Dateien. |
FILE_SUPPORTS_REPARSE_POINTS (0x00000080) | Das Dateisystem unterstützt Analysepunkte. |
FILE_SUPPORTS_REMOTE_STORAGE (0x00000100) | Das Dateisystem unterstützt Remotespeicher. |
FILE_RETURNS_CLEANUP_RESULT_INFO (0x00000200) | Bei einem erfolgreichen Bereinigungsvorgang gibt das Dateisystem Informationen zurück, die zusätzliche Aktionen beschreiben, die während der Bereinigung ausgeführt werden, z. B. das Löschen der Datei. Dateisystemfilter können diese Informationen in ihrem Rückruf nach der Bereinigung untersuchen. |
FILE_SUPPORTS_POSIX_UNLINK_RENAME (0x00000400) | Das Dateisystem unterstützt Lösch- und Umbenennungsvorgänge im POSIX-Stil. |
FILE_VOLUME_IS_COMPRESSED (0x00008000) | Das angegebene Volume ist ein komprimiertes Volume. Dieses Flag ist nicht mit dem FILE_FILE_COMPRESSION Flag kompatibel. Dies wirkt sich nicht darauf aus, wie Daten über das Netzwerk übertragen werden. |
FILE_SUPPORTS_OBJECT_IDS (0x00010000) | Das Dateisystem unterstützt Objektbezeichner. |
FILE_SUPPORTS_ENCRYPTION (0x00020000) | Das Dateisystem unterstützt verschlüsselung. |
FILE_NAMED_STREAMS (0x00040000) | Das Dateisystem unterstützt benannte Datenströme für eine Datei. |
FILE_READ_ONLY_VOLUME (0x00080000) | Das angegebene Volume ist schreibgeschützt. |
FILE_SEQUENTIAL_WRITE_ONCE (0x00100000) | Das angegebene Volume kann nur einmal geschrieben werden. Der Schreibvorgang muss in sequenzieller Reihenfolge ausgeführt werden. |
FILE_SUPPORTS_TRANSACTIONS (0x00200000) | Das Dateisystem unterstützt Transaktionsverarbeitung. |
FILE_SUPPORTS_HARD_LINKS (0x00400000) | Das Dateisystem unterstützt direkte Links zu anderen Geräten und Partitionen. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES (0x00800000) | Das Dateisystem unterstützt erweiterte Attribute (Extended Attributes, EAs). |
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000) | Das Dateisystem unterstützt das Öffnen nach Datei-ID. |
FILE_SUPPORTS_USN_JOURNAL (0x02000000) | Das Dateisystem unterstützt USN-Journale (Update Sequence Number). |
FILE_SUPPORTS_INTEGRITY_STREAMS (0x04000000) | Das Dateisystem unterstützt Integritätsstreams. |
FILE_SUPPORTS_BLOCK_REFCOUNTING (0x08000000) | Das Dateisystem unterstützt block cloning, d. h. das Teilen logischer Cluster zwischen Dateien auf demselben Volume. Das Dateisystem bezieht sich auf Schreibvorgänge in freigegebene Cluster. |
FILE_SUPPORTS_SPARSE_VDL (0x10000000) | Das Dateisystem verfolgt, ob jeder Cluster einer Datei gültige Daten enthält (entweder aus expliziten Dateischreibvorgängen oder automatischen Nullen) oder ungültigen Daten (wurde noch nicht in oder null geschrieben). Dateisysteme, die wenig gültige Datenlänge (VDL) verwenden, speichern keine gültige Datenlänge und erfordern nicht, dass gültige Daten in einer Datei zusammenhängend sind. |
FILE_DAX_VOLUME (0x20000000) | Das angegebene Volume ist ein DAX-Volume (Direct Access). |
FILE_SUPPORTS_GHOSTING (0x40000000) | Das Dateisystem unterstützt Ghosting. |
MaximumComponentNameLength
Maximale Länge der Dateinamenkomponente, die vom angegebenen Dateisystem in Zeichen unterstützt wird. Eine Dateinamenkomponente ist der Teil eines Dateinamens zwischen Pfadtrennzeichen (z. B. umgekehrten Schrägstrichen).
FileSystemNameLength
Länge des Dateinamens des Dateisystems in Bytes. Der Wert dieses Felds muss größer als Null sein.
FileSystemName[1]
Unicode-Feld variabler Länge, das den Namen des Dateisystems enthält. Dieses Feld ist nicht null-beendet und muss als Sequenz von FileSystemNameLength Bytes behandelt werden.
Bemerkungen
Diese Informationen können auf eine der folgenden Arten abgefragt werden:
Rufen Sie FltQueryVolumeInformation oder ZwQueryVolumeInformationFile-auf, und übergeben Sie FileFsAttributeInformation als Wert von FileInformationClass und übergeben Sie einen zugeordneten Aufrufer, FILE_FS_ATTRIBUTE_INFORMATION-strukturierten Puffer als Wert von FileInformation.
- Hinweis: Auf CSVFS gibt FileFsAttributeInformationFILE_FS_ATTRIBUTE_INFORMATION für das CSVFS-Dateisystem zurück. Wenn Sie FileFsAttributeInformation- für das Dateisystem csvFS abfragen möchten, sollten Sie FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICSverwenden.
Erstellen Sie ein IRP mit Hauptfunktionscode IRP_MJ_QUERY_VOLUME_INFORMATION.
Zum Abfragen dieser Informationen sind keine spezifischen Zugriffsrechte erforderlich. Daher sind diese Informationen verfügbar, solange auf das Volume über ein geöffnetes Handle für das Volume selbst oder auf eine Datei oder ein Verzeichnis auf dem Volume zugegriffen wird.
Die Größe des im FileInformation Parameter übergebenen Puffers an FltQueryVolumeInformation oder ZwQueryVolumeInformationFile- muss mindestens sizeof(FILE_FS_ATTRIBUTE_INFORMATION)
sein. Da eine maximale Länge des Dateisystemnamens nicht angenommen werden kann (praktisch beträgt der Grenzwert 2^31 Zeichenpunkte), ist ein zweiter Aufruf einer dieser Routinen erforderlich, sobald FileSystemNameLength bekannt ist.
Diese Struktur muss an einer LONG- (4-Byte)-Grenze ausgerichtet werden.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntifs.h (einschließlich Ntifs.h, Fltkernel.h) |