Структура ACL (wdm.h)
Структура ACL является заголовком списка управления доступом (ACL). Полный ACL состоит из структуры ACL, за которой следует упорядоченный список из нуля или нескольких записей управления доступом (ACE).
Синтаксис
typedef struct _ACL {
UCHAR AclRevision;
UCHAR Sbz1;
USHORT AclSize;
USHORT AceCount;
USHORT Sbz2;
} ACL;
Члены
AclRevision
Уровень редакции ACL.
Microsoft Windows NT 4.0 и более ранних версий: это значение должно быть ACL_REVISION.
Microsoft Windows 2000 и более поздних версий: Это значение может быть ACL_REVISION или ACL_REVISION_DS. Он должен быть ACL_REVISION_DS, если ACL содержит ACE для конкретного объекта.
Sbz1
Нулевой байт заполнения, который выравнивает элемент AclRevision по 16-разрядной границе.
AclSize
Размер ACL в байтах. Это значение включает как структуру ACL, так и все ACE.
AceCount
Количество ACE, хранящихся в списке ACL.
Sbz2
Два нулевых байта заполнения, которые выравнивают структуру ACL по 32-разрядной границе.
Комментарии
ACL включает последовательный список из нуля или нескольких ACE. Отдельные ACE в списке ACL нумеруются от 0 до n, где n+1 — количество ACE в списке ACL. При редактировании ACL драйвер ссылается на ACE в ACL по его индексу.
Существует два типа ACL: дискреционный и системный.
Дискреционный ACL (DACL) контролируется владельцем объекта или любым лицом, которому предоставляется WRITE_DAC доступ к объекту. Он указывает доступ конкретных пользователей и групп к объекту. Например, владелец файла может использовать DACL для управления тем, какие пользователи и группы могут и не могут иметь доступ к файлу.
Объект также может иметь связанные с ним сведения о безопасности на уровне системы в виде системного ACL (SACL), управляемого системным администратором. SACL может позволить системным администраторам проводить аудит любых попыток получения доступа к объекту.
В настоящее время определены три структуры ACE:
attribute | Описание |
---|---|
ACCESS_ALLOWED_ACE | Предоставляет пользователю или группе указанные права. Этот ACE хранится в DACL. |
ACCESS_DENIED_ACE | Запрещает указанные права пользователю или группе. Этот ACE хранится в DACL. |
SYSTEM_AUDIT_ACE | Указывает, какие типы доступа будут вызывать аудиты на уровне системы. Этот ACE хранится в saCL. |
Четвертая структура ACE, SYSTEM_ALARM_ACE, в настоящее время не поддерживается.
Структура ACL должна рассматриваться как непрозрачная, и драйверы не должны пытаться работать с ее членами напрямую. Чтобы обеспечить семантическую правильность списков управления доступом, драйверы могут использовать функции, перечисленные в разделе См. также, для создания списков управления доступом и управления ими.
Структуры ACL и ACE должны быть выровнены по 32-разрядным границам.
Требования
Требование | Значение |
---|---|
Заголовок | wdm.h (включая Wdm.h) |