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


ACCESS_MASK

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

typedef DWORD ACCESS_MASK;
typedef ACCESS_MASK* PACCESS_MASK;

Замечания

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

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

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

Бит Flag Meaning
16 DELETE Удаление доступа.
17 READ_CONTROL Чтение доступа к владельцу, группе и списку управления доступом (DACL) дескриптора безопасности.
18 WRITE_DAC Запись доступа к DACL.
19 WRITE_OWNER Запись доступа к владельцу.
20 СИНХРОНИЗАЦИЯ Синхронизация доступа.

Следующие константы, определенные в 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)

Object-Specific права доступа

Низкие 16-разрядные (биты 0-15) ACCESS_MASK используются для прав доступа для конкретного объекта. Значение этих битов зависит от типа доступа к объекту. Подробные сведения о правах доступа для определенных типов объектов см. в следующих разделах:

Распространенные типы объектов

Дополнительные типы объектов

Полный список защищаемых объектов и их прав доступа см. в разделе "Права доступа" и "Маски доступа".

Требования

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

Контроль доступа

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

Маски доступа и права доступа

GENERIC_MAPPING