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 |