GetFileInformationByHandleEx 函式 (winbase.h)

擷取指定檔案的檔案資訊。

如需傳統型應用程式的此函式更基本版本,請參閱 GetFileInformationByHandle

若要使用檔案控制碼設定檔案資訊,請參閱 SetFileInformationByHandle

語法

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

參數

[in] hFile

包含要擷取之資訊的檔案控制碼。

這個控制碼不應該是管道控制碼。

[in] FileInformationClass

FILE_INFO_BY_HANDLE_CLASS列舉值,指定要擷取的資訊類型。

如需有效值的資料表,請參閱一節。

[out] lpFileInformation

接收要求之檔案資訊的緩衝區指標。 傳回的結構會對應至 FileInformationClass所指定的類別。 如需有效結構類型的資料表,請參閱一節。

[in] dwBufferSize

lpFileInformation緩衝區的大小,以位元組為單位。

傳回值

如果函式成功,則傳回值為非零,且檔案資訊資料包含在 lpFileInformation 參數所指向的緩衝區中。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果 FileInformationClassFileStreamInfo 且呼叫成功,但不會傳回任何資料流程, 則 GetLastError 傳回的錯誤 會ERROR_HANDLE_EOF

某些檔案資訊類別在不同的作業系統版本上的行為稍有不同。 基礎驅動程式支援這些類別,而且傳回的任何資訊在作業系統版本之間可能會變更。

下表顯示有效的檔案資訊類別類型及其對應的資料類型,以搭配此函式使用。

FileInformationClass lpFileInformation 類型
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
 

交易作業

如果在呼叫時有系結至執行緒的交易,則函式會傳回隔離檔案檢視的壓縮檔案大小。 如需詳細資訊,請參閱 關於交易式 NTFS

在 Windows 8 和 Windows Server 2012 中,下列技術支援此函式。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定 Yes
SMB 3.0 透明容錯移轉 (TFO) Yes
具有向外延展檔案共用的 SMB 3.0 (SO)
叢集共用磁片區檔案系統 (CsvFS) Yes
彈性檔案系統 (ReFS)

規格需求

   
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib;Windows Server 2003 和 Windows XP 上的 FileExtd.lib
DLL Kernel32.dll
可轉散發套件 Windows Server 2003 和 Windows XP 上的 Windows SDK。

另請參閱

FILE_INFO_BY_HANDLE_CLASS

檔案管理功能

SetFileInformationByHandle