Функция BuildExplicitAccessWithNameA (aclapi.h)

Функция BuildExplicitAccessWithName инициализирует структуру EXPLICIT_ACCESS с данными, указанными вызывающим объектом. Доверенное лицо идентифицируется строкой имени.

Синтаксис

void BuildExplicitAccessWithNameA(
  [in, out]      PEXPLICIT_ACCESS_A pExplicitAccess,
  [in, optional] LPSTR              pTrusteeName,
  [in]           DWORD              AccessPermissions,
  [in]           ACCESS_MODE        AccessMode,
  [in]           DWORD              Inheritance
);

Параметры

[in, out] pExplicitAccess

Указатель на инициализируемую EXPLICIT_ACCESS структуру. Функция BuildExplicitAccessWithName не выделяет память. Этот параметр не может иметь значение NULL.

[in, optional] pTrusteeName

Указатель на строку, завершающуюся значением NULL, которая содержит имя доверенного лица для элемента ptstrName структуры TRUSTEE . Функция BuildExplicitAccessWithName задает другие члены структуры TRUSTEE следующим образом.

Значение Значение
pMultipleTrustee
NULL
MultipleTrusteeOperation
NO_MULTIPLE_TRUSTEE
Форма доверенного лица
TRUSTEE_IS_NAME
TrusteeType
TRUSTEE_IS_UNKNOWN

[in] AccessPermissions

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

[in] AccessMode

Задает режим доступа для элемента grfAccessMode структуры EXPLICIT_ACCESS . Режим доступа указывает, разрешает ли запись управления доступом (ACE) или разрешает, запрещает или проверяет указанные права. Для списка управления доступом на уровне пользователей (DACL) этот параметр может быть одним из значений перечисления ACCESS_MODE . Для системного списка управления доступом (SACL) этот параметр может быть сочетанием ACCESS_MODE значений.

[in] Inheritance

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

Значение Значение
CONTAINER_INHERIT_ACE
Другие контейнеры, содержащиеся в первичном объекте, наследуют ACE.
INHERIT_ONLY_ACE
ACE не применяется к первичному объекту, к которому присоединен ACL, но объекты, содержащиеся в первичном объекте, наследуют ACE.
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 и INHERIT_ONLY_ACE .
SUB_OBJECTS_ONLY_INHERIT
Неконтейнерные объекты, содержащиеся в первичном объекте, наследуют ACE. Этот флаг соответствует сочетанию флагов OBJECT_INHERIT_ACE и INHERIT_ONLY_ACE .

Возвращаемое значение

None

Remarks

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header aclapi.h
Библиотека Advapi32.lib
DLL Advapi32.dll

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

ACE

ACL

Обзор контроль доступа

Базовые функции контроль доступа

EXPLICIT_ACCESS

GetExplicitEntriesFromAcl

SetEntriesInAcl

ПОПЕЧИТЕЛЯ