GetVolumeInformationByHandleW-Funktion (fileapi.h)

Ruft Informationen über das Dateisystem und das Volume ab, das der angegebenen Datei zugeordnet ist.

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

Syntax

BOOL GetVolumeInformationByHandleW(
  [in]            HANDLE  hFile,
  [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] hFile

Ein Handle zur Datei.

[out, optional] lpVolumeNameBuffer

Ein Zeiger auf einen Puffer, der den Namen eines angegebenen Volumes empfängt. Die maximale Puffergröße ist MAX_PATH+1.

[in] nVolumeNameSize

Die Länge eines Volumenamenpuffers in WCHARs. 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 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 WCHARs 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 die erneute Analyse von Punkten.
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 Vista und Windows Server 2008: Dieser Wert wird nicht 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 Vista und Windows Server 2008: Dieser Wert wird nicht 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 Vista und Windows Server 2008: Dieser Wert wird nicht unterstützt.

FILE_SUPPORTS_USN_JOURNAL
0x02000000
Das angegebene Volume unterstützt USN-Journale (Update Sequence Number). Weitere Informationen finden Sie unter Ändern von Journaldatensätzen.

Windows Vista und Windows Server 2008: Dieser Wert wird nicht unterstützt.

FILE_SUPPORTS_BLOCK_REFCOUNTING
0x08000000
Das angegebene Volume unterstützt die gemeinsame Nutzung logischer Cluster zwischen Dateien auf demselben Volume. Das Dateisystem wird bei Schreibvorgängen in freigegebenen Clustern neu zugeordnet. Gibt an, dass FSCTL_DUPLICATE_EXTENTS_TO_FILE ein unterstützter Vorgang ist.

[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 WCHARs. 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. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Unter 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) Nein
SMB 3.0 Transparent Failover (TFO) Nein
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) Nein
Dateisystem mit freigegebenen Clustervolumes (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) Ja

SMB unterstützt keine Volumeverwaltungsfunktionen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-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

GetVolumeInformation

SetErrorMode

SetVolumeLabel

Volumeverwaltungsfunktionen