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。
備註
如果 FileInformationClass 是 FileStreamInfo 且呼叫成功,但不會傳回任何資料流程, 則 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。 |