Функция 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. Ниже приведены возможные значения ошибок.
Код возврата | Описание |
---|---|
|
Новый ACE не помещается в список ACL. Требуется больший буфер ACL. |
|
Указанный список ACL неправильно сформирован. |
|
Указанный идентификатор безопасности не является структурно допустимым. |
|
Указанная редакция не известна или несовместима с редакцией ACL. |
|
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 |