The ACCESS_MASK structure is one doubleword value containing standard, specific, and generic rights. These rights are used in access-control entries (ACEs) and are the primary means of specifying the requested or granted access to an object.
typedef DWORD ACCESS_MASK;
The bits in this value are allocated as follows:
Bits | Meaning |
0 through 15 | Specific rights. Contains the access mask specific to the object type associated with the mask. |
16 through 23 | Standard rights. Contains the object's standard access rights and can be a combination of the following predefined flags: |
Bit | Flag | Meaning | |
16 | DELETE | Delete access | |
17 | READ_CONTROL | Read access to the owner, group, and discretionary access-control list (ACL) of the security descriptor | |
18 | WRITE_DAC | Write access to the discretionary access-control list (ACL) | |
19 | WRITE_OWNER | Write access to owner | |
20 | SYNCHRONIZE | Windows NT: Synchronize access |
Bits | Meaning |
24 | Access system security (ACCESS_SYSTEM_SECURITY). This flag is not a typical access type. It is used to indicate access to a system ACL. This type of access requires the calling process to have a specific privilege. |
25 | Maximum allowed (MAXIMUM_ALLOWED) |
26 through 27 | Reserved |
28 | Generic all (GENERIC_ALL) |
29 | Generic execute (GENERIC_EXECUTE) |
30 | Generic write (GENERIC_WRITE) |
31 | Generic read (GENERIC_READ) |
The following constants represent the specific and standard access rights:
#define SPECIFIC_RIGHTS_ALL 0x0000FFFF
#define STANDARD_RIGHTS_REQUIRED 0x000F0000
#define STANDARD_RIGHTS_ALL 0x001F0000
See Also