다음을 통해 공유


RegSaveKeyExA 함수(winreg.h)

지정된 키와 모든 하위 키 및 값을 레지스트리 파일에 지정된 형식으로 저장합니다.

시스템 파일 및 레지스트리 하이브를 포함하여 시스템 상태를 백업하거나 복원하는 애플리케이션은 레지스트리 함수 대신 볼륨 섀도 복사본 서비스를 사용해야 합니다.

구문

LSTATUS RegSaveKeyExA(
  [in]           HKEY                        hKey,
  [in]           LPCSTR                      lpFile,
  [in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [in]           DWORD                       Flags
);

매개 변수

[in] hKey

열린 레지스트리 키에 대한 핸들입니다.

이 함수는 미리 정의된 HKEY_CLASSES_ROOT 키를 지원하지 않습니다.

[in] lpFile

지정된 키와 하위 키를 저장할 파일의 이름입니다. 파일이 이미 있는 경우 함수가 실패합니다.

새 파일에는 보관 특성이 있습니다.

문자열에 경로가 없는 경우 파일은 로컬 키에 대한 호출 프로세스의 현재 디렉터리 또는 원격 키에 대한 %systemroot%\system32 디렉터리에 만들어집니다.

[in, optional] lpSecurityAttributes

새 파일에 대한 보안 설명자를 지정하는 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. lpSecurityAttributesNULL인 경우 파일은 기본 보안 설명자를 가져옵니다. 파일에 대한 기본 보안 설명자의 ACL은 부모 디렉터리에서 상속됩니다.

[in] Flags

저장된 키 또는 하이브의 형식입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
REG_STANDARD_FORMAT
1
키 또는 하이브는 표준 형식으로 저장됩니다. 표준 형식은 Windows 2000에서 지원하는 유일한 형식입니다.
REG_LATEST_FORMAT
2
키 또는 하이브는 최신 형식으로 저장됩니다. 최신 형식은 Windows XP부터 지원됩니다. 키 또는 하이브를 이 형식으로 저장한 후에는 이전 시스템에 로드할 수 없습니다.
REG_NO_COMPRESSION
4
더 빠른 저장 작업을 위해 hive는 압축 없이 저장됩니다. hKey 매개 변수는 HKEY_LOCAL_MACHINE 또는 HKEY_USERS 아래의 하이브 루트를 지정해야 합니다. 예를 들어 HKLM\SOFTWARE 는 하이브의 루트입니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

함수가 실패하면 반환 값은 Winerror.h에 정의된 0이 아닌 오류 코드입니다. FormatMessage 함수를 FORMAT_MESSAGE_FROM_SYSTEM 플래그와 함께 사용하여 오류에 대한 일반적인 설명을 가져올 수 있습니다.

Flags 매개 변수에 대해 위에 나열된 가능한 값 중 하나 이상이 이 함수에 대한 한 번의 호출에서 지정된 경우(예: 둘 이상의 값이 OR'ed인 경우) 또는 REG_NO_COMPRESSION 지정되고 hKey가 하이브의 루트가 아닌 키를 지정하는 경우 이 함수는 ERROR_INVALID_PARAMETER 반환합니다.

설명

RegSaveKey와 달리 이 함수는 미리 정의된 HKEY_CLASSES_ROOT 키를 지원하지 않습니다.

hKey가 원격 컴퓨터의 키를 나타내는 경우 lpFile에서 설명하는 경로는 원격 컴퓨터를 기준으로 합니다.

RegSaveKeyEx 함수는 비휘발성 키만 저장합니다. 휘발성 키는 저장하지 않습니다. 키는 생성 시 휘발성 또는 비휘발성으로 만들어집니다. RegCreateKeyEx를 참조하세요.

RegSaveKeyEx에서 만든 파일을 RegLoadKey, RegReplaceKey 또는RegRestoreKey 함수에 대한 후속 호출에서 사용할 수 있습니다. RegSaveKeyEx가 작업을 통해 부분적으로 실패하면 파일이 손상되고 파일에 대한 RegLoadKey, RegReplaceKey 또는 RegRestoreKey에 대한 후속 호출이 실패합니다.

RegSaveKeyExRegRestoreKey와 함께 사용하여 레지스트리의 하위 트리를 복사하는 것은 권장되지 않습니다. 이 메서드는 알림을 트리거하지 않으며 다른 애플리케이션에서 사용하는 핸들을 무효화할 수 있습니다. 대신 SHCopyKey 함수 또는 RegCopyTree 함수를 사용합니다.

호출 프로세스에는 SE_BACKUP_NAME 권한이 활성화되어 있어야 합니다. 자세한 내용은 특별 권한으로 실행을 참조하세요.

참고

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winreg.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

RegSaveKey

레지스트리 파일

레지스트리 함수

SECURITY_ATTRIBUTES