Функция 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
Функция SetEntriesInAcl помещает все новые службы управления доступом, запрещенные доступом, в начале списка acEs для нового ACL. Эта функция помещает все новые интерфейсы управления доступом непосредственно перед существующими доступом управляемыми службами управления доступом.
Для SACL элемент grfAccessMode структуры EXPLICIT_ACCESS может указать следующие значения:
- REVOKE_ACCESS
- SET_AUDIT_FAILURE
- SET_AUDIT_SUCCESS
Функция setEntriesInAcl
Примеры
Пример использования этой функции см. в разделе Изменение списков управления доступом объекта или создание дескриптора безопасности для нового объекта или получение права владения объектами.
Заметка
Заголовок aclapi.h определяет SetEntriesInAcl как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2003 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | aclapi.h |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |
См. также