Partager via


SetEntriesInAclA, fonction (aclapi.h)

La fonction SetEntriesInAcl crée une nouvelle 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, auquel 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 de retour

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 EXPLICIT_ACCESS spécifie les informations de contrôle d’accès ou de contrôle d’audit pour un administrateur spécifié. Un administrateur peut être un utilisateur, un groupe ou un autre identificateur de sécurité (SID), tel qu’un identificateur d’ouverture de session ou un type d’ouverture de session (par exemple, un service Windows ou un travail par lots). Vous pouvez utiliser un nom ou un SID pour identifier un administrateur.

Vous pouvez utiliser la fonction SetEntriesInAcl pour modifier la liste des entrées de contrôle d’accès (AAC) 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 n’empêche pas de mélanger les informations de contrôle d’accès et de contrôle d’audit dans les mêmes de 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 daCL, le grfAccessMode membre de la structure EXPLICIT_ACCESS spécifie s’il faut autoriser, refuser ou révoquer des 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 toutes les nouvelles ACL refusées par accès au début de la liste des ACL pour le nouveau contrôle d’accès . Cette fonction place toutes les nouvelles ACL autorisées par accès juste avant les AE autorisées par accès existantes.

Pour une liste de contrôle d’accès partagé, 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 toute nouvelle acEs d’audit système au début de la liste des ACL pour la nouvelle liste d’ACL.

Exemples

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

Note

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. Le mélange 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête aclapi.h
bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

de liste de contrôle d’accès

de contrôle d’accès

fonctions de contrôle d’accès de base

EXPLICIT_ACCESS

LocalFree

SYSTEM_AUDIT_ACE