GetVolumeInformationW-Funktion (fileapi.h)
Ruft Informationen zum Dateisystem und zum Volume ab, das dem angegebenen Stammverzeichnis zugeordnet ist.
Um ein Handle beim Abrufen dieser Informationen anzugeben, verwenden Sie die GetVolumeInformationByHandleW--Funktion.
Verwenden Sie FSCTL_GET_COMPRESSION, um den aktuellen Komprimierungsstatus einer Datei oder eines Verzeichnisses abzurufen.
Syntax
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
);
Parameter
[in, optional] lpRootPathName
Ein Zeiger auf eine Zeichenfolge, die das Stammverzeichnis des zu beschreibenden Volumes enthält.
Wenn dieser Parameter NULL-ist, wird der Stamm des aktuellen Verzeichnisses verwendet. Ein nachfolgender umgekehrter Schrägstrich ist erforderlich. Geben Sie z. B. \\MyServer\MyShare als "\\MyServer\MyShare\" oder das C-Laufwerk als "C:\" an.
[out, optional] lpVolumeNameBuffer
Ein Zeiger auf einen Puffer, der den Namen eines angegebenen Volumes empfängt. Die Puffergröße wird durch den parameter nVolumeNameSize angegeben.
[in] nVolumeNameSize
Die Länge eines Volumenamenpuffers in TCHARs. Die maximale Puffergröße ist MAX_PATH+1.
Dieser Parameter wird ignoriert, wenn der Volumenamenpuffer nicht angegeben wird.
[out, optional] lpVolumeSerialNumber
Ein Zeiger auf eine Variable, die die Seriennummer des Volumes empfängt.
Dieser Parameter kann NULL- werden, wenn die Seriennummer nicht erforderlich ist.
Diese Funktion gibt die Seriennummer des Volumes zurück, die vom Betriebssystem zugewiesen wird, wenn eine Festplatte formatiert ist. Um die Seriennummer der Festplatte, die der Hersteller zuweist, programmgesteuert abzurufen, verwenden Sie die Windows-Verwaltungsinstrumentation (WMI) Win32_PhysicalMedia Eigenschaft SerialNumber.
[out, optional] lpMaximumComponentLength
Ein Zeiger auf eine Variable, die die maximale Länge in TCHARserhält, einer Dateinamenkomponente, die ein angegebenes Dateisystem unterstützt.
Eine Dateinamenkomponente ist der Teil eines Dateinamens zwischen umgekehrten Schrägstrichen.
Der Wert, der in der Variablen gespeichert ist, auf den *lpMaximumComponentLength verweist, wird verwendet, um anzugeben, dass ein angegebenes Dateisystem lange Namen unterstützt. For example, for a FAT file system that supports long names, the function stores the value 255, than the previous 8,3 indicator. Lange Namen können auch auf Systemen unterstützt werden, die das NTFS-Dateisystem verwenden.
[out, optional] lpFileSystemFlags
Ein Zeiger auf eine Variable, die Flags empfängt, die dem angegebenen Dateisystem zugeordnet sind.
Dieser Parameter kann eine oder mehrere der folgenden Flags sein. FILE_FILE_COMPRESSION und FILE_VOL_IS_COMPRESSED schließen sich jedoch gegenseitig aus.
Wert | Bedeutung |
---|---|
FILE_CASE_SENSITIVE_SEARCH 0x00000001 |
Das angegebene Volume unterstützt Dateinamen mit Groß-/Kleinschreibung. |
FILE_CASE_PRESERVED_NAMES 0x00000002 |
Das angegebene Volume unterstützt beibehaltene Groß-/Kleinschreibung von Dateinamen, wenn er einen Namen auf dem Datenträger platziert. |
FILE_UNICODE_ON_DISK 0x00000004 |
Das angegebene Volume unterstützt Unicode in Dateinamen, wie sie auf dem Datenträger angezeigt werden. |
FILE_PERSISTENT_ACLS 0x00000008 |
Das angegebene Volume behält und erzwingt Zugriffssteuerungslisten (Access Control Lists, ACL). Beispielsweise behält das NTFS-Dateisystem ACLs bei und erzwingt sie, und das FAT-Dateisystem ist nicht vorhanden. |
FILE_FILE_COMPRESSION 0x00000010 |
Das angegebene Volume unterstützt dateibasierte Komprimierung. |
FILE_VOLUME_QUOTAS 0x00000020 |
Das angegebene Volume unterstützt Datenträgerkontingente. |
FILE_SUPPORTS_SPARSE_FILES 0x00000040 |
Das angegebene Volume unterstützt sparse Dateien. |
FILE_SUPPORTS_REPARSE_POINTS 0x00000080 |
Das angegebene Volume unterstützt Analysepunkte. ReFS: ReFS unterstützt Analysepunkte, indiziert sie jedoch nicht, sodass FindFirstVolumeMountPoint- und FindNextVolumeMountPoint- nicht wie erwartet funktionieren. |
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, z. B. ein DoubleSpace-Volume. |
FILE_SUPPORTS_OBJECT_IDS 0x00010000 |
Das angegebene Volume unterstützt Objektbezeichner. |
FILE_SUPPORTS_ENCRYPTION 0x00020000 |
Das angegebene Volume unterstützt das verschlüsselte Dateisystem (Encrypted File System, EFS). Weitere Informationen finden Sie unter Dateiverschlüsselung. |
FILE_NAMED_STREAMS 0x00040000 |
Das angegebene Volume unterstützt benannte Datenströme. |
FILE_READ_ONLY_VOLUME 0x00080000 |
Das angegebene Volume ist schreibgeschützt. |
FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 |
Das angegebene Volume unterstützt einen einzelnen sequenziellen Schreibvorgang. |
FILE_SUPPORTS_TRANSACTIONS 0x00200000 |
Das angegebene Volumen unterstützt Transaktionen. Weitere Informationen finden Sie unter Über KTM. |
FILE_SUPPORTS_HARD_LINKS 0x00400000 |
Das angegebene Volume unterstützt feste Verknüpfungen. Weitere Informationen finden Sie unter Hard Links and Junctions. Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird erst nach Windows Server 2008 R2 und Windows 7 unterstützt. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 |
Das angegebene Volume unterstützt erweiterte Attribute. Ein erweitertes Attribut ist ein Teil anwendungsspezifischer Metadaten, die eine Anwendung einer Datei zuordnen kann und nicht Teil der Dateidaten ist. Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird erst nach Windows Server 2008 R2 und Windows 7 unterstützt. |
FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 |
Das Dateisystem unterstützt das Öffnen von FileID. Weitere Informationen finden Sie unter FILE_ID_BOTH_DIR_INFO. Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird erst nach Windows Server 2008 R2 und Windows 7 unterstützt. |
FILE_SUPPORTS_USN_JOURNAL 0x02000000 |
Das angegebene Volume unterstützt UsN-Journale (Update Sequence Number). Weitere Informationen finden Sie unter Change Journal Records. Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird erst nach Windows Server 2008 R2 und Windows 7 unterstützt. |
FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000 |
Das Dateisystem unterstützt Integritätsstreams. |
FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000 |
Das angegebene Volume unterstützt die Freigabe logischer Cluster zwischen Dateien auf demselben Volume. Das Dateisystem bezieht sich auf Schreibvorgänge in freigegebene Cluster. Gibt an, dass FSCTL_DUPLICATE_EXTENTS_TO_FILE ein unterstützter Vorgang ist. |
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). Hinweis: Dieses Flag wurde in Windows 10, Version 1607, eingeführt. |
FILE_SUPPORTS_GHOSTING 0x40000000 |
Das Dateisystem unterstützt Ghosting. |
[out, optional] lpFileSystemNameBuffer
Ein Zeiger auf einen Puffer, der den Namen des Dateisystems empfängt, z. B. das FAT-Dateisystem oder das NTFS-Dateisystem. Die Puffergröße wird durch den parameter nFileSystemNameSize angegeben.
[in] nFileSystemNameSize
Die Länge des Dateisystemnamenpuffers in TCHARs. Die maximale Puffergröße ist MAX_PATH+1.
Dieser Parameter wird ignoriert, wenn der Dateisystemnamenpuffer nicht angegeben wird.
Rückgabewert
Wenn alle angeforderten Informationen abgerufen werden, ist der Rückgabewert ungleich Null.
Wenn nicht alle angeforderten Informationen abgerufen werden, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Wenn ein Benutzer versucht, Informationen über ein Diskettenlaufwerk zu erhalten, das nicht über einen Diskettendatenträger verfügt, oder ein CD-ROM Laufwerk, das nicht über einen Komprimdatenträger verfügt, zeigt das System ein Meldungsfeld an, in das der Benutzer einen Diskettendatenträger oder einen Komprimdatenträger einfügt. Um zu verhindern, dass das System dieses Meldungsfeld anzeigt, rufen Sie die SetErrorMode--Funktion mit SEM_FAILCRITICALERRORSauf.
Das kennzeichen FILE_VOL_IS_COMPRESSED ist der einzige Indikator für die volumebasierte Komprimierung. Der Dateisystemname wird nicht geändert, um die Komprimierung anzugeben, z. B. wird dieses Flag auf einem DoubleSpace-Volume zurückgegeben. Wenn die Komprimierung volumebasiert ist, wird ein gesamtes Volume komprimiert oder nicht komprimiert.
Das flag FILE_FILE_COMPRESSION gibt an, ob ein Dateisystem dateibasierte Komprimierung unterstützt. Wenn die Komprimierung dateibasiert ist, können einzelne Dateien komprimiert oder nicht komprimiert werden.
Die Kennzeichnungen FILE_FILE_COMPRESSION und FILE_VOL_IS_COMPRESSED schließen sich gegenseitig aus. Beide Bits können nicht zurückgegeben werden.
Der maximale Wert der Komponentenlänge, der in lpMaximumComponentLength gespeichert ist, ist der einzige Indikator, dass ein Volume länger als normale FAT-Dateisystemnamen (oder andere Dateisystemdateinamen) unterstützt. Der Dateisystemname wird nicht geändert, um die Unterstützung für lange Dateinamen anzugeben.
Die GetCompressedFileSize Funktion ruft die komprimierte Größe einer Datei ab. Die GetFileAttributes--Funktion kann bestimmen, ob eine einzelne Datei komprimiert wird.
Verhalten symbolischer Verknüpfungen
Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion Volumeninformationen für das Ziel zurück.
Ab Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.
Technologie | Abgestützt |
---|---|
Server Message Block (SMB) 3.0-Protokoll | Nein |
SMB 3.0 Transparent Failover (TFO) | Nein |
SMB 3.0 mit Skalierungsdateifreigaben (SO) | Nein |
Freigegebenes Clustervolumedateisystem (CsvFS) | Ja |
Resilient File System (ReFS) | Ja |
SMB unterstützt keine Volumeverwaltungsfunktionen.
Transacted Operations
Wenn das Volume Dateisystemtransaktionen unterstützt, gibt die Funktion FILE_SUPPORTS_TRANSACTIONS in lpFileSystemFlagszurück.
Anmerkung
Der fileapi.h
-Header definiert GetVolumeInformation als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | fileapi.h (include Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |