Share via


EncryptFileA 함수(winbase.h)

파일 또는 디렉터리를 암호화합니다. 파일의 모든 데이터 스트림이 암호화됩니다. 암호화된 디렉터리에서 만든 모든 새 파일은 암호화됩니다.

구문

BOOL EncryptFileA(
  [in] LPCSTR lpFileName
);

매개 변수

[in] lpFileName

암호화할 파일 또는 디렉터리의 이름입니다.

호출자에게 FILE_READ_DATA, FILE_WRITE_DATA, FILE_READ_ATTRIBUTES, FILE_WRITE_ATTRIBUTESSYNCHRONIZE 액세스 권한이 있어야 합니다. 자세한 내용은 파일 보안 및 액세스 권한을 참조하세요.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

EncryptFile 함수는 암호화되는 파일에 대한 단독 액세스가 필요하며 다른 프로세스가 파일을 사용하는 경우 실패합니다.

파일이 이미 암호화된 경우 EncryptFile 은 성공을 나타내는 0이 아닌 값을 반환합니다. 파일이 압축된 경우 EncryptFile 은 파일을 암호화하기 전에 압축을 풀게 됩니다.

lpFileName이 읽기 전용 파일을 지정하면 함수가 실패하고 GetLastError가ERROR_FILE_READ_ONLY 반환합니다. lpFileName이 읽기 전용 파일이 포함된 디렉터리를 지정하는 경우 함수는 성공하지만 디렉터리가 암호화되지 않습니다.

암호화된 파일의 암호를 해독하려면 DecryptFile 함수를 사용합니다.

Windows 8, Windows Server 2012 이상에서 이 함수는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) No
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) No
ReFS(Resilient File System) No
 

SMB 3.0은 연속 가용성 기능이 있는 공유에서 EFS를 지원하지 않습니다.

참고

winbase.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 EncryptFile을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll
API 세트 ext-ms-win-advapi32-encryptedfile-l1-1-0(Windows 8 도입)

추가 정보

DecryptFile

파일 암호화

파일 관리 함수