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


структура 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, чтобы удалить все существующие acES для указанного доверенного лица.

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

Структура ДОВЕРЕННОго лица, которая определяет пользователя, группу или программу (например, службу 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

ДОВЕРЕННЫЙ