структура ACCESS_DENIED_OBJECT_ACE (winnt.h)

Структура ACCESS_DENIED_OBJECT_ACE определяет запись управления доступом (ACE), которая управляет запрещенным доступом к объекту, набору свойств или свойству. ACE содержит набор прав доступа, идентификатор GUID GUID, определяющий тип объекта, и идентификатор безопасности (SID), определяющий доверенного лица , которому система отклонит доступ. ACE также содержит GUID и набор флагов, которые управляют наследованием ACE дочерними объектами.

Синтаксис

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 и InheritedObjectType. Этот параметр может быть одним или несколькими из следующих значений.

Ценность Значение
0
Отсутствуют ни ObjectType, ни InheritedObjectType. Элемент SidStart следует сразу после элемента флагов .
ACE_OBJECT_TYPE_PRESENT
ObjectType присутствует и содержит GUID.

Если это значение не указано, элемент InheritedObjectType следует сразу после элемента Flags.

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType присутствует и содержит GUID.

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

ObjectType

Этот элемент существует только в том случае, если ACE_OBJECT_TYPE_PRESENT бит установлен в элементе Flags. В противном случае элемент следуют InheritedObjectType сразу после флагов.

Если этот элемент существует, это структура guid , которая определяет набор свойств, свойство, расширенное право или тип дочернего объекта. Назначение этого GUID зависит от прав доступа, указанных в элементе Mask.

Ценность Значение
ADS_RIGHT_DS_CONTROL_ACCESS
Идентификатор GUID ObjectTypeGUID определяет право расширенного доступа.
ADS_RIGHT_DS_CREATE_CHILD
Идентификатор GUID ObjectTypeопределяет тип дочернего объекта. ACE контролирует право доверенного лица на создание этого типа дочернего объекта.
ADS_RIGHT_DS_READ_PROP
Идентификатор GUID ObjectTypeGUID определяет набор свойств или свойство объекта. ACE контролирует право доверенного лица читать свойство или набор свойств.
ADS_RIGHT_DS_WRITE_PROP
Идентификатор GUID ObjectTypeGUID определяет набор свойств или свойство объекта. ACE контролирует право доверенного лица на запись свойства или набора свойств.
ADS_RIGHT_DS_SELF
ObjectTypeGUID определяет проверенную запись.

InheritedObjectType

Этот элемент существует только в том случае, если ACE_INHERITED_OBJECT_TYPE_PRESENT бит задан в элементе Flags.

Если этот элемент существует, это структура GUID GUID, которая определяет тип дочернего объекта, который может наследовать ACE. Наследование также контролируется флагами наследования в ACE_HEADER, а также любой защитой от наследования, размещенной на дочерних объектах.

Смещение этого элемента может отличаться. Если элемент флагов не содержит флаг ACE_OBJECT_TYPE_PRESENT, элемент InheritedObjectType начинается со смещения, указанного элементом ObjectType .

SidStart

Указывает первый DWORD идентификатора безопасности, который идентифицирует доверенного лица, для которого права доступа запрещены. Оставшиеся байты идентификатора безопасности хранятся в непрерывной памяти после члена SidStart. Этот идентификатор безопасности можно добавить с данными приложения.

Смещение этого элемента может отличаться. Если элемент флагов равен нулю, элемент SidStart начинается с смещения, указанного элементом ObjectType. Если флагов содержит только один флаг (ACE_OBJECT_TYPE_PRESENT или ACE_INHERITED_OBJECT_TYPE_PRESENT), элемент SidStart начинается со смещения, указанного элементом Наследуемого Объекта.

Замечания

Если ни ObjectType, ни InheritedObjectTypeGUID, структура ACCESS_DENIED_OBJECT_ACE имеет ту же семантику, что и для структуры ACCESS_DENIED_ACE. В этом случае используйте структуру ACCESS_DENIED_ACE, так как она меньше и эффективнее.

ACL, содержащий ACCESS_DENIED_OBJECT_ACE, должен указать номер ACL_REVISION_DS редакции в заголовке ACL.

Права доступа, указанные членом маски , запрещены любому доверенному лицу , который имеет включенный идентификатор безопасности, соответствующий идентификатору безопасности, хранящейся в члене SidStart.

Структуру 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)

См. также

ACE

ACL

AddAccessAllowedObjectAce

GUID

SID