다음을 통해 공유


AddAuditAccessAceEx 함수(securitybaseapi.h)

AddAuditAccessAceEx 함수는 SACL(시스템 액세스 제어 목록)의 끝에 ACE(시스템 감사 액세스 제어 항목)를 추가합니다.

구문

BOOL AddAuditAccessAceEx(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AceFlags,
  [in]      DWORD dwAccessMask,
  [in]      PSID  pSid,
  [in]      BOOL  bAuditSuccess,
  [in]      BOOL  bAuditFailure
);

매개 변수

[in, out] pAcl

SACL에 대한 포인터입니다. AddAuditAccessAceEx 함수는 이 SACL에 시스템 감사 ACE를 추가합니다. ACE는 SYSTEM_AUDIT_ACE 구조체 형식입니다.

[in] dwAceRevision

수정할 SACL의 수정 수준을 지정합니다. 이 값은 ACL_REVISION 또는 ACL_REVISION_DS 수 있습니다. SACL에 개체별 ACL이 포함된 경우 ACL_REVISION_DS 사용합니다.

[in] AceFlags

ACE 상속 및 감사 시도 액세스 유형을 제어하는 비트 플래그 집합입니다. 함수는 새 ACE의 ACE_HEADER 구조체의 AceFlags 멤버에서 이러한 플래그를 설정합니다. 이 매개 변수는 다음 값의 조합일 수 있습니다.

의미
CONTAINER_INHERIT_ACE
ACE는 컨테이너 개체에 의해 상속됩니다.
FAILED_ACCESS_ACE_FLAG
이 플래그를 설정하거나 bAuditFailure 매개 변수에 TRUE를 지정하는 경우 지정된 액세스 권한을 사용하지 못하면 시스템이 보안 이벤트 로그에 감사 레코드를 생성합니다.
INHERIT_ONLY_ACE
ACE는 ACL( 액세스 제어 목록 )이 할당된 개체에는 적용되지 않지만 자식 개체에서 상속할 수 있습니다.
INHERITED_ACE
상속된 ACE를 나타냅니다. 이 플래그를 사용하면 개체 트리의 보안을 변경하는 작업이 개체에 직접 적용된 ACE를 변경하지 않고 상속된 API를 수정할 수 있습니다.
NO_PROPAGATE_INHERIT_ACE
OBJECT_INHERIT_ACE 및 CONTAINER_INHERIT_ACE 비트는 상속된 ACE로 전파되지 않습니다.
OBJECT_INHERIT_ACE
ACE는 비컨테이너 개체에 의해 상속됩니다.
SUCCESSFUL_ACCESS_ACE_FLAG
이 플래그를 설정하거나 bAuditSuccess 매개 변수에 TRUE를 지정하면 지정된 액세스 권한을 성공적으로 사용하면 시스템에서 보안 이벤트 로그에 감사 레코드가 생성됩니다.

[in] dwAccessMask

ACCESS_MASK 형식을 사용하여 새 ACE가 지정된 SID(보안 식별자)에 대해 감사하는 액세스 권한을 지정하는 비트 플래그 집합입니다.

[in] pSid

새 ACE가 액세스를 감사하는 사용자, 그룹 또는 로그온 세션을 식별하는 SID에 대한 포인터입니다.

[in] bAuditSuccess

지정된 액세스 권한을 성공적으로 사용하면 시스템에서 보안 이벤트 로그에 감사 레코드를 생성할지 여부를 지정합니다. 이 플래그가 TRUE 이거나 AceFlags 매개 변수가 SUCCESSFUL_ACCESS_ACE_FLAG 플래그를 지정하는 경우 시스템은 성공적인 액세스 시도를 기록합니다. 그렇지 않으면 그렇지 않습니다.

[in] bAuditFailure

지정된 액세스 권한을 사용하지 못하여 시스템이 보안 이벤트 로그에 감사 레코드를 생성하도록 할지 여부를 지정합니다. 이 플래그가 TRUE 이거나 AceFlags 매개 변수가 FAILED_ACCESS_ACE_FLAG 플래그를 지정하는 경우 시스템은 실패한 액세스 시도를 기록합니다. 그렇지 않으면 그렇지 않습니다.

반환 값

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

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

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

요구 사항

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

추가 정보

ACCESS_MASK

ACE_HEADER

ACL

AddAccessAllowedAceEx

AddAccessDeniedAceEx

하위 수준 Access Control

하위 수준 Access Control 함수

SYSTEM_AUDIT_ACE