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


Указание прав доступа

Тип ACCESS_MASK — это битовая маска, определяющая набор прав доступа в маске доступа для элемента управления доступом.

typedef ULONG  ACCESS_MASK;

Следующие стандартные специальные права доступа применяются ко всем типам исполнительных объектов.

Флаг Описание
Удалить Вызывающий может удалить объект.
READ_CONTROL Вызывающий объект может считывать список управления доступом (ACL) и сведения о владельцах файла.
СИНХРОНИЗИРОВАТЬ Вызывающий может выполнять операцию ожидания на объекте. Например, объект можно передать в KeWaitForMultipleObjects.
WRITE_DAC Вызывающий может изменять дискреционный список управления доступом (DACL) для объекта.
WRITE_OWNER Вызывающая сторона может изменить сведения о праве собственности на файл.

Как правило, только DELETE и SYNCHRONIZE представляют интерес для разработчиков драйверов.

Вы также можете указать следующие универсальные права доступа. Они также применяются ко всем типам исполнительных объектов. Смысл каждого универсального права доступа зависит от этого типа объекта.

Флаг Описание
GENERIC_READ Вызывающий может выполнять обычные операции чтения над объектом.
GENERIC_WRITE (общая запись) Вызывающий может выполнять обычные операции записи на объекте.
GENERIC_EXECUTE Вызывающий может выполнить объект. Обычно это имеет смысл только для определенных типов объектов, таких как объекты файлов и объекты раздела.
ОБЩИЙ_ВСЕ Вызывающий может выполнять все обычные операции с объектом.

Также определены следующие сочетания стандартных конкретных прав доступа. Они обычно не используются напрямую, но используются в качестве шаблонов для определения других битовых масок. Например, когда вы указываете GENERIC_READ для объекта файла, система сопоставляет это с битовой маской FILE_GENERIC_READ, определенной для конкретных прав доступа. FILE_GENERIC_READ определяется в соответствии с STANDARD_RIGHTS_READ.

Битмаска Описание
STANDARD_RIGHTS_READ Стандартные определенные права, соответствующие GENERIC_READ.
СТАНДАРТНЫЕ ПРАВА НА ЗАПИСЬ Стандартные специфические права, соответствующие GENERIC_WRITE.
СТАНДАРТНЫЕ_ПРАВА_НА_ВЫПОЛНЕНИЕ Стандартные конкретные права, соответствующие GENERIC_EXECUTE.
ТРЕБУЮТСЯ СТАНДАРТНЫЕ ПРАВА. Стандартные конкретные права, соответствующие GENERIC_ALL. Это включает DELETE, но не СИНХРОНИЗАЦИЯ.
STANDARD_RIGHTS_ALL Все стандартные права доступа.

Каждый тип объекта может иметь собственные дополнительные права доступа. Описание прав доступа, применимых к файлу, каталогу или устройству, см. в разделе ZwCreateFile.

Описание прав доступа, применимых к каталогу диспетчера объектов, см. в разделе ZwCreateDirectoryObject.

Описание прав доступа, применимых к разделу реестра, можно найти в ZwCreateKey.

Описание прав доступа, применимых к объекту раздела, см. в разделе ZwOpenSection.

Описание прав доступа, применимых к блоку данных WMI, см. в разделе IoWMIOpenBlock.

Дополнительные сведения о правах доступа см. в статье "Права доступа" и "Маски доступа" иACCESS_MASK в документации по пакету SDK для Windows.

IoWMIOpenBlock

ZwCreateDirectoryObject

ZwCreateFile

ZwCreateKey

ZwOpenSection