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 la liste de contrôle d’accès, puis initialisez-la en appelant la fonction InitializeAcl. Pour ajouter entrées de contrôle d’accès à 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 une ou plusieurs ACL à une position spécifiée dans une liste de contrôle d’accès. La fonction AddAce vous permet également d’ajouter un ACE héritant à 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 fonction GetSecurityDescriptorSacl pour obtenir la liste de contrôle d’accès existante. Vous pouvez utiliser la fonction GetAce pour copier les AES à partir de la liste de contrôle d’accès existante. Après avoir alloué et initialisé une nouvelle liste de contrôle d’accès, utilisez des fonctions telles que AddAccessAllowedAce et AddAce pour y ajouter des ACL. Une fois que vous avez terminé de créer la nouvelle liste de contrôle d’accès, utilisez laSetSecurityDescriptorDaclou Fonction SetSecurityDescriptorSacl pour ajouter la nouvelle liste de contrôle d’accès au descripteur de sécurité de l’objet.
Vous pouvez utiliser l'AddAccessAllowedObjectAce, AddAccessDeniedObjectAceou fonctions AddAuditAccessObjectAce pour ajouter acEs spécifiques à l’objet à la fin d’une liste de contrôle d’accès.