RtlAddAce 함수(ntifs.h)

RtlAddAce 루틴은 하나 이상의 ACL(액세스 제어 항목)을 지정된 ACL(액세스 제어 목록)에 추가합니다.

구문

NTSYSAPI NTSTATUS RtlAddAce(
  [in, out] PACL  Acl,
  [in]      ULONG AceRevision,
  [in]      ULONG StartingAceIndex,
  [in]      PVOID AceList,
  [in]      ULONG AceListLength
);

매개 변수

[in, out] Acl

수정할 ACL에 대한 포인터입니다. RtlAddAce 는 지정된 ACL에 지정된 ACL을 추가합니다.

[in] AceRevision

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

의미
ACL_REVISION 모든 Windows 버전에서 유효한 수정 수준입니다.
ACL_REVISION_DS Windows 2000부터 유효한 수정 수준입니다.

Acl의 ACL에 개체별 ACE가 포함된 경우 AceRevision을 ACL_REVISION_DS 합니다.

[in] StartingAceIndex

ACL의 ACL AES 목록에서 새 AES를 추가할 위치를 지정합니다. 값이 0이면 목록의 시작 부분에 ACL이 삽입됩니다. MAXULONG 값은 API를 목록의 끝에 추가합니다.

[in] AceList

지정된 ACL에 추가할 하나 이상의 AES 목록을 포함하는 버퍼에 대한 포인터입니다. 목록의 ACE는 연속적으로 저장해야 합니다.

[in] AceListLength

AceList 매개 변수가 가리키는 입력 버퍼의 크기(바이트)입니다.

반환 값

RtlAddAce 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_BUFFER_TOO_SMALL 새 ACL은 ACL에 맞지 않습니다. 더 큰 ACL 버퍼가 필요합니다. STATUS_BUFFER_TOO_SMALL 오류 코드입니다.
STATUS_INVALID_PARAMETER 매개 변수 값 중 하나가 잘못되었습니다. 가능한 이유는 지정된 ACL이 유효하지 않거나 지정된 수정 버전을 알 수 없거나 ACE 목록의 수정 버전과 호환되지 않거나 ACL의 수정 버전과 호환되지 않는 것입니다. STATUS_INVALID_PARAMETER 오류 코드입니다.

설명

ACL 크기를 계산하는 방법에 대한 자세한 내용은 RtlCreateAcl에 대한 참조 항목의 설명 섹션을 참조하세요.

ACL에서 ACE에 대한 포인터를 가져오려면 RtlGetAce를 사용합니다.

ACL에서 ACE를 삭제하려면 RtlDeleteAce를 사용합니다.

액세스 허용 ACE를 ACL에 추가하려면 RtlAddAccessAllowedAce를 사용합니다.

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2003 SP1
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe(커널 모드); Ntdll.dll(사용자 모드)
IRQL <= APC_LEVEL

추가 정보

에이스

ACL

RtlAddAccessAllowedAce

RtlCreateAcl

RtlDeleteAce

RtlGetAce