Функция AddMandatoryAce (securitybaseapi.h)

Функция AddMandatoryAce добавляет SYSTEM_MANDATORY_LABEL_ACEзапись управления доступом (ACE) в указанный системный список управления доступом (SACL).

Синтаксис

BOOL AddMandatoryAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AceFlags,
  [in]      DWORD MandatoryPolicy,
  [in]      PSID  pLabelSid
);

Параметры

[in, out] pAcl

Указатель на saCL. Эта функция добавляет обязательный элемент управления доступом в конец этого saCL. ACE имеет форму структуры SYSTEM_MANDATORY_LABEL_ACE .

[in] dwAceRevision

Уровень редакции изменяемого списка saCL. Это значение может быть одним из следующих значений.

Значение Значение
ACL_REVISION
SaCL не содержит ACE для конкретных объектов.
ACL_REVISION_DS
SaCL содержит объекты ACE.

[in] AceFlags

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

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

Значение Значение
OBJECT_INHERIT_ACE
0x1
ACE наследуется неконтейнерными объектами.
CONTAINER_INHERIT_ACE
0x2
ACE наследуется объектами контейнера.
NO_PROPAGATE_INHERIT_ACE
0x4
Биты OBJECT_INHERIT_ACE и CONTAINER_INHERIT_ACE не распространяются на унаследованный ACE.
INHERIT_ONLY_ACE
0x8
ACE не применяется к объекту, которому назначен saCL, но ACE может быть унаследован дочерними объектами.
INHERITED_ACE
0x10
ACE наследуется. Операции, которые изменяют безопасность в дереве объектов, могут изменять унаследованные ACE без изменения ACE, которые были непосредственно применены к объекту.

[in] MandatoryPolicy

Политика доступа для субъектов с обязательным уровнем целостности ниже, чем у объекта, связанного с saCL, который содержит этот ACE.

Значение Значение
SYSTEM_MANDATORY_LABEL_NO_WRITE_UP
0x1
Субъект с более низким обязательным уровнем, чем объект, не может выполнить запись в объект .
SYSTEM_MANDATORY_LABEL_NO_READ_UP
0x2
Субъект с более низким обязательным уровнем, чем объект, не может считать объект.
SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP
0x4
Субъект с более низким обязательным уровнем, чем объект, не может выполнить объект .

[in] pLabelSid

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

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

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

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

Возвращаемый код/значение Описание
ERROR_ALLOTTED_SPACE_EXCEEDED
0x540
Новый ACE не помещается в буфер pACL .

Комментарии

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0600 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.

Требования

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

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

SYSTEM_MANDATORY_LABEL_ACE