다음을 통해 공유


AddAce 함수(securitybaseapi.h)

AddAce 함수는 하나 이상의 ACL(액세스 제어 항목)을 지정된 ACL(액세스 제어 목록)에 추가합니다.

구문

BOOL AddAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  dwStartingAceIndex,
  [in]      LPVOID pAceList,
  [in]      DWORD  nAceListLength
);

매개 변수

[in, out] pAcl

ACL에 대한 포인터입니다. 이 함수는 이 ACL에 ACE를 추가합니다.

[in] dwAceRevision

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

이 값은 ACL_REVISION 또는 ACL_REVISION_DS 수 있습니다. ACL에 개체별 ACL이 포함된 경우 ACL_REVISION_DS 사용합니다. 이 값은 pAceList에 있는 모든 ACE의 AceType 필드와 호환되어야 합니다. 그렇지 않으면 함수가 실패하고 마지막 오류를 ERROR_INVALID_PARAMETER 설정합니다.

[in] dwStartingAceIndex

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

[in] pAceList

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

[in] nAceListLength

pAceList 매개 변수가 가리키는 입력 버퍼의 크기(바이트)를 지정합니다.

반환 값

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

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

반환 코드 설명
ERROR_INSUFFICIENT_BUFFER
새 ACE가 ACL에 맞지 않습니다. 더 큰 ACL 버퍼가 필요합니다.
ERROR_INVALID_PARAMETER
지정된 ACL이 제대로 구성되지 않았습니다.
ERROR_SUCCESS
ACE가 성공적으로 추가되었습니다.

설명

애플리케이션은 AddAce 함수를 사용하여 ACL을 조작할 때 FindFirstFreeAceGetAce 함수를 자주 사용합니다. 또한 GetAclInformation 함수에서 검색하는 ACL_SIZE_INFORMATION 구조체에는 ACL의 크기와 포함된 AES 수가 포함됩니다.

예제

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

요구 사항

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

추가 정보

ACL_SIZE_INFORMATION

AddAccessAllowedAce

AddAccessDeniedAce

AddAuditAccessAce

DeleteAce

FindFirstFreeAce

GetAce

GetAclInformation

하위 수준 Access Control

하위 수준 Access Control 함수