Compartir a través de


Función BuildSecurityDescriptorW (aclapi.h)

La función buildSecurityDescriptor asigna e inicializa un nuevo descriptor de seguridad . Esta función puede inicializar el nuevo descriptor de seguridad combinando la información de seguridad especificada con la información de un descriptor de seguridad existente. Si no especifica un descriptor de seguridad existente, la función inicializa un nuevo descriptor de seguridad basado en la información de seguridad especificada.

La función buildSecurityDescriptor de crea un descriptor de seguridad auto-relativo . El formato auto-relativo hace que el descriptor de seguridad sea adecuado para almacenar en una secuencia.

Sintaxis

DWORD BuildSecurityDescriptorW(
  [in, optional] PTRUSTEE_W           pOwner,
  [in, optional] PTRUSTEE_W           pGroup,
  [in]           ULONG                cCountOfAccessEntries,
  [in, optional] PEXPLICIT_ACCESS_W   pListOfAccessEntries,
  [in]           ULONG                cCountOfAuditEntries,
  [in, optional] PEXPLICIT_ACCESS_W   pListOfAuditEntries,
  [in, optional] PSECURITY_DESCRIPTOR pOldSD,
  [out]          PULONG               pSizeNewSD,
  [out]          PSECURITY_DESCRIPTOR *pNewSD
);

Parámetros

[in, optional] pOwner

Puntero a una estructura TRUSTEE que identifica al propietario del nuevo descriptor de seguridad. Si la estructura usa el formulario de TRUSTEE_IS_NAME, BuildSecurityDescriptor busca el identificador de seguridad (SID) asociado al nombre de administrador especificado.

Si este parámetro es NULL, la función usa el SID propietario del descriptor de seguridad original al que apunta pOldSD. Si pOldSD es NULL, o si el SID propietario de pOldSD es NULL, el SID propietario null en el nuevo descriptor de seguridad.

[in, optional] pGroup

Puntero a una estructura TRUSTEE que identifica el SID del grupo principal para el nuevo descriptor de seguridad. Si la estructura usa el formulario de TRUSTEE_IS_NAME, BuildSecurityDescriptor busca el SID asociado al nombre de administrador especificado.

Si este parámetro es NULL, la función usa el SID de grupo del descriptor de seguridad original al que apunta pOldSD. Si pOldSD es NULL, o si el SID del grupo en pOldSD es NULL, el SID del grupo se NULL en el nuevo descriptor de seguridad.

[in] cCountOfAccessEntries

Número de estructuras de EXPLICIT_ACCESS en la matriz de pListOfAccessEntries.

[in, optional] pListOfAccessEntries

Puntero a una matriz de estructuras de EXPLICIT_ACCESS que describen la información de control de acceso para la lista de control de acceso discrecional (DACL) del nuevo descriptor de seguridad. La función crea la nueva DACL combinando la información de la matriz con la DACL en pOldSD, si existe. Si pOldSD es NULL, o si la DACL de pOldSD es NULL, la función crea una nueva DACL basada únicamente en la información de la matriz. Para obtener una descripción de las reglas para crear una A CL a partir de una matriz de estructuras de EXPLICIT_ACCESS, consulte la función setEntriesInAcl de .

Si pListOfAccessEntries es NULL, el nuevo descriptor de seguridad obtiene la DACL de pOldSD. En este caso, si pOldSD es NULL, o si la DACL de pOldSD es NULL, la nueva DACL es NULL.

[in] cCountOfAuditEntries

Número de estructuras de EXPLICIT_ACCESS en la matriz de pListOfAuditEntries de .

[in, optional] pListOfAuditEntries

Puntero a una matriz de estructuras de EXPLICIT_ACCESS que describen la información de control de auditoría para la SACL del nuevo descriptor de seguridad. La función crea la nueva SACL combinando la información de la matriz con la SACL en pOldSD, si existe. Si pOldSD es NULL, o el SACL de pOldSD es NULL, la función crea una nueva SACL basada únicamente en la información de la matriz.

Si pListOfAuditEntries es null, el nuevo descriptor de seguridad obtiene el SACL de pOldSD. En este caso, si pOldSD es NULL, o el SACL de pOldSD es NULL, el nuevo SACL es NULL.

[in, optional] pOldSD

Puntero a una estructura de SECURITY_DESCRIPTOR relativa existente y su información de seguridad asociada. La función compila el nuevo descriptor de seguridad combinando la información de propietario, grupo, control de acceso y control de auditoría especificadas con la información de este descriptor de seguridad. Este parámetro puede ser null.

[out] pSizeNewSD

Puntero a una variable que recibe el tamaño, en bytes, del descriptor de seguridad.

[out] pNewSD

Puntero a una variable que recibe un puntero al nuevo descriptor de seguridad. La función asigna memoria para el nuevo descriptor de seguridad. Debe llamar a la función LocalFree para liberar el búfer devuelto.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve ERROR_SUCCESS.

Si se produce un error en la función, devuelve un código de error distinto de cero definido en WinError.h.

Observaciones

La función BuildSecurityDescriptor está pensada para servidores de confianza que implementan o exponen la seguridad en sus propios objetos. La función usa descriptores de seguridad auto-relativos adecuados para serializar en una secuencia y almacenar en el disco, ya que un servidor de confianza podría requerir.

Nota

El encabezado aclapi.h define BuildSecurityDescriptor como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de aclapi.h
biblioteca de Advapi32.lib
DLL de Advapi32.dll

Consulte también

de ACL

funciones de control de acceso de cliente/servidor

de control de acceso de cliente/servidor de

EXPLICIT_ACCESS

localFree

SECURITY_DESCRIPTOR

de SID

SetEntriesInAcl

DE CONFIANZA