GetFileAttributesTransactedA 함수(winbase.h)
[Microsoft는 개발자가 애플리케이션의 요구 사항을 달성하기 위해 대체 수단을 활용하는 것이 좋습니다. TxF가 개발된 많은 시나리오는 더 간단하고 쉽게 사용할 수 있는 기술을 통해 달성할 수 있습니다. 또한 이후 버전의 Microsoft Windows에서는 TxF를 사용하지 못할 수도 있습니다. 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 값에 따라 결정됩니다. fInfoLevelId 매개 변수가 GetFileExInfoStandard인 경우 이 매개 변수는 WIN32_FILE_ATTRIBUTE_DATA 구조를 가리킵니다.
[in] hTransaction
트랜잭션에 대한 핸들입니다. 이 핸들은 CreateTransaction 함수에서 반환됩니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
탑재된 폴더인 디렉터리에서 GetFileAttributesTransacted 가 호출되면 탑재된 폴더가 디렉터리에 연결하는 볼륨의 루트 디렉터리가 아닌 디렉터리의 특성을 반환합니다. 연결된 볼륨의 파일 특성을 가져오려면 GetVolumeNameForVolumeMountPoint 를 호출하여 연결된 볼륨의 이름을 가져옵니다. 그런 다음 GetFileAttributesTransacted 호출에서 결과 이름을 사용합니다. 결과는 연결된 볼륨에 있는 루트 디렉터리의 특성입니다.
Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | No |
SMB 3.0 TFO(투명 장애 조치(failover)) | No |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | No |
CsvFS(클러스터 공유 볼륨 파일 시스템) | No |
ReFS(Resilient File System) | No |
SMB 3.0은 TxF를 지원하지 않습니다.
기호 링크: 경로가 기호 링크를 가리키는 경우 함수는 기호 링크에 대한 특성을 반환합니다.
거래된 작업
트랜잭션에서 수정을 위해 파일이 열려 있는 경우 트랜잭션이 커밋될 때까지 다른 스레드는 수정을 위해 파일을 열 수 없습니다. 반대로 트랜잭션 외부에서 수정하기 위해 파일이 열려 있는 경우 트랜잭션되지 않은 핸들이 닫히기 전까지는 트랜잭션된 스레드가 수정을 위해 파일을 열 수 없습니다. 트랜잭션되지 않은 스레드에 파일을 수정하기 위해 열린 핸들이 있는 경우 해당 파일에 대해 GetFileAttributesTransacted 호출이 실패하고 ERROR_TRANSACTIONAL_CONFLICT 오류가 발생합니다.참고
winbase.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 GetFileAttributesTransacted를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |