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


Функция 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. Это значение может быть ACL_REVISION или ACL_REVISION_DS. Используйте ACL_REVISION_DS, если ACL содержит определенные объекты ACEs.

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

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

[in] pAttributeInfo

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

[out] pReturnLength

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 8 [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2012 [только классические приложения]
целевая платформа Виндоус
заголовка securitybaseapi.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

стандартных прав доступа