다음을 통해 공유


RegGetValueA 함수(winreg.h)

지정된 레지스트리 값의 형식 및 데이터를 검색합니다.

통사론

LSTATUS RegGetValueA(
  [in]                HKEY    hkey,
  [in, optional]      LPCSTR  lpSubKey,
  [in, optional]      LPCSTR  lpValue,
  [in, optional]      DWORD   dwFlags,
  [out, optional]     LPDWORD pdwType,
  [out, optional]     PVOID   pvData,
  [in, out, optional] LPDWORD pcbData
);

매개 변수

[in] hkey

열린 레지스트리 키에 대한 핸들입니다. 키는 KEY_QUERY_VALUE 액세스 권한으로 열렸어야 합니다. 자세한 내용은 레지스트리 키 보안 및 액세스 권한참조하세요.

이 핸들은 RegCreateKeyEx, regCreateKeyTransacted, RegOpenKeyEx또는 RegOpenKeyTransacted 함수에 의해 반환됩니다. 또한 다음 미리 정의된 키중 하나일 수도 있습니다.

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_PERFORMANCE_NLSTEXT
HKEY_PERFORMANCE_TEXT
HKEY_USERS

[in, optional] lpSubKey

hkey 매개 변수로 지정된 키를 기준으로 하는 레지스트리 키의 경로입니다. 레지스트리 값은 이 하위 키에서 검색됩니다.

경로는 대/소문자를 구분하지 않습니다.

이 매개 변수가 NULL 또는 빈 문자열 ""경우 hkey 자체에서 지정한 키에서 값을 읽습니다.

[in, optional] lpValue

레지스트리 값의 이름입니다.

이 매개 변수가 NULL 또는 빈 문자열 ""경우 함수는 키의 명명되지 않은 값 또는 기본값(있는 경우)에 대한 형식과 데이터를 검색합니다. 키에는 명명되지 않은 값이나 기본값이 자동으로 없으며 명명되지 않은 값은 모든 형식일 수 있습니다.

자세한 내용은 Registry 요소 크기 제한참조하세요.

[in, optional] dwFlags

쿼리할 값의 데이터 형식을 제한하는 플래그입니다. 값의 데이터 형식이 이 조건을 충족하지 않으면 함수가 실패합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
RRF_RT_ANY
0x0000ffff
형식 제한이 없습니다.
RRF_RT_DWORD
0x00000018
형식을 32비트 RRF_RT_REG_BINARY 제한 | RRF_RT_REG_DWORD.
RRF_RT_QWORD
0x00000048
형식을 64비트 RRF_RT_REG_BINARY 제한 | RRF_RT_REG_QWORD.
RRF_RT_REG_BINARY
0x00000008
형식을 REG_BINARY 제한합니다.
RRF_RT_REG_DWORD
0x00000010
형식을 REG_DWORD 제한합니다.
RRF_RT_REG_EXPAND_SZ
0x00000004
형식을 REG_EXPAND_SZ 제한합니다.
RRF_RT_REG_MULTI_SZ
0x00000020
형식을 REG_MULTI_SZ 제한합니다.
RRF_RT_REG_NONE
0x00000001
형식을 REG_NONE 제한합니다.
RRF_RT_REG_QWORD
0x00000040
형식을 REG_QWORD 제한합니다.
RRF_RT_REG_SZ
0x00000002
형식을 REG_SZ 제한합니다.
 

이 매개 변수는 다음 값 중 하나 이상을 포함할 수도 있습니다.

의미
RRF_NOEXPAND
0x10000000
값이 REG_EXPAND_SZ 형식인 경우 환경 문자열을 자동으로 확장하지 마세요.
RRF_ZEROONFAILURE
0x20000000
pvData NULL않으면 실패 시 버퍼의 내용을 0으로 설정합니다.
RRF_SUBKEY_WOW6464KEY
0x00010000
lpSubKey NULL않으면 KEY_WOW64_64KEY 액세스 권한으로 lpSubKey 지정하는 하위 키를 엽니다. 이러한 액세스 권한에 대한 자세한 내용은 레지스트리 키 보안 및 액세스 권한참조하세요.

RRF_SUBKEY_WOW6432KEY함께 RRF_SUBKEY_WOW6464KEY 지정할 수 없습니다.

RRF_SUBKEY_WOW6432KEY
0x00020000
lpSubKey NULL않으면 KEY_WOW64_32KEY 액세스 권한으로 lpSubKey 지정하는 하위 키를 엽니다. 이러한 액세스 권한에 대한 자세한 내용은 레지스트리 키 보안 및 액세스 권한참조하세요.

RRF_SUBKEY_WOW6464KEY함께 RRF_SUBKEY_WOW6432KEY 지정할 수 없습니다.

[out, optional] pdwType

지정된 값에 저장된 데이터의 형식을 나타내는 코드를 받는 변수에 대한 포인터입니다. 가능한 형식 코드 목록은 레지스트리 값 형식참조하세요. 이 매개 변수는 형식이 필요하지 않은 경우 NULL 수 있습니다.

[out, optional] pvData

값의 데이터를 받는 버퍼에 대한 포인터입니다. 데이터가 필요하지 않은 경우 이 매개 변수는 NULL 수 있습니다.

데이터가 문자열인 경우 함수는 종료 null 문자를 확인합니다. 버퍼가 추가 문자를 수용할 수 있을 만큼 크면 문자열이 null 종결자와 함께 저장됩니다. 그렇지 않으면 함수가 실패하고 ERROR_MORE_DATA 반환합니다.

[in, out, optional] pcbData

pvData 매개 변수가 가리키는 버퍼의 크기를 바이트 단위로 지정하는 변수에 대한 포인터입니다. 함수가 반환될 때 이 변수에는 pvData복사된 데이터의 크기가 포함됩니다.

pcbData 매개 변수는 pvData NULL경우에만 NULL 수 있습니다.

데이터에 REG_SZ, REG_MULTI_SZ 또는 REG_EXPAND_SZ 형식이 있는 경우 이 크기에는 종료 null 문자 또는 문자가 포함됩니다. 자세한 내용은 비고를 참조하세요.

pvData 매개 변수로 지정된 버퍼가 데이터를 저장할 만큼 충분히 크지 않은 경우 함수는 ERROR_MORE_DATA 반환하고 pcbData가리키는 변수에 필요한 버퍼 크기를 저장합니다. 이 경우 dwFlags가 RRF_ZEROONFAILURE 지정하고 정의되지 않은 경우 pvData 버퍼의 내용은 0입니다.

pvData NULLpcbDataNULL경우 함수는 ERROR_SUCCESS 반환하고 데이터 크기를 pcbData가리키는 변수에 바이트 단위로 저장합니다. 이렇게 하면 애플리케이션이 값의 데이터에 버퍼를 할당하는 가장 좋은 방법을 결정할 수 있습니다.

hKeyHKEY_PERFORMANCE_DATA 지정하고 pvData 버퍼가 반환된 모든 데이터를 포함할 만큼 크지 않은 경우 함수는 ERROR_MORE_DATA 반환하고 pcbData 매개 변수를 통해 반환되는 값은 정의되지 않습니다. 성능 데이터의 크기가 한 호출에서 다음 호출로 변경 될 수 있기 때문입니다. 이 경우 버퍼 크기를 늘리고 pcbData 매개 변수에서 업데이트된 버퍼 크기를 전달하기 RegGetValue를 호출해야 합니다. 함수가 성공할 때까지 이 작업을 반복합니다. pcbData 반환된 값은 예측할 수 없으므로 버퍼 크기를 추적하기 위해 별도의 변수를 유지 관리해야 합니다.

반환 값

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

함수가 실패하면 반환 값은시스템 오류 코드입니다.

pvData 버퍼가 너무 작아서 값을 받지 못하면 함수는 ERROR_MORE_DATA 반환합니다.

lpValue 레지스트리 값이 없으면 함수는 ERROR_FILE_NOT_FOUND 반환합니다.

dwFlagsRRF_SUBKEY_WOW6464KEYRRF_SUBKEY_WOW6432KEY둘 다의 조합을 지정하면 함수는 ERROR_INVALID_PARAMETER 반환합니다.

발언

애플리케이션은 일반적으로 RegEnumValue 호출하여 값 이름을 확인한 다음, RegGetValue 이름에 대한 데이터를 검색합니다.

데이터에 REG_SZ, REG_MULTI_SZ 또는 REG_EXPAND_SZ 형식이 있고 이 함수의 ANSI 버전이 사용되는 경우(RegGetValueA 명시적으로 호출하거나 Windows.h 파일을 포함하기 전에 UNICODE를 정의하지 않음) 이 함수는 저장된 유니코드 문자열을 ANSI 문자열로 변환한 후 pvData가리키는 버퍼로 복사합니다.

HKEY_PERFORMANCE_DATA 핸들 및 지정된 개체의 값 문자열로 설정된 hkey 사용하여 이 함수를 호출할 때 반환된 데이터 구조에 요청되지 않은 개체가 있는 경우가 있습니다. 놀라지 마세요. 이것은 정상적인 동작입니다. 항상 반환된 데이터 구조를 탐색하여 요청된 개체를 찾아야 합니다.

특정 레지스트리 키에 액세스하는 작업은 리디렉션됩니다. 자세한 내용은 레지스트리레지스트리 가상화32비트 및 64비트 애플리케이션 데이터를 참조하세요.

이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0600 이상으로 정의합니다. 자세한 내용은 Windows 헤더사용하는 참조하세요.

메모

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

요구 사항

요구
지원되는 최소 클라이언트 Windows Vista, Windows XP Professional x64 Edition
지원되는 최소 서버 Windows Server 2008, Windows Server 2003 with SP1
대상 플랫폼 Windows
헤더 winreg.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

참고 항목

RegCreateKeyEx

RegEnumKeyEx

RegEnumValue

RegOpenKeyEx

RegQueryInfoKey

레지스트리 함수

레지스트리 개요