| Platform SDK: Access Control |
The AddAccessAllowedAceEx function adds an access-allowed ACE to the end of a DACL.
BOOL AddAccessAllowedAceEx( PACL pAcl, // access control list DWORD dwAceRevision, // ACL revision level DWORD AceFlags, // ACE inheritance flags DWORD AccessMask, // access mask for the new ACE PSID pSid // trustee SID for new ACE );
| Value | Meaning |
|---|---|
| CONTAINER_INHERIT_ACE | The ACE is inherited by container objects. |
| INHERIT_ONLY_ACE | The ACE does not apply to the object to which the ACL is assigned, but it can be inherited by child objects. |
| INHERITED_ACE | Indicates an inherited ACE. This flag allows operations that change the security on a tree of objects to modify inherited ACEs while not changing ACEs that were directly applied to the object. |
| NO_PROPAGATE_INHERIT_ACE | The OBJECT_INHERIT_ACE and CONTAINER_INHERIT_ACE bits are not propagated to an inherited ACE. |
| OBJECT_INHERIT_ACE | The ACE is inherited by noncontainer objects |
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError. The following are possible error values.
| Error value | Description |
|---|---|
| ERROR_ALLOTTED_SPACE_EXCEEDED | The new ACE does not fit into the ACL. A larger ACL buffer is required. |
| ERROR_INVALID_ACL | The specified ACL is not properly formed. |
| ERROR_INVALID_FLAGS | The AceFlags parameter is invalid. |
| ERROR_INVALID_SID | The specified SID is not structurally valid. |
| ERROR_REVISION_MISMATCH | The specified revision is not known or is incompatible with that of the ACL. |
| ERROR_SUCCESS | The ACE was successfully added. |
The caller must ensure that ACEs are added to the DACL in the correct order. For more information, see Order of ACEs in a DACL.
Windows NT/2000: Requires Windows 2000.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Advapi32.lib.
Low-Level Access-Control Overview, Low-Level Access Control Functions, ACCESS_ALLOWED_ACE, ACE_HEADER, ACL, AddAccessDeniedAceEx, AddAuditAccessAceEx