Función GetUserObjectSecurity (winuser.h)

La función GetUserObjectSecurity recupera información de seguridad para el objeto de usuario especificado.

Sintaxis

BOOL GetUserObjectSecurity(
  [in]                HANDLE                hObj,
  [in]                PSECURITY_INFORMATION pSIRequested,
  [in, out, optional] PSECURITY_DESCRIPTOR  pSID,
  [in]                DWORD                 nLength,
  [out]               LPDWORD               lpnLengthNeeded
);

Parámetros

[in] hObj

Identificador del objeto de usuario para el que se va a devolver información de seguridad.

[in] pSIRequested

Puntero a un valor de SECURITY_INFORMATION que especifica la información de seguridad que se solicita.

[in, out, optional] pSID

Puntero a una estructura de SECURITY_DESCRIPTOR en formato auto relativo que contiene la información solicitada cuando la función devuelve. Este búfer debe alinearse en un límite de 4 bytes.

[in] nLength

Longitud, en bytes, del búfer al que apunta el parámetro pSD .

[out] lpnLengthNeeded

Puntero a una variable para recibir el número de bytes necesarios para almacenar el descriptor de seguridad completo. Si el valor de esta variable es mayor que el valor del parámetro nLength cuando la función devuelve, la función devuelve FALSE y ninguno del descriptor de seguridad se copia en el búfer. De lo contrario, se copia todo el descriptor de seguridad.

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

Para leer el propietario, el grupo o la lista de control de acceso discrecional (DACL) del descriptor de seguridad del objeto de usuario, se debe haber concedido el proceso de llamada READ_CONTROL acceso cuando se abrió el identificador.

Para leer la lista de control de acceso del sistema (SACL) desde el descriptor de seguridad, se debe haber concedido al proceso de llamada ACCESS_SYSTEM_SECURITY acceso cuando se abrió el identificador. La manera correcta de obtener este acceso es habilitar el privilegio SE_SECURITY_NAME en el token actual del autor de la llamada, abrir el identificador para ACCESS_SYSTEM_SECURITY acceso y, a continuación, deshabilitar el privilegio.

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

CreatePrivateObjectSecurity

GetKernelObjectSecurity

GetPrivateObjectSecurity

Access Control de bajo nivel

Funciones de Access Control de bajo nivel

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetUserObjectSecurity