Freigeben über


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.

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

Siehe auch

Über KTM

Dateiverschlüsselung

GetCompressedFileSize

GetFileAttributes-

GetVolumeInformationByHandleW-

SetErrorMode-

SetVolumeLabel-

Volumenverwaltungsfunktionen