Fonctions ACL et ACE de bas niveau
Pour créer une liste de contrôle d’accès (ACL) à l’aide des fonctions de bas niveau, allouez une mémoire tampon pour l’ACL, puis initialisez-la en appelant la fonction InitializeAcl . Pour ajouter des entrées de contrôle d’accès (AAC) à la fin d’une liste de contrôle d’accès discrétionnaire (DACL), utilisez les fonctions AddAccessAllowedAce et AddAccessDeniedAce . La fonction AddAuditAccessAce ajoute un ACE à la fin d’une liste de contrôle d’accès système (SACL). Vous pouvez utiliser la fonction AddAce pour ajouter un ou plusieurs ACÉ à une position spécifiée dans une liste de contrôle d’accès. La fonction AddAce vous permet également d’ajouter un ACE pouvant être hérité à une liste de contrôle d’accès. La fonction DeleteAce supprime un ACE d’une position spécifiée dans une liste de contrôle d’accès. La fonction GetAce récupère un ACE à partir d’une position spécifiée dans une liste de contrôle d’accès. La fonction FindFirstFreeAce récupère un pointeur vers le premier octet libre dans une liste de contrôle d’accès.
Pour modifier une liste de contrôle d’accès existante dans le descripteur de sécurité d’un objet, utilisez la fonction GetSecurityDescriptorDacl ou GetSecurityDescriptorSacl pour obtenir la liste de contrôle d’accès existante. Vous pouvez utiliser la fonction GetAce pour copier des ACL à partir de la liste de contrôle d’accès existante. Après l’allocation et l’initialisation d’une nouvelle liste de contrôle d’accès, utilisez des fonctions telles que AddAccessAllowedAce et AddAce pour y ajouter des ACL. Une fois la nouvelle liste de contrôle d’accès terminée, utilisez la fonction SetSecurityDescriptorDacl ou SetSecurityDescriptorSacl pour ajouter la nouvelle liste de contrôle d’accès au descripteur de sécurité de l’objet.
Vous pouvez utiliser les fonctions AddAccessAllowedObjectAce, AddAccessDeniedObjectAce ou AddAuditAccessObjectAce pour ajouter des AES spécifiques aux objets à la fin d’une liste de contrôle d’accès.