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


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

Значение Значение
GetFileExInfoStandard
Параметр 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

См. также

DeviceIoControl

Константы атрибута файла

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

FindFirstFileTransacted

FindNextFile

GET_FILEEX_INFO_LEVELS

SetFileAttributesTransacted

Символические ссылки

Поддержка транзакций в NTFS