Функция GetFileAttributesTransactedW (winbase.h)
[Корпорация Майкрософт настоятельно рекомендует разработчикам использовать альтернативные средства для удовлетворения потребностей вашего приложения. Многие сценарии, для которые был разработан TxF, могут быть реализованы с помощью более простых и доступных методов. Кроме того, TxF может быть недоступен в будущих версиях Microsoft Windows. Дополнительные сведения и альтернативы TxF см. в статье Альтернативы использованию транзакционной NTFS.]
Извлекает атрибуты файловой системы для указанного файла или каталога в виде транзакции.
Синтаксис
BOOL GetFileAttributesTransactedW(
[in] LPCWSTR lpFileName,
[in] GET_FILEEX_INFO_LEVELS fInfoLevelId,
[out] LPVOID lpFileInformation,
[in] HANDLE hTransaction
);
Параметры
[in] lpFileName
Имя файла или каталога.
Файл или каталог должны находиться на локальном компьютере; В противном случае функция завершается сбоем, а для последнего кода ошибки задано значение ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 символов в ширину, добавьте к пути "\\?\". Дополнительные сведения см. в статье Именование файлов, путей и пространств имен.
Совет
Начиная с Windows 10 версии 1607, вы можете согласиться на удаление ограничения MAX_PATH без добавления "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" статьи Именование файлов, путей и пространств имен .
[in] fInfoLevelId
Уровень извлекаемых сведений об атрибутах.
Этот параметр может быть следующим значением из перечисления GET_FILEEX_INFO_LEVELS .
Значение | Значение |
---|---|
|
Параметр lpFileInformation является WIN32_FILE_ATTRIBUTE_DATA структурой. |
[out] lpFileInformation
Указатель на буфер, получающий сведения об атрибуте.
Тип сведений об атрибутах, хранящихся в этом буфере, определяется значением fInfoLevelId. Если параметр fInfoLevelId имеет значение GetFileExInfoStandard, то этот параметр указывает на структуру WIN32_FILE_ATTRIBUTE_DATA
[in] hTransaction
Дескриптор транзакции. Этот дескриптор возвращается функцией CreateTransaction .
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция завершается сбоем, возвращаемое значение равно нулю (0). Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
При вызове Метода GetFileAttributesTransacted в каталоге, который является подключенной папкой, он возвращает атрибуты каталога, а не корневого каталога в томе, с которым связана подключенная папка. Чтобы получить атрибуты файла связанного тома, вызовите Метод GetVolumeNameForVolumeMountPoint , чтобы получить имя связанного тома. Затем используйте полученное имя в вызове Метода GetFileAttributesTransacted. Результаты представляют собой атрибуты корневого каталога в связанном томе.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технология | Поддерживается |
---|---|
Протокол SMB 3.0 | Нет |
Прозрачная отработка отказа (TFO) SMB 3.0 | Нет |
SMB 3.0 с масштабируемыми общими папками (SO) | Нет |
Файловая система общего тома кластера (CSVFS) | Нет |
Восстанавливаемая файловая система (ReFS) | Нет |
SMB 3.0 не поддерживает TxF.
Символические ссылки: Если путь указывает на символьную ссылку, функция возвращает атрибуты для символьной ссылки.
Транзакция операций
Если файл открыт для изменения в транзакции, ни один другой поток не может открыть файл для изменения, пока транзакция не будет зафиксирована. И наоборот, если файл открыт для изменения вне транзакции, поток транзакций не может открыть файл для изменения, пока не будет закрыт дескриптор без транзакций. Если в потоке без транзакций открыт дескриптор для изменения файла, вызов Метода GetFileAttributesTransacted для этого файла завершится ошибкой ERROR_TRANSACTIONAL_CONFLICT .Примечание
Заголовок winbase.h определяет GetFileAttributesTransacted в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |