typedef struct _ACE_HEADER { /* acehdr */
BYTE AceType;
BYTE AceSize;
BYTE InheritFlags;
BYTE AceFlags;
} ACE_HEADER;
typedef ACE_HEADER *PACE_HEADER;
AceType
Specifies the ACE type. Currently, this parameter may be one of the following values:
Value | Meaning |
ACCESS_ALLOWED_ACE_TYPE | AccessAllowed ACE |
ACCESS_DENIED_ACE_TYPE | AccessDenied ACE |
SYSTEM_AUDIT_ACE_TYPE | SystemAudit ACE |
SYSTEM_ALARM_ACE_TYPE | SystemAlarm ACE |
Additionally, values in the ranges 0x30 through 0x3F and 0xF0 through 0xFF are defined to be “unknown”. These unknown values are not supported by the architecture, and must not be passed across interfaces specified to include ACLs. The purpose of the unknown ACE types is to reserve a set of types that can be used by object-specific code to store object-specific information within an ACL.
AceSize
Specifies the size in bytes of the ACE.
InheritFlags
A set of bit flags that specify inheritance properties of the ACE. This parameter may be some combination of the following values:
Value | Meaning |
OBJECT_INHERIT_ACE | The ACE is to be inherited by non-container objects created within the container object to which the ACE is assigned. |
CONTAINER_INHERIT_ACE | The ACE is to be inherited by sub-directories. |
NO_PROPAGATE_INHERIT_ACE | The OBJECT_INHERIT_ACE and CONTAINER_INHERIT_ACE bits are not to be propagated to an inherited ACE. |
INHERIT_ONLY_ACE | The ACE does not apply to the containing object, but is only to be applied to subobjects. |
AceFlags
A set of ACE type-specific control flags. This parameter may be some combination of the following values:
Value | Meaning |
SUCCESSFUL_ACCESS_ACE_FLAG | Used with system audit and system alarm ACEs to indicate that a message is generated for successful accesses. |
FAILED_ACCESS_ACE_FLAG | Used with system audit and system alarm ACEs to indicate that a message is generated for failed accesses. |
ACE, ACL ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_ALARM_ACE, SYSTEM_AUDIT_ACE