Функция SetNamedSecurityInfoA (aclapi.h)
Функция SetNamedSecurityInfo задает указанные сведения о безопасности в дескрипторе безопасности указанного объекта. Вызывающий объект определяет объект по имени.
Синтаксис
DWORD SetNamedSecurityInfoA(
[in] LPSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID psidOwner,
[in, optional] PSID psidGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl
);
Параметры
[in] pObjectName
Указатель на строку null-terminated, указывающую имя объекта, для которого необходимо задать сведения о безопасности. Это может быть имя локального или удаленного файла или каталога в файловой системе NTFS, сетевой ресурс, раздел реестра, семафор, событие, мьютекс, сопоставление файлов или таймер ожидания.
Описание строковых форматов для различных типов объектов см. в SE_OBJECT_TYPE.
[in] ObjectType
Значение перечисления SE_OBJECT_TYPE, указывающее тип объекта, именованного параметром pObjectName.
[in] SecurityInfo
Набор битовых флагов, указывающий тип заданной информации безопасности. Этот параметр может быть сочетанием SECURITY_INFORMATION битовых флагов.
[in, optional] psidOwner
Указатель на структуру sid, которая определяет владельца объекта. Если вызывающий объект не имеет константы SeRestorePrivilege (см. константы привилегий), этот sid должен содержаться в маркере вызывающего объекта и иметь разрешение SE_GROUP_OWNER. Параметр SecurityInfo должен содержать флаг OWNER_SECURITY_INFORMATION. Чтобы задать владельца, вызывающий объект должен иметь WRITE_OWNER доступ к объекту или иметь SE_TAKE_OWNERSHIP_NAME привилегии. Если параметр владельца SIDне задан, этот параметр можно NULL.
[in, optional] psidGroup
Указатель на идентификатор безопасности, определяющий основную группу объекта. Параметр SecurityInfo должен содержать флаг GROUP_SECURITY_INFORMATION. Если вы не задаете идентификатор безопасности основной группы, этот параметр может быть NULL.
[in, optional] pDacl
Указатель на новый DACL для объекта. Параметр SecurityInfo
[in, optional] pSacl
Указатель на новый saCL для объекта. Параметр SecurityInfo
Если параметр SACL_SECURITY_INFORMATION или SCOPE_SECURITY_INFORMATION, вызывающий объект должен иметь SE_SECURITY_NAME привилегии. Если этот параметр не задан, этот параметр можно NULL.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает ERROR_SUCCESS.
Если функция завершается ошибкой, она возвращает ненулевой код ошибки, определенный в WinError.h.
Замечания
Если вы устанавливаете список управления доступом (DACL) или любые элементы в списке системного управления доступом (SACL) объекта, система автоматически распространяет все наследуемые записи управления доступом (ACEs) к существующим дочерним объектам, согласно правилам наследования.
Функцию setNamedSecurityInfo можно использовать
- Локальные или удаленные файлы или каталоги в NTFS
- Локальные или удаленные принтеры
- Локальные или удаленные службы Windows
- Сетевые ресурсы
- Разделы реестра
- Семафоры, события, мьютексы и ожидающие таймеры
- Объекты сопоставления файлов
- Объекты службы каталогов
Эта функция передает сведения в открытого текста. Данные, передаваемые этой функцией, подписываются, если только подпись не отключена для системы, но шифрование не выполняется.
При обновлении прав доступа к папке, указанной путем UNC, например \Test\TestFolder, исходный унаследованный ACE удаляется, а полный путь тома не включается.
Примеры
Пример использования этой функции см. в статье Изменение списков управления доступом объекта или получение права владения объектами.
Заметка
Заголовок aclapi.h определяет SetNamedSecurityInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2003 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | aclapi.h |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |
См. также