Функция TreeSetNamedSecurityInfoA (aclapi.h)
Эта версия этой функции не поддерживается. Поддерживается широкая версия этой функции, TreeSetNamedSecurityInfoW.
Синтаксис
DWORD TreeSetNamedSecurityInfoA(
[in] LPSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID pOwner,
[in, optional] PSID pGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl,
[in] DWORD dwAction,
[in] FN_PROGRESS fnProgress,
[in] PROG_INVOKE_SETTING ProgressInvokeSetting,
[in, optional] PVOID Args
);
Параметры
[in] pObjectName
Указатель на строку null-terminated, указывающую имя объекта корневого узла для объектов, которые должны получать обновленные сведения о безопасности. Поддерживаемые объекты — это разделы реестра и объекты файлов. Описание строковых форматов для различных типов объектов см. в SE_OBJECT_TYPE.
[in] ObjectType
Значение перечисления SE_OBJECT_TYPE, указывающее тип объекта, именованного параметром pObjectName. Поддерживаемые значения : SE_REGISTRY_KEY и SE_FILE_OBJECT для разделов реестра и объектов файлов соответственно.
[in] SecurityInfo
Набор битовых флагов, указывающий тип заданной информации безопасности. Этот параметр может быть сочетанием SECURITY_INFORMATION битовых флагов.
[in, optional] pOwner
Указатель на структуру sid, которая определяет владельца объекта. Идентификатор безопасности должен быть идентификатором безопасности, который может быть назначен в качестве идентификатора безопасности дескриптора безопасности. Параметр SecurityInfo должен содержать флаг OWNER_SECURITY_INFORMATION. Чтобы задать владельца, вызывающий объект должен иметь WRITE_OWNER доступ к каждому объекту, включая корневой объект. Если идентификатор безопасности владельца не задан, этот параметр можно null.
[in, optional] pGroup
Указатель на структуру идентификатора безопасности
[in, optional] pDacl
Указатель на структуру списка управления доступом (ACL), представляющую новый DACL для сбрасываемых объектов. Параметр SecurityInfo
[in, optional] pSacl
Указатель на структуру ACL, представляющую новый saCL для сбрасываемых объектов. Параметр SecurityInfo
[in] dwAction
Указывает поведение этой функции. Это значение должно иметь одно из следующих значений, определенное в AccCtrl.h.
[in] fnProgress
Указатель на функцию, используемую для отслеживания хода выполнения функции TreeSetNamedSecurityInfo. Прототип функции хода выполнения:
#include <windows.h>
#include <Aclapi.h>
#pragma comment(lib, "Advapi32.lib")
typedef VOID (*FN_PROGRESS) (
IN LPWSTR pObjectName, // Name of object just processed
IN DWORD Status, // Status of operation on object
IN OUT PPROG_INVOKE_SETTING
pInvokeSetting, // When to set
IN PVOID Args, // Caller specific data
IN BOOL SecuritySet // Whether security was set
);
Функция хода выполнения предоставляет вызывающую функцию сведения о ходе выполнения и ошибке при обработке узлов. Вызывающий объект указывает функцию хода выполнения в fnProgress, а во время операции дерева TreeSetNamedSecurityInfo передает имя последнего обработанного объекта, состояние ошибки этой операции и текущее значение PROG_INVOKE_SETTING. Вызывающий объект может изменить значение PROG_INVOKE_SETTING с помощью pInvokeSetting.
Если функция хода выполнения не используется, задайте для этого параметра значение NULL.
[in] ProgressInvokeSetting
Значение перечисления PROG_INVOKE_SETTING, указывающее начальный параметр функции хода выполнения.
[in, optional] Args
Указатель на VOID для аргументов функции хода выполнения, указанных вызывающим элементом.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает ERROR_SUCCESS.
Если функция завершается ошибкой, она возвращает код ошибки, определенный в WinError.h.
Замечания
Настройка null владельца, группы, DACL или SACL не поддерживается этой функцией.
Если вызывающий объект не содержит надлежащих привилегий и разрешений для поддержки запрошенного владельца, группы, DACL и saCL, то ни одно из обновлений не выполняется.
Эта функция предоставляет те же функции, что и функция SetNamedSecurityInfo, если для параметра dwAction
Эта функция аналогична функции TreeResetNamedSecurityInfo:
- Если параметр
dwAction TreeSetNamedSecurityInfo имеет значение TREE_SEC_INFO_RESET_KEEP_EXPLICIT, то функция эквивалентнаTreeResetNamedSecurityInfo с параметром KeepExplicit значениеTRUE . - Если для параметра dwActionTreeSetNamedSecurityInfo TREE_SEC_INFO_RESET задано значение TREE_SEC_INFO_RESET, то функция эквивалентна TreeResetNamedSecurityInfo с параметром KeepExplicit значение FALSE.
Заметка
Заголовок aclapi.h определяет TreeSetNamedSecurityInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | aclapi.h |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |