RegGetKeySecurity 함수(winreg.h)

RegGetKeySecurity 함수는 지정된 열린 레지스트리 키를 보호하는 보안 설명자의 복사본을 검색합니다.

구문

LSTATUS RegGetKeySecurity(
  [in]            HKEY                 hKey,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in, out]       LPDWORD              lpcbSecurityDescriptor
);

매개 변수

[in] hKey

보안 설명자를 검색할 열린 키에 대한 핸들입니다.

[in] SecurityInformation

요청된 보안 정보를 나타내는 SECURITY_INFORMATION 값입니다.

[out, optional] pSecurityDescriptor

요청된 보안 설명자의 복사본을 수신하는 버퍼에 대한 포인터입니다.

[in, out] lpcbSecurityDescriptor

pSecurityDescriptor 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 변수에 대한 포인터입니다. 함수가 반환되면 변수에는 버퍼에 기록된 바이트 수가 포함됩니다.

반환 값

함수가 성공하면 함수는 ERROR_SUCCESS 반환합니다.

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

설명

pSecurityDescriptor 매개 변수로 지정된 버퍼가 너무 작으면 함수는 ERROR_INSUFFICIENT_BUFFER 반환하고 lpcbSecurityDescriptor 매개 변수에는 요청된 보안 설명자에 필요한 바이트 수가 포함됩니다.

키의 보안 설명자에서 소유자, 그룹 또는 DACL( 임의 액세스 제어 목록 )을 읽으려면 핸들을 열 때 호출 프로세스 에 액세스 권한을 READ_CONTROL 부여되어야 합니다. READ_CONTROL 액세스 권한을 얻으려면 호출자가 키의 소유자이거나 키의 DACL이 액세스 권한을 부여해야 합니다.

보안 설명자에서 SACL( 시스템 액세스 제어 목록 )을 읽으려면 키를 열 때 호출 프로세스에 액세스 ACCESS_SYSTEM_SECURITY 부여되어야 합니다. 이 액세스를 가져오는 올바른 방법은 호출자의 현재 토큰에서 SE_SECURITY_NAME 권한을 사용하도록 설정하고 ACCESS_SYSTEM_SECURITY 액세스에 대한 핸들을 연 다음 권한을 사용하지 않도록 설정하는 것입니다.

요구 사항

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

추가 정보

FormatMessage

하위 수준 Access Control

하위 수준 Access Control 함수

RegDeleteKey

RegOpenKeyEx

RegSetKeySecurity

SECURITY_INFORMATION