Partager via


AddConditionalAce, fonction (winbase.h)

La fonction AddConditionalAce ajoute une entrée de contrôle d’accès conditionnel (ACE) à la liste de contrôle d’accès (ACL) spécifiée. Un ACE conditionnel spécifie une condition logique qui est évaluée lors des vérifications d’accès.

Syntaxe

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
);

Paramètres

[in, out] pAcl

Pointeur vers une liste de contrôle d’accès. Cette fonction ajoute un ACE à cette liste de contrôle d’accès.

La valeur de ce paramètre ne peut pas être NULL.

[in] dwAceRevision

Spécifie le niveau de révision de la liste de contrôle d’accès en cours de modification. Cette valeur peut être ACL_REVISION ou ACL_REVISION_DS. Utilisez ACL_REVISION_DS si la liste de contrôle d’accès contient des AE spécifiques à l’objet.

[in] AceFlags

Ensemble d’indicateurs de bits qui contrôlent l’héritage ACE. La fonction définit ces indicateurs dans le membre AceFlags de la structure ACE_HEADER du nouvel ACE. Ce paramètre peut être une combinaison des valeurs suivantes.

Valeur Signification
CONTAINER_INHERIT_ACE
L’ACE est hérité par les objets conteneur.
INHERIT_ONLY_ACE
L’ACE ne s’applique pas à l’objet auquel la liste de contrôle d’accès est affectée, mais elle peut être héritée par les objets enfants.
INHERITED_ACE
Indique un ACE hérité. Cet indicateur permet aux opérations qui modifient la sécurité sur une arborescence d’objets de modifier les ACL héritées sans modifier les ACL directement appliquées à l’objet.
NO_PROPAGATE_INHERIT_ACE
Les bits OBJECT_INHERIT_ACE et CONTAINER_INHERIT_ACE ne sont pas propagés à un ACE hérité.
OBJECT_INHERIT_ACE
L’ACE est hérité par les objets non-conteneur.

[in] AceType

Type de l’ACE.

Il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
ACE de rappel autorisé qui utilise la structure ACCESS_ALLOWED_CALLBACK_ACE .
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
ACE de rappel refusé qui utilise la structure ACCESS_DENIED_CALLBACK_ACE .
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
Ace de rappel d’audit système qui utilise la structure SYSTEM_AUDIT_CALLBACK_ACE .

[in] AccessMask

Spécifie le masque des droits d’accès à accorder au SID spécifié.

[in] pSid

Pointeur vers le SID qui représente un utilisateur, un groupe ou un compte d’ouverture de session auquel l’accès est accordé.

[in] ConditionStr

Chaîne qui spécifie l’instruction conditionnelle à évaluer pour l’ACE.

[out] ReturnLength

Taille, en octets, de la liste de contrôle d’accès. Si la mémoire tampon spécifiée par le paramètre pACL n’est pas de taille suffisante, la valeur de ce paramètre est la taille requise.

Valeur retournée

Si la fonction réussit, elle retourne TRUE.

Si la fonction échoue, elle retourne FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Voici les valeurs d’erreur possibles.

Code de retour Description
ERROR_INSUFFICIENT_BUFFER
Le nouvel ACE ne tient pas dans la mémoire tampon pAcl .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll