SetEntriesInAclA, fonction (aclapi.h)

La fonction SetEntriesInAcl crée une liste de contrôle d’accès (ACL) en fusionnant de nouvelles informations de contrôle d’accès ou de contrôle d’audit dans une structure ACL existante.

Syntaxe

DWORD SetEntriesInAclA(
  [in]           ULONG              cCountOfExplicitEntries,
  [in, optional] PEXPLICIT_ACCESS_A pListOfExplicitEntries,
  [in, optional] PACL               OldAcl,
  [out]          PACL               *NewAcl
);

Paramètres

[in] cCountOfExplicitEntries

Nombre de structures EXPLICIT_ACCESS dans le tableau pListOfExplicitEntries .

[in, optional] pListOfExplicitEntries

Pointeur vers un tableau de structures EXPLICIT_ACCESS qui décrivent les informations de contrôle d’accès à fusionner dans la liste de contrôle d’accès existante.

[in, optional] OldAcl

Pointeur vers la liste de contrôle d’accès existante. Ce paramètre peut être NULL. Dans ce cas, la fonction crée une liste de contrôle d’accès basée sur les entrées EXPLICIT_ACCESS .

[out] NewAcl

Pointeur vers une variable qui reçoit un pointeur vers la nouvelle liste de contrôle d’accès. Si la fonction réussit, vous devez appeler la fonction LocalFree pour libérer la mémoire tampon retournée.

Valeur retournée

Si la fonction réussit, la fonction retourne ERROR_SUCCESS.

Si la fonction échoue, elle retourne un code d’erreur différent de zéro défini dans WinError.h.

Remarques

Chaque entrée dans le tableau de structures de EXPLICIT_ACCESS spécifie des informations de contrôle d’accès ou de contrôle d’audit pour un administrateur spécifié. Un fiduciaire peut être un utilisateur, un groupe ou une autre valeur d’identificateur de sécurité (SID), comme un identificateur d’ouverture de session ou un type d’ouverture de session (pour instance, un service Windows ou un travail par lot). Vous pouvez utiliser un nom ou un SID pour identifier un fiduciaire.

Vous pouvez utiliser la fonction SetEntriesInAcl pour modifier la liste des entrées de contrôle d’accès (ACÉ) dans une liste de contrôle d’accès discrétionnaire (DACL) ou une liste de contrôle d’accès système (SACL). Notez que SetEntriesInAcl ne vous empêche pas de combiner les informations de contrôle d’accès et de contrôle d’audit dans la même liste de contrôle d’accès ; Toutefois, la liste de contrôle d’accès résultante contient des entrées sans signification.

Pour une liste de contrôle d’accès, le membre grfAccessMode de la structure EXPLICIT_ACCESS spécifie s’il faut autoriser, refuser ou révoquer les droits d’accès pour le fiduciaire. Ce membre peut spécifier l’une des valeurs suivantes :

  • GRANT_ACCESS
  • SET_ACCESS
  • DENY_ACCESS
  • REVOKE_ACCESS
Pour plus d’informations sur ces valeurs, consultez ACCESS_MODE.

La fonction SetEntriesInAcl place les nouveaux AAC refusés au début de la liste des ACÉ pour la nouvelle liste de contrôle d’accès. Cette fonction place les nouveaux ACÉ autorisés à l’accès juste avant les ACÉ existants autorisés.

Pour une liste SACL, le membre grfAccessMode de la structure EXPLICIT_ACCESS peut spécifier les valeurs suivantes :

  • REVOKE_ACCESS
  • SET_AUDIT_FAILURE
  • SET_AUDIT_SUCCESS
SET_AUDIT_FAILURE et SET_AUDIT_SUCCESS peuvent être combinés. Pour plus d’informations sur ces valeurs, consultez ACCESS_MODE.

La fonction SetEntriesInAcl place les nouveaux ACÉ d’audit système au début de la liste des ACÉ pour la nouvelle liste de contrôle d’accès.

Exemples

Pour obtenir un exemple qui utilise cette fonction, consultez Modification des listes de contrôle d’accès d’un objet ou Création d’un descripteur de sécurité pour un nouvel objet ou Prise de propriété d’un objet.

Notes

L’en-tête aclapi.h définit SetEntriesInAcl comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête aclapi.h
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACL

Contrôle d’accès

Fonctions Access Control de base

EXPLICIT_ACCESS

LocalFree

SYSTEM_AUDIT_ACE