AddMandatoryAce 함수(securitybaseapi.h)

AddMandatoryAce 함수는 지정된 SACL(시스템 액세스 제어 목록)에 SYSTEM_MANDATORY_LABEL_ACE ACE(액세스 제어 항목)를 추가합니다.

구문

BOOL AddMandatoryAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AceFlags,
  [in]      DWORD MandatoryPolicy,
  [in]      PSID  pLabelSid
);

매개 변수

[in, out] pAcl

SACL에 대한 포인터입니다. 이 함수는 이 SACL의 끝에 필수 ACE를 추가합니다. ACE는 SYSTEM_MANDATORY_LABEL_ACE 구조체 형식입니다.

[in] dwAceRevision

수정할 SACL의 수정 수준입니다. 이 값은 다음 값 중 하나일 수 있습니다.

의미
ACL_REVISION
SACL에는 개체별 ACL이 포함되어 있지 않습니다.
ACL_REVISION_DS
SACL에는 개체 지정 ACE가 포함되어 있습니다.

[in] AceFlags

ACE 상속을 제어하는 비트 플래그 집합입니다. 이 함수는 새 ACE의 ACE_HEADER 구조체의 AceFlags 멤버에서 이러한 플래그를 설정합니다.

이 매개 변수는 다음 값의 조합일 수 있습니다.

의미
OBJECT_INHERIT_ACE
0x1
ACE는 비컨테이너 개체에 의해 상속됩니다.
CONTAINER_INHERIT_ACE
0x2
ACE는 컨테이너 개체에 의해 상속됩니다.
NO_PROPAGATE_INHERIT_ACE
0x4
OBJECT_INHERIT_ACECONTAINER_INHERIT_ACE 비트는 상속된 ACE로 전파되지 않습니다.
INHERIT_ONLY_ACE
0x8
ACE는 SACL이 할당된 개체에는 적용되지 않지만 자식 개체에서 ACE를 상속할 수 있습니다.
INHERITED_ACE
0x10
ACE가 상속됩니다. 개체 트리의 보안을 변경하는 작업은 개체에 직접 적용된 API를 변경하지 않고 상속된 API를 수정할 수 있습니다.

[in] MandatoryPolicy

필수 무결성 수준이 이 ACE를 포함하는 SACL과 연결된 개체보다 낮은 보안 주체에 대한 액세스 정책입니다.

의미
SYSTEM_MANDATORY_LABEL_NO_WRITE_UP
0x1
개체보다 낮은 필수 수준을 가진 보안 주체는 개체에 쓸 수 없습니다.
SYSTEM_MANDATORY_LABEL_NO_READ_UP
0x2
개체보다 낮은 필수 수준을 가진 보안 주체는 개체를 읽을 수 없습니다.
SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP
0x4
개체보다 낮은 필수 수준을 가진 보안 주체는 개체를 실행할 수 없습니다.

[in] pLabelSid

추가되는 SACL과 연결된 개체의 필수 무결성 수준을 지정하는 SID에 대한 포인터입니다.

반환 값

함수가 성공하면 TRUE를 반환합니다.

함수가 실패하면 FALSE를 반환합니다. 확장된 오류 정보는 GetLastError를 호출합니다. 가능한 오류 값은 다음과 같습니다.

반환 코드/값 설명
ERROR_ALLOTTED_SPACE_EXCEEDED
0x540
새 ACE가 pAcl 버퍼에 맞지 않습니다.

설명

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

요구 사항

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

추가 정보

SYSTEM_MANDATORY_LABEL_ACE