Поделиться через


ACCESS_MASK

Тип данных ACCESS_MASK — это значение DWORD , определяющее стандартные, конкретные и универсальные права. Эти права используются в записях управления доступом (ACE) и являются основным средством указания запрошенного или предоставленного доступа к объекту.

typedef DWORD ACCESS_MASK;
typedef ACCESS_MASK* PACCESS_MASK;

Комментарии

Биты в этом значении выделяются следующим образом.

Bits Значение
0 15
Определенные права. Содержит маску доступа, относясь к типу объекта, связанному с маской.
16 23
Стандартные права. Содержит стандартные права доступа объекта.
24
Безопасность системы доступа (ACCESS_SYSTEM_SECURITY). Он используется для указания доступа к системным списку управления доступом (SACL). Для этого типа доступа требуется, чтобы вызывающий процесс был иметь привилегии SE_SECURITY_NAME (управление аудитом и журналом безопасности). Если этот флаг установлен в маске доступа для ACE аудита доступа (успешного или неудачного доступа), доступ к saCL будет проверен.
25
Максимально допустимое значение (MAXIMUM_ALLOWED).
26 27
Зарезервировано.
28
Универсальные все (GENERIC_ALL).
29
Универсальное выполнение (GENERIC_EXECUTE).
30
Универсальная запись (GENERIC_WRITE).
31
Универсальное чтение (GENERIC_READ).

Биты стандартных прав (от 16 до 23) содержат стандартные права доступа объекта и могут быть комбинацией следующих предопределенных флагов.

bit Flag Значение
16
DELETE
Удаление доступа.
17
READ_CONTROL
Доступ на чтение к владельцу, группе и списку управления доступом (DACL) дескриптора безопасности.
18
WRITE_DAC
Доступ на запись к DACL.
19
WRITE_OWNER
Доступ на запись владельцу.
20
SYNCHRONIZE
Синхронизация доступа.

Следующие константы, определенные в Winnt.h, представляют определенные и стандартные права доступа.

#define DELETE                           (0x00010000L)
#define READ_CONTROL                     (0x00020000L)
#define WRITE_DAC                        (0x00040000L)
#define WRITE_OWNER                      (0x00080000L)
#define SYNCHRONIZE                      (0x00100000L)

#define STANDARD_RIGHTS_REQUIRED         (0x000F0000L)

#define STANDARD_RIGHTS_READ             (READ_CONTROL)
#define STANDARD_RIGHTS_WRITE            (READ_CONTROL)
#define STANDARD_RIGHTS_EXECUTE          (READ_CONTROL)

#define STANDARD_RIGHTS_ALL              (0x001F0000L)

#define SPECIFIC_RIGHTS_ALL              (0x0000FFFFL)

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Заголовок
Winnt.h (включая Windows.h)

См. также раздел

Управление доступом

Базовые структуры контроль доступа

Права доступа и маски доступа

GENERIC_MAPPING