AddConditionalAce-Funktion (winbase.h)

Die AddConditionalAce-Funktion fügt der angegebenen Zugriffssteuerungsliste (Access Control List, ACL) einen Eintrag für die bedingte Zugriffssteuerung (Conditional Access Control Entry, ACE) hinzu. Ein bedingter ACE gibt eine logische Bedingung an, die bei Zugriffsprüfungen ausgewertet wird.

Syntax

BOOL AddConditionalAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  AceFlags,
  [in]      UCHAR  AceType,
  [in]      DWORD  AccessMask,
  [in]      PSID   pSid,
  [in]      PWCHAR ConditionStr,
  [out]     DWORD  *ReturnLength
);

Parameter

[in, out] pAcl

Ein Zeiger auf eine ACL. Diese Funktion fügt dieser ACL einen ACE hinzu.

Der Wert dieses Parameters darf nicht NULL sein.

[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] AceFlags

Eine Reihe von Bitflags, die die ACE-Vererbung steuern. Die Funktion legt diese Flags im AceFlags-Member der ACE_HEADER-Struktur des neuen ACE fest. Für diesen Parameter ist eine Kombination der folgenden Werte gültig.

Wert Bedeutung
CONTAINER_INHERIT_ACE
Der ACE wird von Containerobjekten geerbt.
INHERIT_ONLY_ACE
Der ACE gilt nicht für das Objekt, dem die ACL zugewiesen ist, kann aber von untergeordneten Objekten geerbt werden.
INHERITED_ACE
Gibt einen geerbten ACE an. Dieses Flag ermöglicht Es Vorgängen, die die Sicherheit für eine Struktur von Objekten ändern, geerbte ACEs zu ändern, ohne acEs zu ändern, die direkt auf das Objekt angewendet wurden.
NO_PROPAGATE_INHERIT_ACE
Die OBJECT_INHERIT_ACE und CONTAINER_INHERIT_ACE Bits werden nicht an eine geerbte ACE weitergegeben.
OBJECT_INHERIT_ACE
Der ACE wird von Nichtcontainerobjekten geerbt.

[in] AceType

Der Typ des ACE.

Dies kann einer der folgenden Werte sein.

Wert Bedeutung
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
Zugriffsgeschützter Rückruf-ACE, der die ACCESS_ALLOWED_CALLBACK_ACE-Struktur verwendet.
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
Zugriffsverweigerungs-Rückruf-ACE, der die ACCESS_DENIED_CALLBACK_ACE-Struktur verwendet.
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
Systemüberwachungsrückruf-ACE, der die SYSTEM_AUDIT_CALLBACK_ACE-Struktur verwendet.

[in] AccessMask

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

[in] pSid

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

[in] ConditionStr

Eine Zeichenfolge, die die bedingte Anweisung angibt, die für den ACE ausgewertet werden soll.

[out] ReturnLength

Die Größe der ACL in Bytes. Wenn der vom pACL-Parameter angegebene Puffer nicht ausreichend groß ist, entspricht der Wert dieses Parameters der erforderlichen Größe.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird TRUE zurückgegeben.

Wenn die Funktion fehlschlägt, wird FALSE zurückgegeben. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Im Folgenden sind mögliche Fehlerwerte aufgeführt.

Rückgabecode Beschreibung
ERROR_INSUFFICIENT_BUFFER
Der neue ACE passt nicht in den pAcl-Puffer .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (Windows.h einschließen)
Bibliothek Advapi32.lib
DLL Advapi32.dll