GetVolumeInformationA-Funktion (fileapi.h)

Ruft Informationen über das Dateisystem und das Volume ab, das dem angegebenen Stammverzeichnis zugeordnet ist.

Wenn Sie beim Abrufen dieser Informationen ein Handle angeben möchten, verwenden Sie die GetVolumeInformationByHandleW-Funktion .

Verwenden Sie zum Abrufen des aktuellen Komprimierungsstatus einer Datei oder eines Verzeichnisses FSCTL_GET_COMPRESSION.

Syntax

BOOL GetVolumeInformationA(
  [in, optional]  LPCSTR  lpRootPathName,
  [out, optional] LPSTR   lpVolumeNameBuffer,
  [in]            DWORD   nVolumeNameSize,
  [out, optional] LPDWORD lpVolumeSerialNumber,
  [out, optional] LPDWORD lpMaximumComponentLength,
  [out, optional] LPDWORD lpFileSystemFlags,
  [out, optional] LPSTR   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 nachgestellter umgekehrter Schrägstrich ist erforderlich. Beispielsweise geben Sie \\MyServer\MyShare als "\\MyServer\MyShare\" oder das Laufwerk C 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_PATHs+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 sein, wenn die Seriennummer nicht erforderlich ist.

Diese Funktion gibt die Volume-Seriennummer zurück, die das Betriebssystem beim Formatieren einer Festplatte zuweist. Verwenden Sie zum programmgesteuerten Abrufen der Seriennummer der Festplatte, die der Hersteller zuweist, die Windows-Verwaltungsinstrumentation (WMI) Win32_PhysicalMedia Eigenschaft SerialNumber.

[out, optional] lpMaximumComponentLength

Ein Zeiger auf eine Variable, die die maximale Länge einer Dateinamenkomponente in TCHARs empfängt, die von einem angegebenen Dateisystem unterstützt wird.

Eine Dateinamenkomponente ist der Teil eines Dateinamens zwischen umgekehrten Schrägstrichen.

Der Wert, der in der Variablen gespeichert ist, auf die *lpMaximumComponentLength zeigt, wird verwendet, um anzugeben, dass ein angegebenes Dateisystem lange Namen unterstützt. Beispielsweise speichert die Funktion für ein FAT-Dateisystem, das lange Namen unterstützt, den Wert 255 anstelle des vorherigen 8,3-Indikators. 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 mindestens eins 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, bei dem die Groß-/Kleinschreibung beachtet wird.
FILE_CASE_PRESERVED_NAMES
0x00000002
Das angegebene Volume unterstützt die beibehaltene Groß-/Kleinschreibung von Dateinamen, wenn es 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 Zugriffssteuerungslisten (Access Control Lists, ACL) bei und erzwingt sie. Beispielsweise behält das NTFS-Dateisystem ACLs bei und erzwingt sie, und das FAT-Dateisystem nicht.
FILE_FILE_COMPRESSION
0x00000010
Das angegebene Volume unterstützt die dateibasierte Komprimierung.
FILE_VOLUME_QUOTAS
0x00000020
Das angegebene Volume unterstützt Datenträgerkontingente.
FILE_SUPPORTS_SPARSE_FILES
0x00000040
Das angegebene Volume unterstützt Sparsedateien.
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 Streams.
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 Volume unterstützt Transaktionen. Weitere Informationen finden Sie unter Informationen zu KTM.
FILE_SUPPORTS_HARD_LINKS
0x00400000
Das angegebene Volume unterstützt feste Links. Weitere Informationen finden Sie unter Feste Links und Verbindungen.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird erst unter 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 Daten der Datei ist.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird erst unter Windows Server 2008 R2 und Windows 7 unterstützt.
FILE_SUPPORTS_OPEN_BY_FILE_ID
0x01000000
Das Dateisystem unterstützt open by 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 unter 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 Ändern Journal Datensätze.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird erst unter 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 ordnet bei Schreibvorgängen in freigegebene Cluster neu zu. Gibt an, dass FSCTL_DUPLICATE_EXTENTS_TO_FILE ein unterstützter Vorgang ist.
FILE_SUPPORTS_SPARSE_VDL
0x10000000
Das Dateisystem verfolgt nach, ob jeder Cluster einer Datei gültige Daten (entweder aus expliziten Dateischreibvorgängen oder automatischen Nullen) oder ungültige Daten (noch nicht in oder null geschrieben) enthält. Dateisysteme, die sparse valid data length (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 Dateisystemnamepuffer nicht angegeben wird.

Rückgabewert

Wenn alle angeforderten Informationen abgerufen werden, ist der Rückgabewert nonzero.

Wenn nicht alle angeforderten Informationen abgerufen werden, ist der Rückgabewert 0. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn ein Benutzer versucht, Informationen über ein Diskettenlaufwerk ohne Diskette oder ein CD-ROM-Laufwerk ohne CD-ROM-Datenträger abzurufen, zeigt das System ein Meldungsfeld an, in das der Benutzer eine Diskette bzw. eine CD-CD einlegen kann. Um zu verhindern, dass das System dieses Meldungsfeld anzeigt, rufen Sie die SetErrorMode-Funktion mit SEM_FAILCRITICALERRORS auf.

Das flag 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 festgelegt 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 die dateibasierte Komprimierung unterstützt. Wenn die Komprimierung dateibasiert ist, können einzelne Dateien komprimiert oder nicht komprimiert werden.

Die flags FILE_FILE_COMPRESSION und FILE_VOL_IS_COMPRESSED schließen sich gegenseitig aus. Beide Bits können nicht zurückgegeben werden.

Der maximale Komponentenlängenwert, der in lpMaximumComponentLength gespeichert ist, ist der einzige Indikator dafür, dass ein Volume länger als die normalen Namen des FAT-Dateisystems (oder eines anderen Dateisystems) 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 Volumeinformationen für das Ziel zurück.

Ab Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block) No
SMB 3.0 Transparent Failover (TFO) No
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) No
Dateisystem mit freigegebenen Clustervolumes (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) Ja

SMB unterstützt keine Volumeverwaltungsfunktionen.

Transaktionen

Unterstützt das Volume Dateisystemtransaktionen, gibt die Funktion FILE_SUPPORTS_TRANSACTIONS in lpFileSystemFlags zurück.

Hinweis

Der fileapi.h-Header definiert GetVolumeInformation als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code 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
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile fileapi.h (Einschließen von Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Über KTM

Dateiverschlüsselung

GetCompressedFileSize

GetFileAttributes

GetVolumeInformationByHandleW

SetErrorMode

SetVolumeLabel

Volumeverwaltungsfunktionen