Función AddConditionalAce (winbase.h)

La función AddConditionalAce agrega una entrada de control de acceso condicional (ACE) a la lista de control de acceso (ACL) especificada. Una ACE condicional especifica una condición lógica que se evalúa durante las comprobaciones de acceso.

Sintaxis

BOOL AddConditionalAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  AceFlags,
  [in]      UCHAR  AceType,
  [in]      DWORD  AccessMask,
  [in]      PSID   pSid,
  [in]      PWCHAR ConditionStr,
  [out]     DWORD  *ReturnLength
);

Parámetros

[in, out] pAcl

Puntero a una ACL. Esta función agrega una ACE a esta ACL.

El valor de este parámetro no puede ser NULL.

[in] dwAceRevision

Especifica el nivel de revisión de la ACL que se va a modificar. Este valor puede ser ACL_REVISION o ACL_REVISION_DS. Use ACL_REVISION_DS si la ACL contiene ACE específicas del objeto.

[in] AceFlags

Un conjunto de marcas de bits que controlan la herencia ACE. La función establece estas marcas en el miembro AceFlags de la estructura ACE_HEADER de la nueva ACE. Este parámetro puede ser una combinación de los valores siguientes.

Value Significado
CONTAINER_INHERIT_ACE
Los objetos contenedores heredan la ACE.
INHERIT_ONLY_ACE
La ACE no se aplica al objeto al que se asigna la ACL, pero los objetos secundarios pueden heredarla.
INHERITED_ACE
Indica una ACE heredada. Esta marca permite que las operaciones que cambien la seguridad en un árbol de objetos modifiquen las ACE heredadas, mientras que no cambian las ACE que se aplicaron directamente al objeto.
NO_PROPAGATE_INHERIT_ACE
Los bits de OBJECT_INHERIT_ACE y CONTAINER_INHERIT_ACE no se propagan a una ACE heredada.
OBJECT_INHERIT_ACE
Los objetos que no son de contenedor heredan la ACE.

[in] AceType

Tipo de la ACE.

Puede ser uno de los valores siguientes.

Valor Significado
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
ACE de devolución de llamada permitida por el acceso que usa la estructura ACCESS_ALLOWED_CALLBACK_ACE .
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
ACE de devolución de llamada denegada de acceso que usa la estructura de ACCESS_DENIED_CALLBACK_ACE .
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
ACE de devolución de llamada de auditoría del sistema que usa la estructura SYSTEM_AUDIT_CALLBACK_ACE .

[in] AccessMask

Especifica la máscara de los derechos de acceso que se van a conceder al SID especificado.

[in] pSid

Puntero al SID que representa un usuario, grupo o cuenta de inicio de sesión al que se concede acceso.

[in] ConditionStr

Cadena que especifica la instrucción condicional que se va a evaluar para la ACE.

[out] ReturnLength

Tamaño, en bytes, de la ACL. Si el búfer especificado por el parámetro pACL no tiene un tamaño suficiente, el valor de este parámetro es el tamaño necesario.

Valor devuelto

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

Si se produce un error en la función, devuelve FALSE. Para obtener información de error extendida, llame a GetLastError. A continuación se muestran los posibles valores de error.

Código devuelto Descripción
ERROR_INSUFFICIENT_BUFFER
La nueva ACE no cabe en el búfer de pAcl .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluye Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll