Low-Level-ACL- und ACE-Funktionen
Um eine Zugriffssteuerungsliste (Access Control List , ACL) mithilfe der Funktionen auf niedriger Ebene zu erstellen, ordnen Sie der ACL einen Puffer zu, und initialisieren Sie ihn dann, indem Sie die InitializeAcl-Funktion aufrufen. Verwenden Sie die Funktionen AddAccessAllowedAce und AddAccessDeniedAce, um Zugriffssteuerungseinträge (Access Control Entries, ACEs) am Ende einer dacl (Discretionary Access Control List, DACL) hinzuzufügen. Die AddAuditAccessAce-Funktion fügt am Ende einer Systemzugriffssteuerungsliste (SACL ) einen ACE hinzu. Sie können die AddAce-Funktion verwenden, um ein oder mehrere ACEs an einer angegebenen Position in einer ACL hinzuzufügen. Mit der AddAce-Funktion können Sie einer ACL auch ein vererbbares ACE hinzufügen. Die DeleteAce-Funktion entfernt einen ACE von einer angegebenen Position in einer ACL. Die GetAce-Funktion ruft einen ACE von einer angegebenen Position in einer ACL ab. Die FindFirstFreeAce-Funktion ruft einen Zeiger auf das erste freie Byte in einer ACL ab.
Um eine vorhandene ACL im Sicherheitsdeskriptor eines Objekts zu ändern, verwenden Sie die Funktion GetSecurityDescriptorDacl oder GetSecurityDescriptorSacl , um die vorhandene ACL abzurufen. Sie können die GetAce-Funktion verwenden, um ACEs aus der vorhandenen ACL zu kopieren. Nachdem Sie eine neue ACL zugewiesen und initialisiert haben, verwenden Sie Funktionen wie AddAccessAllowedAce und AddAce , um ihr ACEs hinzuzufügen. Wenn Sie die erstellung der neuen Zugriffssteuerungsliste abgeschlossen haben, verwenden Sie die SetSecurityDescriptorDacl - oder SetSecurityDescriptorSacl-Funktion , um die neue ACL dem Sicherheitsdeskriptor des Objekts hinzuzufügen.
Sie können die Funktionen AddAccessAllowedObjectAce, AddAccessDeniedObjectAce oder AddAuditAccessObjectAce verwenden, um objektspezifische ACEs am Ende einer ACL hinzuzufügen.