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.
Verhalten symbolischer Verknüpfungen
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 |