Freigeben über


AddAccessAllowedAce-Funktion (securitybaseapi.h)

Die AddAccessAllowedAce-Funktion fügt einer Zugriffssteuerungsliste (Access Control List, ACL) einen Zugriffssteuerungseintrag (Access Control Entry, ACE) hinzu. Der Zugriff wird einer angegebenen Sicherheits-ID (SID) gewährt.

Verwenden Sie die AddAccessAllowedAceEx-Funktion , um zu steuern, ob das neue ACE von untergeordneten Objekten geerbt werden kann.

Syntax

BOOL AddAccessAllowedAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AccessMask,
  [in]      PSID  pSid
);

Parameter

[in, out] pAcl

Ein Zeiger auf eine ACL. Diese Funktion fügt dem Ende dieser ACL einen zugriffsberechtigten ACE hinzu. Der ACE ist in Form einer ACCESS_ALLOWED_ACE Struktur.

[in] dwAceRevision

Gibt die Revisionsebene der ACL an, die geändert wird.

Dieser Wert kann ACL_REVISION oder ACL_REVISION_DS sein. Verwenden Sie ACL_REVISION_DS, wenn die ACL objektspezifische ACEs enthält.

[in] AccessMask

Gibt die Maske der Zugriffsrechte an, die der angegebenen SID gewährt werden sollen.

[in] pSid

Ein Zeiger auf die SID, die einen Benutzer, eine Gruppe oder ein Anmeldekonto darstellt, dem Zugriff gewährt wird.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Im Folgenden sind mögliche Fehlerwerte aufgeführt.

Rückgabecode Beschreibung
ERROR_ALLOTTED_SPACE_EXCEEDED
Der neue ACE passt nicht in die ACL. Ein größerer ACL-Puffer ist erforderlich.
ERROR_INVALID_ACL
Die angegebene ACL ist nicht ordnungsgemäß gebildet.
ERROR_INVALID_SID
Die angegebene SID ist strukturell ungültig.
ERROR_REVISION_MISMATCH
Die angegebene Revision ist nicht bekannt oder mit der der ACL nicht kompatibel.
ERROR_SUCCESS
Der ACE wurde erfolgreich hinzugefügt.

Hinweise

Das Hinzufügen eines zugriffsberechtigten ACE zu einer ACL ist die häufigste Form der ACL-Änderung.

Die Funktionen AddAccessAllowedAce und AddAccessDeniedAce fügen ein neues ACE am Ende der Liste der ACEs für die ACL hinzu. Diese Funktionen platzieren den neuen ACE nicht automatisch in der richtigen kanonischen Reihenfolge. Es liegt in der Verantwortung des Aufrufers sicherzustellen, dass sich die ACL in kanonischer Reihenfolge befindet, indem ACEs in der richtigen Sequenz hinzugefügt werden.

Die ACE_HEADER Struktur, die von der AddAccessAllowedAce-Funktion im ACE platziert wird, gibt einen Typ und eine Größe an, bietet jedoch keine Vererbung und keine ACE-Flags.

Beispiele

Ein Beispiel, das diese Funktion verwendet, finden Sie unter Starten eines interaktiven Clientprozesses.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile securitybaseapi.h (einschließlich Windows.h)
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

ACCESS_ALLOWED_ACE

ACE_HEADER

AddAccessAllowedAceEx

AddAccessDeniedAce

AddAce

AddAuditAccessAce

DeleteAce

GetAce

Low-Level-Access Control

Access Control funktionen auf niedriger Ebene