Функция TreeResetNamedSecurityInfoA (aclapi.h)
Эта версия этой функции не поддерживается. Поддерживается версия расширенных символов этой функции TreeResetNamedSecurityInfoW.
Синтаксис
DWORD TreeResetNamedSecurityInfoA(
[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] BOOL KeepExplicit,
[in, optional] FN_PROGRESS fnProgress,
[in] PROG_INVOKE_SETTING ProgressInvokeSetting,
[in, optional] PVOID Args
);
Параметры
[in] pObjectName
Указатель на строку, завершающуюся нулевым значением, которая указывает имя объекта корневого узла для объектов, которые должны получать обновленные сведения о безопасности. Поддерживаемые объекты — это разделы реестра и объекты файлов. Описание форматов строк для различных типов объектов см. в разделе 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
Указатель на структуру SID , идентифицирующая основную группу объекта. Параметр SecurityInfo должен содержать флаг GROUP_SECURITY_INFORMATION. Чтобы задать группу, вызывающий объект должен иметь WRITE_OWNER доступ к каждому объекту, включая корневой объект. Если вы не задаете идентификатор безопасности основной группы, этот параметр может иметь значение NULL.
[in, optional] pDacl
Указатель на структуру списка управления доступом (ACL), представляющую новый DACL для сбрасываемых объектов. Параметр SecurityInfo должен содержать флаг DACL_SECURITY_INFORMATION. Вызывающий объект должен иметь READ_CONTROL и WRITE_DAC доступ к каждому объекту, включая корневой объект. Если вы не задаете DACL, этот параметр может иметь значение NULL.
[in, optional] pSacl
Указатель на структуру ACL, представляющую новый saCL для сброшенных объектов. Параметр SecurityInfo должен содержать любой из следующих флагов: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION или BACKUP_SECURITY_INFORMATION. Если параметр SACL_SECURITY_INFORMATION или SCOPE_SECURITY_INFORMATION, у вызывающего объекта должна быть включена SE_SECURITY_NAME привилегия. Если вы не задаете SACL, этот параметр может иметь значение NULL.
[in] KeepExplicit
Логическое значение, определяющее, сохраняются или удаляются явно определенные ACE для вложенного дерева. Если параметр KeepExplicit имеет значение TRUE, то явно определенные ACE сохраняются для каждого поддеревого DACL и SACL, а наследуемые ACE заменяются наследуемыми ACE из pDacl и pSacl. Если параметр KeepExplicit имеет значение FALSE, то явно определенные ACE для каждого поддеревого DACL и SACL удаляются до того, как наследуемые ACE будут заменены на унаследованные ACE из pDacl и pSacl.
[in, optional] fnProgress
Указатель на функцию, используемую для отслеживания хода выполнения функции TreeResetNamedSecurityInfo . Прототип функции progress:
#include <windows.h>
#include <Aclapi.h>
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
);
Функция progress предоставляет вызывающей объекту сведения о ходе выполнения и об ошибке при обработке узлов. Вызывающий объект указывает функцию хода выполнения в fnProgress, а во время операции дерева TreeResetNamedSecurityInfo передает имя последнего обработанного объекта, состояние ошибки этой операции и текущее значение PROG_INVOKE_SETTING. Вызывающий объект может изменить значение PROG_INVOKE_SETTING с помощью pInvokeSetting.
Если функция хода выполнения не используется, задайте для этого параметра значение NULL.
[in] ProgressInvokeSetting
Значение перечисления PROG_INVOKE_SETTING , указывающее начальное значение для функции хода выполнения.
[in, optional] Args
Указатель на VOID для аргументов функции хода выполнения, заданных вызывающим объектом.
Возвращаемое значение
Если функция завершается успешно, функция возвращает ERROR_SUCCESS.
Если функция завершается сбоем, она возвращает код ошибки, определенный в WinError.h.
Комментарии
Эта функция не поддерживает задание владельца, группы, DACL или SACL.
Если вызывающий объект не содержит необходимых привилегий и разрешений для поддержки запрошенных обновлений владельца, группы, DACL и SACL, ни одно из обновлений не выполняется.
Эта функция аналогична функции TreeSetNamedSecurityInfo :
- Если параметр KeepExplicitобъекта TreeResetNamedSecurityInfo имеет значение TRUE, то функция эквивалентна TreeSetNamedSecurityInfo , а параметру dwAction присвоено значение TREE_SEC_INFO_RESET_KEEP_EXPLICIT.
- Если параметр KeepExplicitобъекта TreeResetNamedSecurityInfo имеет значение FALSE, то функция эквивалентна TreeSetNamedSecurityInfo , а параметру dwAction присвоено значение TREE_SEC_INFO_RESET.
Примечание
Заголовок aclapi.h определяет TreeResetNamedSecurityInfo в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | aclapi.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |