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


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

Ценность Значение
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 Нет
Отработка отказа 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

См. также

DeviceIoControl

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

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

FindFirstFileTransacted

FindNextFile

GET_FILEEX_INFO_LEVELS

SetFileAttributesTransacted

символьные ссылки

транзакционных NTFS