структура ACCESS_DENIED_OBJECT_ACE (winnt.h)
Структура ACCESS_DENIED_OBJECT_ACE определяет запись управления доступом (ACE), которая управляет запрещенным доступом к объекту, набору свойств или свойству. ACE содержит набор прав доступа, идентификатор GUID
Синтаксис
typedef struct _ACCESS_DENIED_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;
Члены
Header
ACE_HEADER структура, указывающая размер и тип ACE. Он содержит флаги, управляющие наследованием ACE дочерними объектами. элемент AceType структуры ACE_HEADER должен иметь значение ACCESS_DENIED_OBJECT_ACE_TYPE, а элемент AceSize AceSize должен иметь общее количество байтов, выделенных для структуры ACCESS_DENIED_OBJECT_ACE.
Mask
ACCESS_MASK, указывающий права доступа, которые система отклонит доверенному лицу.
Flags
Набор битовых флагов, указывающих, присутствуют ли элементы ObjectType
ObjectType
Этот элемент существует только в том случае, если ACE_OBJECT_TYPE_PRESENT бит установлен в элементе Flags. В противном случае элемент следуют
Если этот элемент существует, это структура guid
InheritedObjectType
Этот элемент существует только в том случае, если ACE_INHERITED_OBJECT_TYPE_PRESENT бит задан в элементе Flags.
Если этот элемент существует, это структура GUID GUID, которая определяет тип дочернего объекта, который может наследовать ACE. Наследование также контролируется флагами наследования в ACE_HEADER, а также любой защитой от наследования, размещенной на дочерних объектах.
Смещение этого элемента может отличаться. Если элемент флагов
SidStart
Указывает первый DWORD идентификатора безопасности, который идентифицирует доверенного лица, для которого права доступа запрещены. Оставшиеся байты идентификатора безопасности хранятся в непрерывной памяти после члена SidStart. Этот идентификатор безопасности можно добавить с данными приложения.
Смещение этого элемента может отличаться. Если элемент флагов равен нулю, элемент SidStart начинается с смещения, указанного элементом ObjectType. Если флагов
Замечания
Если ни ObjectType, ни InheritedObjectTypeGUID, структура ACCESS_DENIED_OBJECT_ACE имеет ту же семантику, что и для структуры ACCESS_DENIED_ACE. В этом случае используйте структуру ACCESS_DENIED_ACE, так как она меньше и эффективнее.
ACL, содержащий ACCESS_DENIED_OBJECT_ACE, должен указать номер ACL_REVISION_DS редакции в заголовке ACL.
Права доступа, указанные членом маски
Структуру ACCESS_DENIED_OBJECT_ACE можно создать в списке управления доступом (ACL) путем вызова функции AddAccessDeniedObjectAce. Если эта функция используется, правильное количество памяти, необходимое для размещения структур GUID в ObjectType и InheritedObjectType членов, если один или оба из них существуют, а также для размещения идентификатора безопасности доверенного лица автоматически выделяется. Кроме того, значения элементов Header.AceType и Header.AceSize задаются автоматически. При создании структуры ACCESS_DENIED_OBJECT_ACE за пределами ACL необходимо выделить достаточную память для размещения структур GUID в ObjectType и InheritedObjectType членов, если один или оба из них существуют, а также для размещения полного идентификатора безопасности доверенного лица в члене SidStart и непрерывной памяти после него. Кроме того, значения элементов Header.AceType и Header.AceSize должны быть явно заданы приложением.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
заголовка | winnt.h (включая Windows.h) |