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

Функция AddResourceAttributeAce добавляет SYSTEM_RESOURCE_ATTRIBUTE_ACEзапись управления доступом (ACE) в конец списка управления доступом системы (SACL). Структура SYSTEM_RESOURCE_ATTRIBUTE_ACE указывает имя атрибута и упорядоченный по значению список элементов, связанных с ресурсом и потенциально используемых во время проверок доступа. Набор стандартных прав доступа определяется в разделе Стандартные права доступа .

Синтаксис

BOOL AddResourceAttributeAce(
  [in, out] PACL                                   pAcl,
  [in]      DWORD                                  dwAceRevision,
  [in]      DWORD                                  AceFlags,
  [in]      DWORD                                  AccessMask,
  [in]      PSID                                   pSid,
  [in]      PCLAIM_SECURITY_ATTRIBUTES_INFORMATION pAttributeInfo,
  [out]     PDWORD                                 pReturnLength
);

Параметры

[in, out] pAcl

Указатель на список управления доступом (ACL). Эта функция добавляет ACE в этот список ACL. Значение этого параметра не может иметь значение NULL. ACE имеет форму структуры SYSTEM_RESOURCE_ATTRIBUTE_ACE .

[in] dwAceRevision

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

[in] AceFlags

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

Для согласованности с пользовательским интерфейсом Windows 8 Расширенные разрешения на файлы приложения должны указывать флаги CONTAINER_INHERIT_ACE и OBJECT_INHERIT_ACE в параметре AceFlags.

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

Значение Значение
CONTAINER_INHERIT_ACE
2 (0x2)
ACE наследуется объектами контейнера.
INHERIT_ONLY_ACE
8 (0x8)
ACE не применяется к объекту, которому назначен ACE, но может наследоваться дочерними объектами.
INHERITED_ACE
16 (0x10)
Указывает наследуемое ACE. Этот флаг позволяет операциям, которые изменяют безопасность в дереве объектов, изменять унаследованные ACE, не изменяя ACE, которые были непосредственно применены к объекту.
NO_PROPAGATE_INHERIT_ACE
4 (0x4)
Биты OBJECT_INHERIT_ACE и CONTAINER_INHERIT_ACE не распространяются на унаследованный элемент ACE.
OBJECT_INHERIT_ACE
1 (0x1)
ACE наследуется неконтейнерными объектами.

[in] AccessMask

Значение должно быть равно нулю для Windows 8 и Windows Server 2012.

[in] pSid

Для Windows 8 и Windows Server 2012 должен быть ИД безопасности всех пользователей (S-1-1-0).

[in] pAttributeInfo

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

[out] pReturnLength

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

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

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

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

Требования

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

См. также

Стандартные права доступа