AddAccessAllowedAce 함수(securitybaseapi.h)

AddAccessAllowedAce 함수는 액세스 허용 ACE(액세스 제어 항목)를 ACL(액세스 제어 목록)에 추가합니다. 지정된 SID( 보안 식별자 )에 대한 액세스 권한이 부여됩니다.

새 ACE를 자식 개체에서 상속할 수 있는지 여부를 제어하려면 AddAccessAllowedAceEx 함수를 사용합니다.

구문

BOOL AddAccessAllowedAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AccessMask,
  [in]      PSID  pSid
);

매개 변수

[in, out] pAcl

ACL에 대한 포인터입니다. 이 함수는 이 ACL의 끝에 액세스 허용 ACE를 추가합니다. ACE는 ACCESS_ALLOWED_ACE 구조체 형식입니다.

[in] dwAceRevision

수정할 ACL의 수정 수준을 지정합니다.

이 값은 ACL_REVISION 또는 ACL_REVISION_DS 수 있습니다. ACL에 개체별 ACL이 포함된 경우 ACL_REVISION_DS 사용합니다.

[in] AccessMask

지정된 SID에 부여할 액세스 권한 마스크를 지정합니다.

[in] pSid

액세스 권한이 부여되는 사용자, 그룹 또는 로그온 계정을 나타내는 SID에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

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

반환 코드 설명
ERROR_ALLOTTED_SPACE_EXCEEDED
새 ACE가 ACL에 맞지 않습니다. 더 큰 ACL 버퍼가 필요합니다.
ERROR_INVALID_ACL
지정된 ACL이 제대로 구성되지 않았습니다.
ERROR_INVALID_SID
지정된 SID가 구조적으로 유효하지 않습니다.
ERROR_REVISION_MISMATCH
지정된 수정 버전을 알 수 없거나 ACL의 수정 버전과 호환되지 않습니다.
ERROR_SUCCESS
ACE가 성공적으로 추가되었습니다.

설명

액세스 허용 ACE를 ACL에 추가하는 것이 ACL 수정의 가장 일반적인 형태입니다.

AddAccessAllowedAceAddAccessDeniedAce 함수는 ACL에 대한 AES 목록의 끝에 새 ACE를 추가합니다. 이러한 함수는 새 ACE를 적절한 정식 순서로 자동으로 배치하지 않습니다. 적절한 시퀀스에 ACL을 추가하여 ACL이 정식 순서로 유지되도록 하는 것은 호출자의 책임입니다.

AddAccessAllowedAce 함수에 의해 ACE에 배치된 ACE_HEADER 구조체는 형식과 크기를 지정하지만 상속과 ACE 플래그는 제공하지 않습니다.

예제

이 함수를 사용하는 예제는 대화형 클라이언트 프로세스 시작을 참조하세요.

요구 사항

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

추가 정보

ACCESS_ALLOWED_ACE

ACE_HEADER

AddAccessAllowedAceEx

AddAccessDeniedAce

AddAce

AddAuditAccessAce

DeleteAce

GetAce

하위 수준 Access Control

하위 수준 Access Control 함수