Поделиться через


Функция 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 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да

Требования

   
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib; FileExtd.lib в Windows Server 2003 и Windows XP
DLL Kernel32.dll
Распространяемые компоненты Windows SDK в Windows Server 2003 и Windows XP.

См. также раздел

FILE_INFO_BY_HANDLE_CLASS

Функции управления файлами

SetFileInformationByHandle