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