다음을 통해 공유


MakeAbsoluteSD 함수(securitybaseapi.h)

MakeAbsoluteSD 함수는 자체 상대 형식의 보안 설명자를 템플릿으로 사용하여 절대 형식의 보안 설명자를 만듭니다.

구문

BOOL MakeAbsoluteSD(
  [in]            PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
  [out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
  [in, out]       LPDWORD              lpdwAbsoluteSecurityDescriptorSize,
  [out, optional] PACL                 pDacl,
  [in, out]       LPDWORD              lpdwDaclSize,
  [out, optional] PACL                 pSacl,
  [in, out]       LPDWORD              lpdwSaclSize,
  [out, optional] PSID                 pOwner,
  [in, out]       LPDWORD              lpdwOwnerSize,
  [out, optional] PSID                 pPrimaryGroup,
  [in, out]       LPDWORD              lpdwPrimaryGroupSize
);

매개 변수

[in] pSelfRelativeSecurityDescriptor

자체 상대 형식의 SECURITY_DESCRIPTOR 구조체에 대한 포인터입니다. 함수는 원래 보안 설명자를 수정하지 않고 이 보안 설명자의 절대 형식 버전을 만듭니다.

[out, optional] pAbsoluteSecurityDescriptor

함수가 절대 형식 보안 설명자의 기본 본문으로 채우는 버퍼에 대한 포인터입니다. 이 정보는 SECURITY_DESCRIPTOR 구조체로 서식이 지정됩니다.

[in, out] lpdwAbsoluteSecurityDescriptorSize

pAbsoluteSD 매개 변수가 가리키는 버퍼의 크기를 지정하는 변수에 대한 포인터입니다. 버퍼가 보안 설명자에 대해 충분히 크지 않으면 함수가 실패하고 이 변수를 필요한 최소 크기로 설정합니다.

[out, optional] pDacl

함수가 절대 형식 보안 설명자의 DACL( 임의 액세스 제어 목록 )으로 채우는 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.

[in, out] lpdwDaclSize

pDacl 매개 변수가 가리키는 버퍼의 크기를 지정하는 변수에 대한 포인터입니다. 버퍼가 ACL( 액세스 제어 목록 )에 충분히 크지 않으면 함수가 실패하고 이 변수를 필요한 최소 크기로 설정합니다.

[out, optional] pSacl

함수가 절대 형식 보안 설명자의 SACL( 시스템 액세스 제어 목록 )으로 채우는 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.

[in, out] lpdwSaclSize

pSacl 매개 변수가 가리키는 버퍼의 크기를 지정하는 변수에 대한 포인터입니다. 버퍼가 ACL에 충분히 크지 않으면 함수가 실패하고 이 변수를 필요한 최소 크기로 설정합니다.

[out, optional] pOwner

함수가 절대 형식 보안 설명자의 소유자 SID( 보안 식별자 )로 채우는 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.

[in, out] lpdwOwnerSize

pOwner 매개 변수가 가리키는 버퍼의 크기를 지정하는 변수에 대한 포인터입니다. 버퍼가 SID에 충분히 크지 않으면 함수가 실패하고 이 변수를 필요한 최소 크기로 설정합니다.

[out, optional] pPrimaryGroup

함수가 절대 형식 보안 설명자의 기본 그룹의 SID로 채우는 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.

[in, out] lpdwPrimaryGroupSize

pPrimaryGroup 매개 변수가 가리키는 버퍼의 크기를 지정하는 변수에 대한 포인터입니다. 버퍼가 SID에 충분히 크지 않으면 함수가 실패하고 이 변수를 필요한 최소 크기로 설정합니다.

반환 값

함수가 성공하면 함수는 0이 아닌 값을 반환합니다.

함수가 실패하면 0을 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 가능한 반환 코드에는 다음이 포함되지만 이에 국한되지는 않습니다.

반환 코드/값 설명
ERROR_INSUFFICIENT_BUFFER
0x7A
하나 이상의 버퍼가 너무 작습니다.

설명

절대 형식의 보안 설명자는 정보 자체가 아닌 포함된 정보에 대한 포인터를 포함합니다. 자체 상대 형식의 보안 설명자는 인접한 메모리 블록의 정보를 포함합니다. 자체 상대 보안 설명자에서 SECURITY_DESCRIPTOR 구조는 항상 정보를 시작하지만 보안 설명자의 다른 구성 요소는 어떤 순서로든 구조를 따를 수 있습니다. 메모리 주소를 사용하는 대신 자체 상대 보안 설명자의 구성 요소는 보안 설명자의 시작부터 오프셋으로 식별됩니다. 이 형식은 보안 설명자를 플로피 디스크에 저장하거나 통신 프로토콜을 통해 전송해야 하는 경우에 유용합니다.

보안 개체를 다양한 미디어에 복사하는 서버는 MakeAbsoluteSD 함수를 사용하여 자기 상대 보안 설명자 및 MakeSelfRelativeSD 함수에서 절대 보안 설명자를 만들어 절대 보안 설명자에서 자기 상대 보안 설명자를 만들 수 있습니다.

요구 사항

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

추가 정보

하위 수준 Access Control

하위 수준 Access Control 함수

MakeSelfRelativeSD

SECURITY_DESCRIPTOR