Función CreatePrivateObjectSecurity (securitybaseapi.h)

La función CreatePrivateObjectSecurity asigna e inicializa un descriptor de seguridad auto relativo para un nuevo objeto privado. Un servidor protegido llama a esta función cuando crea un nuevo objeto privado.

Para especificar el GUID de tipo de objeto del nuevo objeto o controlar cómo se heredan las entradas de control de acceso (ACE), use la función CreatePrivateObjectSecurityEx .

Sintaxis

BOOL CreatePrivateObjectSecurity(
  [in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
  [in, optional] PSECURITY_DESCRIPTOR CreatorDescriptor,
  [out]          PSECURITY_DESCRIPTOR *NewDescriptor,
  [in]           BOOL                 IsDirectoryObject,
  [in, optional] HANDLE               Token,
  [in]           PGENERIC_MAPPING     GenericMapping
);

Parámetros

[in, optional] ParentDescriptor

Puntero al descriptor de seguridad del directorio primario en el que se va a crear un nuevo objeto. Si no hay ningún directorio primario, este parámetro puede ser NULL.

[in, optional] CreatorDescriptor

Puntero a un descriptor de seguridad proporcionado por el creador del objeto. Si el creador del objeto no pasa explícitamente información de seguridad para el nuevo objeto, este parámetro está pensado para ser NULL.

[out] NewDescriptor

Puntero a una variable que recibe un puntero al descriptor de seguridad autoconsignado recién asignado. El llamador debe llamar a la función DestroyPrivateObjectSecurity para liberar este descriptor de seguridad.

[in] IsDirectoryObject

Especifica si el nuevo objeto es un contenedor. Un valor de TRUE indica que el objeto contiene otros objetos, como un directorio.

[in, optional] Token

Identificador del token de acceso para el proceso de cliente en cuyo nombre se va a crear el objeto. Si se trata de un token de suplantación, debe estar en el nivel SecurityIdentification o superior. Para obtener una descripción completa del nivel de suplantación SecurityIdentification, consulte el tipo enumerado SECURITY_IMPERSONATION_LEVEL .

Un token de cliente se usa para recuperar la información de seguridad predeterminada del nuevo objeto, como su propietario predeterminado, el grupo principal y la lista de control de acceso discrecional. El token debe estar abierto para TOKEN_QUERY acceso.

Si se cumplen todas las condiciones siguientes, se debe abrir el identificador para TOKEN_DUPLICATE acceso además de TOKEN_QUERY acceso.

  • El identificador de token hace referencia a un token principal.
  • El descriptor de seguridad del token contiene uno o varios ACE con el SID OwnerRights .
  • Se especifica un descriptor de seguridad para el parámetro CreatorDescriptor .
  • El autor de la llamada de esta función no establece la marca SEF_AVOID_OWNER_RESTRICTION en el parámetro AutoInheritFlags .

[in] GenericMapping

Puntero a una estructura de GENERIC_MAPPING que especifica la asignación de cada derecho genérico a derechos específicos para el objeto.

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

Si se especifica una lista de control de acceso del sistema (SACL) en el SECURITY_DESCRIPTOR especificado por el parámetro CreatorDescriptor , el parámetro Token debe tener habilitado el privilegio SE_SECURITY_NAME. La función CreatePrivateObjectSecurity comprueba este privilegio y puede generar auditorías durante el proceso.

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 cliente/servidor Access Control

Información general de Access Control de cliente/servidor

CreatePrivateObjectSecurityEx

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

GetTokenInformation

OpenProcessToken

SECURITY_DESCRIPTOR

SECURITY_IMPERSONATION_LEVEL

SetPrivateObjectSecurity