Función SetPrivateObjectSecurity (securitybaseapi.h)
La función SetPrivateObjectSecurity modifica el descriptor de seguridad de un objeto privado.
Para especificar si el servidor protegido admite la herencia automática de entradas de control de acceso (ACE), use la función SetPrivateObjectSecurityEx .
Sintaxis
BOOL SetPrivateObjectSecurity(
[in] SECURITY_INFORMATION SecurityInformation,
[in] PSECURITY_DESCRIPTOR ModificationDescriptor,
[in, out] PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
[in] PGENERIC_MAPPING GenericMapping,
[in, optional] HANDLE Token
);
Parámetros
[in] SecurityInformation
Indica las partes del descriptor de seguridad que se van a establecer. Este valor puede ser una combinación de las marcas de bits de SECURITY_INFORMATION.
[in] ModificationDescriptor
Puntero a una estructura SECURITY_DESCRIPTOR . Las partes de este descriptor de seguridad indicados por el parámetro SecurityInformation se aplican al descriptor de seguridad ObjectsSecurityDescriptor .
[in, out] ObjectsSecurityDescriptor
Puntero a un puntero a una estructura de SECURITY_DESCRIPTOR . Este descriptor de seguridad debe estar en forma auto relativa . La memoria del descriptor de seguridad debe asignarse desde el montón de procesos (GetProcessHeap) con la función HeapAlloc.
En la entrada, este es el descriptor de seguridad actual del objeto privado. La función lo modifica para generar el nuevo descriptor de seguridad. Si es necesario, la función SetPrivateObjectSecurity asigna memoria adicional para generar un descriptor de seguridad mayor.
[in] GenericMapping
Puntero a una estructura de GENERIC_MAPPING que especifica los derechos de acceso específicos y estándar que corresponden a cada uno de los derechos de acceso genéricos.
[in, optional] Token
Identificador del token de acceso del cliente en cuyo nombre se está modificando la seguridad del objeto privado. Este parámetro es necesario para asegurarse de que el cliente ha proporcionado un valor legítimo para un nuevo identificador de seguridad de propietario (SID). El token debe estar abierto para TOKEN_QUERY acceso.
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
Esta función está pensada solo para que la usen los administradores de recursos. Para implementar la semántica de control de acceso estándar para actualizar los descriptores de seguridad, un administrador de recursos debe comprobar que se cumplen las condiciones siguientes antes de llamar a SetPrivateObjectSecurity:
- Si se establece el propietario del objeto, el proceso de llamada debe tener WRITE_OWNER permiso o ser el propietario del objeto.
- Si se establece la lista de control de acceso discrecional (DACL) del objeto, el proceso de llamada debe tener WRITE_DAC permiso o ser el propietario del objeto.
- Si se establece la lista de control de acceso del sistema (SACL) del objeto, se debe habilitar el privilegio SE_SECURITY_NAME para el proceso de llamada.
El proceso que llama a esta función no debe suplantar a un cliente porque los clientes no suelen tener los privilegios adecuados necesarios para las operaciones de token subyacentes.
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 | securitybaseapi.h (incluya Windows.h) |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |
Consulte también
Funciones de Access Control cliente/servidor