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

Функция AddAccessAllowedAce добавляет запись управления доступом (ACE) в список управления доступом (ACL). Доступ предоставляется к указанному идентификатору безопасности (SID).

Чтобы определить, может ли новый ACE наследоваться дочерними объектами, используйте функцию AddAccessAllowedAceEx .

Синтаксис

BOOL AddAccessAllowedAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AccessMask,
  [in]      PSID  pSid
);

Параметры

[in, out] pAcl

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

[in] dwAceRevision

Указывает уровень редакции изменяемого списка управления.

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

[in] AccessMask

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

[in] pSid

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

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

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

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

Код возврата Описание
ERROR_ALLOTTED_SPACE_EXCEEDED
Новый ACE не помещается в список ACL. Требуется больший буфер ACL.
ERROR_INVALID_ACL
Указанный список ACL неправильно сформирован.
ERROR_INVALID_SID
Указанный идентификатор безопасности не является структурно допустимым.
ERROR_REVISION_MISMATCH
Указанная редакция не известна или несовместима с редакцией ACL.
ERROR_SUCCESS
ACE успешно добавлен.

Комментарии

Добавление ACE с разрешенным доступом к ACL является наиболее распространенной формой изменения ACL.

Функции AddAccessAllowedAce и AddAccessDeniedAce добавляют новый ACE в конец списка ACE для ACL. Эти функции не размещают новый ACE автоматически в правильном каноническом порядке. Вызывающий объект отвечает за то, чтобы список управления доступом был в каноническом порядке путем добавления ACE в правильной последовательности.

Структура ACE_HEADER , помещенная в ACE функцией AddAccessAllowedAce , указывает тип и размер, но не предоставляет наследования и флаги ACE.

Примеры

Пример использования этой функции см. в разделе Запуск интерактивного клиентского процесса.

Требования

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

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

ACCESS_ALLOWED_ACE

ACE_HEADER

AddAccessAllowedAceEx

AddAccessDeniedAce

AddAce

AddAuditAccessAce

DeleteAce

GetAce

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

Функции контроль доступа низкого уровня