다음을 통해 공유


RtlAddAccessAllowedAce 함수(ntifs.h)

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

구문

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

매개 변수

[in, out] Acl

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

[in] AceRevision

추가할 ACE의 ACL 수정 버전 수준입니다. Windows 버전 요구 사항은 다음과 같습니다.

의미
ACL_REVISION
모든 Windows 버전에서 유효한 수정 버전 수준입니다.
ACL_REVISION_DS
Windows 2000부터 유효한 수정 버전 수준입니다.
참고Acl의 ACL에 개체별 ACE가 포함된 경우 AceRevision은 ACL_REVISION_DS 합니다.
 

[in] AccessMask

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

[in] Sid

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

반환 값

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

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

설명

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

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

추가 정보

ACCESS_ALLOWED_ACE

ACCESS_MASK

에이스

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile