다음을 통해 공유


RtlAddAccessAllowedAceEx 함수(ntifs.h)

RtlAddAccessAllowedAceEx 루틴은 상속 ACE 플래그가 있는 ACE(액세스 허용 액세스 제어 항목)를 ACL(액세스 제어 목록)에 추가합니다. 지정된 SID(보안 식별자)에 대한 액세스 권한이 부여됩니다.

구문

NTSYSAPI NTSTATUS RtlAddAccessAllowedAceEx(
  [in, out] PACL        Acl,
  [in]      ULONG       AceRevision,
  [in]      ULONG       AceFlags,
  [in]      ACCESS_MASK AccessMask,
  [in]      PSID        Sid
);

매개 변수

[in, out] Acl

수정할 ACL을 포함하는 호출자가 할당한 버퍼에 대한 포인터입니다. RtlAddAccessAllowedAceEx 는 이 ACL의 끝에 액세스 허용 ACE를 추가합니다. ACE는 ACCESS_ALLOWED_ACE 구조체 형식입니다.

[in] AceRevision

추가할 ACE의 ACL 수정 버전 수준입니다. 이 값은 ACL_REVISION 또는 ACL_REVISION_DS 수 있습니다. ACL에 개체별 ACE가 포함된 경우 ACL_REVISION_DS 합니다.

[in] AceFlags

추가할 ACE의 상속 플래그를 지정하는 비트 마스크입니다.

[in] AccessMask

지정된 SID에 부여할 액세스 권한을 지정하는 하나 이상의 ACCESS_MASK 플래그 비트 마스크입니다. 자세한 내용은 ZwCreateFileDesiredAccess 매개 변수에 대한 설명을 참조하세요.

[in] Sid

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

반환 값

RtlAddAccessAllowedAceEx 는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_SUCCESS ACE가 성공적으로 추가되었습니다.
STATUS_ALLOTTED_SPACE_EXCEEDED 새 ACE가 ACL에 맞지 않습니다. 더 큰 ACL 버퍼가 필요합니다. ACL의 크기를 계산하는 방법에 대한 자세한 내용은 RtlCreateAcl을 참조하세요.
STATUS_INVALID_ACL 지정된 ACL이 올바르게 구성되지 않았습니다.
STATUS_INVALID_PARAMETER AceFlags 매개 변수가 잘못되었습니다.
STATUS_INVALID_SID 지정된 SID 구조가 구조적으로 유효하지 않습니다.
STATUS_REVISION_MISMATCH 지정된 AceRevision을 알 수 없거나 ACL의 AceRevision 과 호환되지 않습니다.

설명

RtlAddAccessAllowedAce와 달리 이 루틴은 상속 ACE 플래그를 설정합니다.

보안 및 액세스 제어에 대한 자세한 내용은 드라이버 개발자를 위한 Windows 보안 모델 및 다음과 같은 Windows SDK의 이러한 topics 대한 설명서를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h, FltKernel.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

ACCESS_ALLOWED_ACE

ACCESS_MASK

에이스

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile