RtlSelfRelativeToAbsoluteSD 함수(ntifs.h)
RtlSelfRelativeToAbsoluteSD 루틴은 자체 상대 형식의 보안 설명자를 템플릿으로 사용하여 절대 형식의 새 보안 설명자를 만듭니다.
구문
NTSYSAPI NTSTATUS RtlSelfRelativeToAbsoluteSD(
[in] PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
[out] PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
[in, out] PULONG AbsoluteSecurityDescriptorSize,
[out] PACL Dacl,
[in, out] PULONG DaclSize,
[out] PACL Sacl,
[in, out] PULONG SaclSize,
[out] PSID Owner,
[in, out] PULONG OwnerSize,
[out] PSID PrimaryGroup,
[in, out] PULONG PrimaryGroupSize
);
매개 변수
[in] SelfRelativeSecurityDescriptor
자체 상대 형식의 SECURITY_DESCRIPTOR 구조를 포함하는 호출자가 할당한 버퍼에 대한 포인터입니다. RtlSelfRelativeToAbsoluteSD 는 원본을 수정하지 않고 이 보안 설명자의 버전을 절대 형식으로 만듭니다.
[out] AbsoluteSecurityDescriptor
절대 형식 보안 설명자의 기본 본문을 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다. 이 정보는 SECURITY_DESCRIPTOR 구조체로 서식이 지정됩니다.
[in, out] AbsoluteSecurityDescriptorSize
AbsoluteSecurityDescriptor 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 호출자 할당 변수에 대한 포인터입니다. 버퍼가 보안 설명자를 저장할 만큼 크지 않은 경우 RtlSelfRelativeToAbsoluteSD 는 STATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 필요한 최소 크기로 설정합니다.
[out] Dacl
절대 형식 보안 설명자의 DACL을 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.
[in, out] DaclSize
Dacl 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 호출자 할당 변수에 대한 포인터입니다. 버퍼가 DACL을 보유할 만큼 크지 않은 경우 RtlSelfRelativeToAbsoluteSD 는 STATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 필요한 최소 크기로 설정합니다.
[out] Sacl
절대 형식 보안 설명자의 SACL을 수신하는 호출자 할당 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.
[in, out] SaclSize
Sacl 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 호출자 할당 변수에 대한 포인터입니다. 버퍼가 SACL을 보유할 만큼 크지 않으면 RtlSelfRelativeToAbsoluteSD 는 STATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 필요한 최소 크기로 설정합니다.
[out] Owner
절대 형식 보안 설명자의 소유자 SID를 수신하는 호출자 할당 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.
[in, out] OwnerSize
Owner 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 호출자 할당 변수에 대한 포인터입니다. 버퍼가 SID를 보유할 만큼 크지 않은 경우 RtlSelfRelativeToAbsoluteSD 는 STATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 필요한 최소 크기로 설정합니다.
[out] PrimaryGroup
절대 형식 보안 설명자의 기본 그룹의 SID를 수신하는 호출자 할당 버퍼에 대한 포인터입니다. 절대 형식 보안 설명자의 기본 본문은 이 포인터를 참조합니다.
[in, out] PrimaryGroupSize
PrimaryGroup 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 호출자 할당 변수에 대한 포인터입니다. 버퍼가 SID를 보유할 만큼 크지 않은 경우 RtlSelfRelativeToAbsoluteSD 는 STATUS_BUFFER_TOO_SMALL 반환하고 이 변수를 필요한 최소 크기로 설정합니다.
반환 값
RtlSelfRelativeToAbsoluteSD 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
AbsoluteSecurityDescriptor 매개 변수가 가리키는 버퍼에 절대 형식의 SECURITY_DESCRIPTOR 구조체가 포함되어 있지 않습니다. STATUS_BAD_DESCRIPTOR_FORMAT 오류 코드입니다. |
|
AbsoluteSecurityDescriptor, Dacl, Sacl, Owner 또는 PrimaryGroup 매개 변수가 가리키는 버퍼가 너무 작습니다. STATUS_BUFFER_TOO_SMALL 오류 코드입니다. |
설명
절대 형식의 보안 설명자는 정보 자체를 포함하지 않고 정보에 대한 포인터를 포함합니다. 자체 상대 형식의 보안 설명자는 인접한 메모리 블록의 정보를 포함합니다. 자체 상대 보안 설명자에서 SECURITY_DESCRIPTOR 구조는 항상 정보를 시작하지만 보안 설명자의 다른 구성 요소는 순서에 따라 SECURITY_DESCRIPTOR 구조를 따를 수 있습니다. 메모리 주소를 사용하는 대신 보안 설명자의 구성 요소는 보안 설명자의 시작 부분에서 오프셋으로 식별됩니다. 이 형식은 보안 설명자를 플로피 디스크에 저장하거나 통신 프로토콜을 통해 전송해야 하는 경우에 유용합니다.
AbsoluteSecurityDescriptor 매개 변수는 절대 보안 설명자의 기본 본문만 받습니다. 전체 절대 보안 설명자는 이 기본 본문과 Dacl, Sacl, Owner 및 PrimaryGroup 버퍼에 반환된 모든 보안 설명자 구성 요소로 구성됩니다. 따라서 호출자는 RtlSelfRelativeToAbsoluteSD를 호출한 후 이러한 버퍼를 해제할 수 없습니다. 이렇게 하면 절대 보안 설명자가 무효화되므로
절대 형식의 보안 설명자를 템플릿으로 사용하여 자체 상대 형식의 새 보안 설명자를 만들려면 RtlAbsoluteToSelfRelativeSD를 사용합니다.
보안 및 액세스 제어에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Server 2003 SP1 |
대상 플랫폼 | 유니버설 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |