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를 호출합니다. 가능한 반환 코드에는 다음이 포함되지만 이에 국한되지는 않습니다.
반환 코드/값 | 설명 |
---|---|
|
하나 이상의 버퍼가 너무 작습니다. |
설명
절대 형식의 보안 설명자는 정보 자체가 아닌 포함된 정보에 대한 포인터를 포함합니다. 자체 상대 형식의 보안 설명자는 인접한 메모리 블록의 정보를 포함합니다. 자체 상대 보안 설명자에서 SECURITY_DESCRIPTOR 구조는 항상 정보를 시작하지만 보안 설명자의 다른 구성 요소는 어떤 순서로든 구조를 따를 수 있습니다. 메모리 주소를 사용하는 대신 자체 상대 보안 설명자의 구성 요소는 보안 설명자의 시작부터 오프셋으로 식별됩니다. 이 형식은 보안 설명자를 플로피 디스크에 저장하거나 통신 프로토콜을 통해 전송해야 하는 경우에 유용합니다.
보안 개체를 다양한 미디어에 복사하는 서버는 MakeAbsoluteSD 함수를 사용하여 자기 상대 보안 설명자 및 MakeSelfRelativeSD 함수에서 절대 보안 설명자를 만들어 절대 보안 설명자에서 자기 상대 보안 설명자를 만들 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | securitybaseapi.h(Windows.h 포함) |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |