检索指定文件的文件信息。

有关桌面应用的此函数的更基本版本,请参阅 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

某些文件信息类在不同操作系统版本上的行为略有不同。 基础驱动程序支持这些类,它们返回的任何信息都可能会更改操作系统版本。

下表显示了有效的文件信息类类型及其用于此函数的相应数据结构类型。

FileInformationClasslpFileInformation 类型 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) 群集共享卷文件系统 (CsvFS) 弹性文件系统 (ReFS)