Función SetUserObjectSecurity (winuser.h)

La función SetUserObjectSecurity establece la seguridad de un objeto de usuario. Esto puede ser, por ejemplo, una ventana o una conversación DDE.

Sintaxis

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

Parámetros

[in] hObj

Identificador de un objeto de usuario para el que se establece la información de seguridad.

[in] pSIRequested

Puntero a un valor que indica los componentes del descriptor de seguridad que se van a establecer. Este parámetro puede ser una combinación de los valores siguientes.

Value Significado
DACL_SECURITY_INFORMATION
Establece la lista de control de acceso discrecional (DACL) del objeto . El identificador especificado por hObj debe tener WRITE_DAC acceso o el proceso de llamada debe ser el propietario del objeto.
GROUP_SECURITY_INFORMATION
Establece el identificador de seguridad del grupo principal (SID) del objeto.
OWNER_SECURITY_INFORMATION
Establece el SID del propietario del objeto. El identificador especificado por hObj debe tener WRITE_OWNER acceso, o el proceso de llamada debe ser el propietario del objeto o tener habilitado el privilegio SE_TAKE_OWNERSHIP_NAME.
SACL_SECURITY_INFORMATION
Establece la lista de control de acceso del sistema (SACL) del objeto . El identificador especificado por hObj debe tener acceso ACCESS_SYSTEM_SECURITY.

Para obtener acceso ACCESS_SYSTEM_SECURITY

  1. Habilite el privilegio SE_SECURITY_NAME en el token de acceso actual del autor de la llamada.
  2. Abra el identificador para ACCESS_SYSTEM_SECURITY acceso.
  3. Deshabilite el privilegio.

[in] pSID

Puntero a una estructura SECURITY_DESCRIPTOR que contiene la nueva información de seguridad.

Este búfer debe alinearse en un límite de 4 bytes.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero.

Si se produce un error en la función, devuelve cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

La función SetUserObjectSecurity aplica los cambios especificados en un descriptor de seguridad al descriptor de seguridad asignado a un objeto de usuario. El descriptor de seguridad del objeto debe estar en forma auto relativa . Si es necesario, esta función asigna memoria adicional para aumentar el tamaño del descriptor de seguridad.

Ejemplos

Para obtener un ejemplo que usa esta función, vea Iniciar un proceso de cliente interactivo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

GetUserObjectSecurity

Access Control de bajo nivel

Funciones de Access Control de bajo nivel

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetFileSecurity

SetKernelObjectSecurity

SetPrivateObjectSecurity