Функция SetUserObjectSecurity (winuser.h)

Функция SetUserObjectSecurity задает безопасность объекта пользователя. Это может быть, например, окно или беседа DDE.

Синтаксис

BOOL SetUserObjectSecurity(
  [in] HANDLE                hObj,
  [in] PSECURITY_INFORMATION pSIRequested,
  [in] PSECURITY_DESCRIPTOR  pSID
);

Параметры

[in] hObj

Дескриптор объекта пользователя, для которого заданы сведения о безопасности.

[in] pSIRequested

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

Значение Значение
DACL_SECURITY_INFORMATION
Задает дискреционный список управления доступом (DACL) объекта . Дескриптор, указанный hObj , должен иметь WRITE_DAC доступ, или вызывающий процесс должен быть владельцем объекта .
GROUP_SECURITY_INFORMATION
Задает идентификатор безопасности основной группы (SID) объекта .
OWNER_SECURITY_INFORMATION
Задает идентификатор безопасности владельца объекта. Дескриптор, указанный hObj , должен иметь WRITE_OWNER доступ, или вызывающий процесс должен быть владельцем объекта или иметь включенную привилегию SE_TAKE_OWNERSHIP_NAME.
SACL_SECURITY_INFORMATION
Задает системный список управления доступом (SACL) объекта . Дескриптор, указанный hObj, должен иметь ACCESS_SYSTEM_SECURITY доступ.

Получение доступа к ACCESS_SYSTEM_SECURITY

  1. Включите привилегию SE_SECURITY_NAME в текущем маркере доступа вызывающего объекта.
  2. Откройте дескриптор для доступа ACCESS_SYSTEM_SECURITY.
  3. Отключите привилегию.

[in] pSID

Указатель на структуру SECURITY_DESCRIPTOR , содержащую новые сведения о безопасности.

Этот буфер должен быть выровнен по 4-байтовой границе.

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

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

Если функция завершается сбоем, она возвращает ноль. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Функция SetUserObjectSecurity применяет изменения, указанные в дескрипторе безопасности , к дескриптору безопасности, назначенному объекту пользователя. Дескриптор безопасности объекта должен быть в само относительной форме. При необходимости эта функция выделяет дополнительную память для увеличения размера дескриптора безопасности.

Примеры

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

GetUserObjectSecurity

Низкоуровневые контроль доступа

Функции контроль доступа низкого уровня

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetFileSecurity

SetKernelObjectSecurity

SetPrivateObjectSecurity