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


структура EXPLICIT_ACCESS_A (accctrl.h)

Структура EXPLICIT_ACCESS определяет сведения об управлении доступом для указанного доверенного лица. Функции управления доступом, такие как SetEntriesInAcl и GetExplicitEntriesFromAcl, используют эту структуру для описания сведений в записи управления доступом (ACE) списка управления доступом (ACL).

Синтаксис

typedef struct _EXPLICIT_ACCESS_A {
  DWORD       grfAccessPermissions;
  ACCESS_MODE grfAccessMode;
  DWORD       grfInheritance;
  TRUSTEE_A   Trustee;
} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA;

Члены

grfAccessPermissions

Набор битовых флагов, использующих формат ACCESS_MASK для указания прав доступа, которые ACE разрешает, запрещает или проверяет для доверенного лица. Функции, использующие структуру EXPLICIT_ACCESS , не преобразуют, не интерпретируют и не проверяют биты в этой маске.

grfAccessMode

Значение из перечисления ACCESS_MODE . Для списка управления доступом на уровне пользователей (DACL) этот флаг указывает, разрешает или запрещает ли ACL указанные права доступа. Для системного списка управления доступом (SACL) этот флаг указывает, создает ли ACL сообщения аудита для успешных попыток использования указанных прав доступа, неудачных попыток или и того, и другого. При изменении существующего списка ACL можно указать флаг REVOKE_ACCESS, чтобы удалить все существующие ACE для указанного доверенного лица.

grfInheritance

Набор битовых флагов, определяющий, могут ли другие контейнеры или объекты наследовать ACE от первичного объекта, к которому присоединен ACL. Значение этого элемента соответствует части наследования (байт нижнего порядка) элемента AceFlagsструктуры ACE_HEADER . Этот параметр можно NO_INHERITANCE, чтобы указать, что ACE не наследуется; Или может быть сочетанием следующих значений.

Значение Значение
CONTAINER_INHERIT_ACE
Другие контейнеры, содержащиеся в первичном объекте, наследуют ACE.
INHERIT_NO_PROPAGATE
Наследуйте, но не распространяете.
INHERIT_ONLY
Только наследовать.
INHERIT_ONLY_ACE
ACE не применяется к первичному объекту, к которому присоединен ACL, но объекты, содержащиеся в первичном объекте, наследуют ACE.
NO_INHERITANCE
Не наследуйте.
NO_PROPAGATE_INHERIT_ACE
Флаги OBJECT_INHERIT_ACE и CONTAINER_INHERIT_ACE не распространяются на унаследованный ACE.
OBJECT_INHERIT_ACE
Неконтейнерные объекты, содержащиеся в первичном объекте, наследуют ACE.
SUB_CONTAINERS_AND_OBJECTS_INHERIT
Контейнеры и неконтейнерные объекты, содержащиеся в первичном объекте, наследуют ACE. Этот флаг соответствует сочетанию флагов CONTAINER_INHERIT_ACE и OBJECT_INHERIT_ACE.
SUB_CONTAINERS_ONLY_INHERIT
Другие контейнеры, содержащиеся в первичном объекте, наследуют ACE. Этот флаг соответствует флагу CONTAINER_INHERIT_ACE.
SUB_OBJECTS_ONLY_INHERIT
Неконтейнерные объекты, содержащиеся в первичном объекте, наследуют ACE. Этот флаг соответствует флагу OBJECT_INHERIT_ACE.

Trustee

Структура TRUSTEE , которая идентифицирует пользователя, группу или программу (например, службу Windows), к которой применяется ACE.

Комментарии

Примечание

Заголовок accctrl.h определяет EXPLICIT_ACCESS_ в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть accctrl.h

См. также раздел

ACCESS_MASK

ACCESS_MODE

ACE

ACE_HEADER

ACL

BuildExplicitAccessWithName

BuildSecurityDescriptor

GetExplicitEntriesFromAcl

LookupSecurityDescriptorParts

SetEntriesInAcl

ПОПЕЧИТЕЛЯ