Platform SDK: Access Control

ACCESS_MASK

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/2000: 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 

Requirements

  Windows NT/2000: Requires Windows NT 3.1 or later.
  Header: Declared in Winnt.h; include Windows.h.

See Also

Access Control Overview, Access Control Structures, GENERIC_MAPPING, Access Rights and Access Masks