Функция 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. |