структура ACCESS_ALLOWED_CALLBACK_OBJECT_ACE (winnt.h)
Структура ACCESS_ALLOWED_CALLBACK_OBJECT_ACE определяет запись управления доступом (ACE), которая управляет разрешенным доступом к объекту, набору свойств или свойству. ACE содержит набор прав доступа, GUID , определяющий тип объекта, и идентификатор безопасности (SID), определяющий доверенного лица , которому система предоставит доступ. ACE также содержит GUID и набор флагов, управляющих наследованием ACE дочерними объектами.
При вызове функции AuthzAccessCheck каждая структура ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, содержащаяся в DACL структуры SECURITY_DESCRIPTOR, передаваемой через указатель на функцию AuthzAccessCheck, вызывает вызов определяемой приложением функции AuthzAccessCheckCallback, в которой в параметре pAce передается указатель на найденную ACCESS_ALLOWED_CALLBACK_OBJECT_ACE структуру.
Синтаксис
typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
Члены
Header
ACE_HEADER структура, указывающая размер и тип ACE. Он также содержит флаги, управляющие наследованием ACE дочерними объектами. Элемент AceType структуры ACE_HEADER должен иметь значение ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE, а для элемента AceSize — общее количество байтов, выделенных для структуры ACCESS_ALLOWED_CALLBACK_OBJECT_ACE .
Mask
ACCESS_MASK, указывающий права доступа, которые система предоставит доверенному лицу.
Flags
Набор битовых флагов, указывающих, присутствуют ли члены ObjectType и InheritedObjectType . Этот параметр может иметь одно или несколько из следующих значений.
ObjectType
Этот элемент существует только в том случае, если бит ACE_OBJECT_TYPE_PRESENT задан в элементе Flags . В противном случае элемент InheritedObjectType следует сразу после элемента Flags .
Если этот элемент существует, это структура GUID , которая идентифицирует набор свойств, свойство, расширенное право или тип дочернего объекта. Назначение этого GUID зависит от прав доступа, указанных в элементе Mask .
InheritedObjectType
Этот элемент существует только в том случае, если бит ACE_INHERITED_OBJECT_TYPE_PRESENT задан в элементе Flags .
Если этот элемент существует, это структура GUID , которая определяет тип дочернего объекта, который может наследовать ACE. Наследование также контролируется флагами наследования в ACE_HEADER, а также любой защитой от наследования дочерних объектов.
Смещение этого элемента может отличаться. Если элемент Flags не содержит флаг ACE_OBJECT_TYPE_PRESENT, элемент InheritedObjectType начинается со смещения, указанного элементом ObjectType .
SidStart
Первое DWORD идентификатора безопасности доверенного лица. Оставшиеся байты идентификатора безопасности хранятся в непрерывной памяти после элемента SidStart . Этот идентификатор безопасности можно добавить с данными приложения.
Комментарии
Если идентификатор GUID ObjectType и InheritedObjectType не указан, структура ACCESS_ALLOWED_CALLBACK_OBJECT_ACE имеет ту же семантику, что и структура ACCESS_ALLOWED_CALLBACK_ACE. В этом случае используйте структуру ACCESS_ALLOWED_CALLBACK_ACE , так как она меньше и эффективнее.
ACL, содержащий ACCESS_ALLOWED_CALLBACK_OBJECT_ACE , должен указать номер редакции ACL_REVISION_DS в заголовке ACL .
Права доступа, указанные участником Mask , предоставляются любому доверенному лицу , обладающему включенным идентификатором безопасности, который соответствует идентификатору безопасности, хранящейся в элементе SidStart .
При создании структуры ACCESS_ALLOWED_CALLBACK_OBJECT_ACE необходимо выделить достаточно памяти для размещения структур GUID в элементах ObjectType и InheritedObjectType , если один или оба из них существуют, а также для размещения полного идентификатора безопасности доверенного лица в элементе SidStart и последующей за ним непрерывной памяти.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | winnt.h (включая Windows.h) |