Freigeben über


GetFileInformationByHandleEx-Funktion (winbase.h)

Ruft Dateiinformationen für die angegebene Datei ab.

Eine einfachere Version dieser Funktion für Desktop-Apps finden Sie unter GetFileInformationByHandle.

Informationen zum Festlegen von Dateiinformationen mithilfe eines Dateihandles finden Sie unter SetFileInformationByHandle.

Syntax

BOOL GetFileInformationByHandleEx(
  [in]  HANDLE                    hFile,
  [in]  FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
  [out] LPVOID                    lpFileInformation,
  [in]  DWORD                     dwBufferSize
);

Parameter

[in] hFile

Ein Handle für die Datei, das die abzurufenden Informationen enthält.

Dieser Handle sollte kein Pipehandle sein.

[in] FileInformationClass

Ein FILE_INFO_BY_HANDLE_CLASS Enumerationswert, der den Typ der abzurufenden Informationen angibt.

Eine Tabelle mit gültigen Werten finden Sie im Abschnitt Hinweise.

[out] lpFileInformation

Ein Zeiger auf den Puffer, der die angeforderten Dateiinformationen empfängt. Die zurückgegebene Struktur entspricht der Klasse, die von FileInformationClass angegeben wird. Eine Tabelle mit gültigen Strukturtypen finden Sie im Abschnitt Hinweise.

[in] dwBufferSize

Die Größe des puffers lpFileInformation in Bytes.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero, und Dateiinformationsdaten sind im Puffer enthalten, auf den der lpFileInformation-Parameter verweist.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn FileInformationClassFileStreamInfo ist und die Aufrufe erfolgreich sind, aber keine Streams zurückgegeben werden, wird der von GetLastError zurückgegebene Fehler ERROR_HANDLE_EOF.

Bestimmte Dateiinformationsklassen verhalten sich in verschiedenen Betriebssystemversionen geringfügig unterschiedlich. Diese Klassen werden von den zugrunde liegenden Treibern unterstützt, und alle informationen, die sie zurückgeben, können sich zwischen Betriebssystemversionen ändern.

Die folgende Tabelle zeigt die gültigen Dateiinformationsklassentypen und die entsprechenden Datentypen für die Verwendung mit dieser Funktion.

FileInformationClass-Wert lpFileInformation-Typ
FileBasicInfo (0) FILE_BASIC_INFO
FileStandardInfo (1) FILE_STANDARD_INFO
FileNameInfo (2) FILE_NAME_INFO
FileStreamInfo (7) FILE_STREAM_INFO
FileCompressionInfo (8) FILE_COMPRESSION_INFO
FileAttributeTagInfo (9) FILE_ATTRIBUTE_TAG_INFO
FileIdBothDirectoryInfo (0xa) FILE_ID_BOTH_DIR_INFO
FileIdBothDirectoryRestartInfo (0xb) FILE_ID_BOTH_DIR_INFO
FileRemoteProtocolInfo (0xd) FILE_REMOTE_PROTOCOL_INFO
FileFullDirectoryInfo (0xe) FILE_FULL_DIR_INFO
FileFullDirectoryRestartInfo (0xf) FILE_FULL_DIR_INFO
FileStorageInfo (0x10) FILE_STORAGE_INFO
FileAlignmentInfo (0x11) FILE_ALIGNMENT_INFO
FileIdInfo (0x12) FILE_ID_INFO
FileIdExtdDirectoryInfo (0x13) FILE_ID_EXTD_DIR_INFO
FileIdExtdDirectoryRestartInfo (0x14) FILE_ID_EXTD_DIR_INFO
 

Transaktionen

Wenn zum Zeitpunkt des Aufrufs eine Transaktion an den Thread gebunden ist, gibt die Funktion die komprimierte Dateigröße der isolierten Dateiansicht zurück. Weitere Informationen finden Sie unter Informationen zu Transaktions-NTFS.

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib; FileExtd.lib unter Windows Server 2003 und Windows XP
DLL Kernel32.dll
Verteilbare Komponente Windows SDK unter Windows Server 2003 und Windows XP.

Weitere Informationen

FILE_INFO_BY_HANDLE_CLASS

Dateiverwaltungsfunktionen

SetFileInformationByHandle