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 协议 | 是 |
SMB 3.0 透明故障转移 (TFO) | 是 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 是 |
群集共享卷文件系统 (CSV) | 是 |
弹性文件系统 (ReFS) | 是 |
要求
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib;Windows Server 2003 和 Windows XP 上的 FileExtd.lib |
DLL | Kernel32.dll |
可再发行组件 | Windows Server 2003 和 Windows XP 上的 Windows SDK。 |