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


Функция SetEntriesInAclA (aclapi.h)

Функция SetEntriesInAcl создает новый список управления доступом (ACL), объединяя новые сведения об управлении доступом или аудите в существующую структуру ACL.

Синтаксис

DWORD SetEntriesInAclA(
  [in]           ULONG              cCountOfExplicitEntries,
  [in, optional] PEXPLICIT_ACCESS_A pListOfExplicitEntries,
  [in, optional] PACL               OldAcl,
  [out]          PACL               *NewAcl
);

Параметры

[in] cCountOfExplicitEntries

Количество структур EXPLICIT_ACCESS в массиве pListOfExplicitEntries.

[in, optional] pListOfExplicitEntries

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

[in, optional] OldAcl

Указатель на существующий список ACL. Этот параметр может быть null, в этом случае функция создает новый список ACL на основе записей EXPLICIT_ACCESS.

[out] NewAcl

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

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

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

Если функция завершается ошибкой, она возвращает ненулевой код ошибки, определенный в WinError.h.

Замечания

Каждая запись в массиве структур EXPLICIT_ACCESS указывает сведения об управлении доступом или аудите для указанного доверенного лица. Доверенное лицо может быть пользователем, группой или другим идентификатором безопасности (SID), например идентификатором входа или типом входа (например, службой Windows или пакетным заданием). Для идентификации доверенного лица можно использовать имя или идентификатор безопасности.

Вы можете использовать функцию SetEntriesInAcl для изменения списка элементов управления доступом (ACEs) в списке управления доступом (DACL) или системном списке управления доступом (SACL). Обратите внимание, что SetEntriesInAcl не препятствует перемешивание сведений об управлении доступом и аудите в той же ACL; однако результирующий список ACL будет содержать бессмысленные записи.

Для DACL grfAccessMode член структуры EXPLICIT_ACCESS указывает, следует ли разрешать, запрещать или отменять права доступа для доверенного лица. Этот элемент может указать одно из следующих значений:

  • GRANT_ACCESS
  • SET_ACCESS
  • DENY_ACCESS
  • REVOKE_ACCESS
Сведения об этих значениях см. в ACCESS_MODE.

Функция SetEntriesInAcl помещает все новые службы управления доступом, запрещенные доступом, в начале списка acEs для нового ACL. Эта функция помещает все новые интерфейсы управления доступом непосредственно перед существующими доступом управляемыми службами управления доступом.

Для SACL элемент grfAccessMode структуры EXPLICIT_ACCESS может указать следующие значения:

  • REVOKE_ACCESS
  • SET_AUDIT_FAILURE
  • SET_AUDIT_SUCCESS
SET_AUDIT_FAILURE и SET_AUDIT_SUCCESS можно объединить. Сведения об этих значениях см. в ACCESS_MODE.

Функция setEntriesInAcl помещает новые интерфейсы управления доступом управления доступом к системе в начале списка acEs для нового списка ACL.

Примеры

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

Заметка

Заголовок aclapi.h определяет SetEntriesInAcl как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка aclapi.h
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACL

управления доступом

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

EXPLICIT_ACCESS

LocalFree

SYSTEM_AUDIT_ACE