Функция AddConditionalAce (winbase.h)

Функция AddConditionalAce добавляет запись управления условным доступом (ACE) в указанный список управления доступом (ACL). Условный ACE указывает логическое условие, которое вычисляется во время проверок доступа.

Синтаксис

BOOL AddConditionalAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  AceFlags,
  [in]      UCHAR  AceType,
  [in]      DWORD  AccessMask,
  [in]      PSID   pSid,
  [in]      PWCHAR ConditionStr,
  [out]     DWORD  *ReturnLength
);

Параметры

[in, out] pAcl

Указатель на список ACL. Эта функция добавляет ACE в этот список ACL.

Значение этого параметра не может иметь значение NULL.

[in] dwAceRevision

Указывает уровень редакции изменяемого списка ACL. Это значение может быть ACL_REVISION или ACL_REVISION_DS. Используйте ACL_REVISION_DS, если ACL содержит ACL для конкретных объектов ACE.

[in] AceFlags

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

Значение Значение
CONTAINER_INHERIT_ACE
ACE наследуется объектами контейнера.
INHERIT_ONLY_ACE
ACE не применяется к объекту, которому назначен ACL, но он может быть унаследован дочерними объектами.
INHERITED_ACE
Указывает наследуемый элемент ACE. Этот флаг позволяет операциям, изменяющим безопасность в дереве объектов, изменять унаследованные ACE, не изменяя ACE, которые были непосредственно применены к объекту.
NO_PROPAGATE_INHERIT_ACE
Биты OBJECT_INHERIT_ACE и CONTAINER_INHERIT_ACE не распространяются на унаследованный ACE.
OBJECT_INHERIT_ACE
ACE наследуется неконтейнерными объектами.

[in] AceType

Тип ACE.

Это может быть одно из следующих значений.

Значение Значение
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
ACE обратного вызова с разрешенным доступом, использующим структуру ACCESS_ALLOWED_CALLBACK_ACE .
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
ACE обратного вызова с отказом в доступе, использующим структуру ACCESS_DENIED_CALLBACK_ACE .
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
ACE обратного вызова аудита системы, использующий структуру SYSTEM_AUDIT_CALLBACK_ACE .

[in] AccessMask

Указывает маску прав доступа, предоставляемых указанному идентификатору безопасности.

[in] pSid

Указатель на идентификатор безопасности, представляющий доступ к учетной записи пользователя, группы или учетной записи для входа.

[in] ConditionStr

Строка, указывающая условный оператор, который будет вычисляться для ACE.

[out] ReturnLength

Размер списка ACL в байтах. Если буфер, заданный параметром pACL , не имеет достаточного размера, значение этого параметра является обязательным.

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

Если функция завершается успешно, она возвращает значение TRUE.

Если функция завершается сбоем, она возвращает значение FALSE. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError. Ниже приведены возможные значения ошибок.

Код возврата Описание
ERROR_INSUFFICIENT_BUFFER
Новый ACE не помещается в буфер pACL .

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll