다음을 통해 공유


RegCreateKeyA 함수(winreg.h)

지정된 레지스트리 키를 만듭니다. 레지스트리에 키가 이미 있는 경우 함수가 키를 엽니다.

참고 이 함수는 16비트 버전의 Windows와의 호환성을 위해서만 제공됩니다. 애플리케이션은 RegCreateKeyEx 함수를 사용해야 합니다. 그러나 시스템 파일 및 레지스트리 하이브를 포함하여 시스템 상태를 백업하거나 복원하는 애플리케이션은 레지스트리 함수 대신 볼륨 섀도 복사본 서비스를 사용해야 합니다.
 

구문

LSTATUS RegCreateKeyA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [out]          PHKEY  phkResult
);

매개 변수

[in] hKey

열린 레지스트리 키에 대한 핸들입니다. 호출 프로세스에는 키에 대한 KEY_CREATE_SUB_KEY 액세스 권한이 있어야 합니다. 자세한 내용은 레지스트리 키 보안 및 액세스 권한을 참조하세요.

키 만들기에 대한 액세스는 핸들을 가져올 때 지정된 액세스 마스크가 아닌 레지스트리 키의 보안 설명자에 대해 확인됩니다. 따라서 KEY_READ samDesired를 사용하여 hKey를 연 경우에도 보안 설명자가 허용하는 경우 키를 만드는 작업에 사용할 수 있습니다.

이 핸들은 RegCreateKeyEx 또는 RegOpenKeyEx 함수에서 반환되거나 다음 미리 정의된 키 중 하나일 수 있습니다.

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

[in, optional] lpSubKey

이 함수가 열거나 만드는 키의 이름입니다. 이 키는 hKey 매개 변수로 식별되는 키의 하위 키여야 합니다.

키 이름에 대한 자세한 내용은 레지스트리 구조를 참조하세요.

hKey가 미리 정의된 키 중 하나인 경우 lpSubKeyNULL일 수 있습니다. 이 경우 phkResult 는 함수에 전달된 동일한 hKey 핸들을 받습니다.

[out] phkResult

열거나 만든 키에 대한 핸들을 수신하는 변수에 대한 포인터입니다. 키가 미리 정의된 레지스트리 키 중 하나가 아닌 경우 핸들 사용을 마친 후 RegCloseKey 함수를 호출합니다.

반환 값

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

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

설명

애플리케이션은 HKEY_USERS 또는HKEY_LOCAL_MACHINE 직접 자식인 키를 만들 수 없습니다. 애플리케이션은 HKEY_USERS 또는 HKEY_LOCAL_MACHINE 트리의 하위 수준에서 하위 키를 만들 수 있습니다.

서비스 또는 애플리케이션이 다른 사용자를 가장하는 경우 HKEY_CURRENT_USER 이 함수를 사용하지 마세요. 대신 RegOpenCurrentUser 함수를 호출합니다.

RegCreateKey 함수는 지정된 경로에 누락된 모든 키를 만듭니다. 애플리케이션은 이 동작을 활용하여 한 번에 여러 키를 만들 수 있습니다. 예를 들어 애플리케이션은 lpSubKey 매개 변수에 대해 다음 형식의 문자열을 지정하여 위의 세 하위 키와 동시에 하위 키 4개 수준을 만들 수 있습니다.

subkey1\subkey2\subkey3\subkey4

이 동작으로 인해 경로의 기존 키 철자가 잘못되면 원치 않는 키가 생성됩니다.

참고

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

요구 사항

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

추가 정보

RegCloseKey

RegCreateKeyEx

RegDeleteKey

RegOpenKeyEx

레지스트리 함수

레지스트리 개요