Freigeben über


SetEntriesInAclAclA-Funktion (aclapi.h)

Die SetEntriesInAcl-Funktion erstellt eine neue Zugriffssteuerungsliste (ACL), indem neue Zugriffssteuerungs- oder Überwachungssteuerungsinformationen in eine vorhandene ACL--Struktur zusammengeführt werden.

Syntax

DWORD SetEntriesInAclA(
  [in]           ULONG              cCountOfExplicitEntries,
  [in, optional] PEXPLICIT_ACCESS_A pListOfExplicitEntries,
  [in, optional] PACL               OldAcl,
  [out]          PACL               *NewAcl
);

Parameter

[in] cCountOfExplicitEntries

Die Anzahl der EXPLICIT_ACCESS Strukturen im pListOfExplicitEntries Array.

[in, optional] pListOfExplicitEntries

Ein Zeiger auf ein Array von EXPLICIT_ACCESS Strukturen, die die Zugriffssteuerungsinformationen beschreiben, die mit der vorhandenen ACL zusammengeführt werden sollen.

[in, optional] OldAcl

Ein Zeiger auf die vorhandene ACL. Dieser Parameter kann NULL-werden, in diesem Fall erstellt die Funktion eine neue ACL basierend auf den EXPLICIT_ACCESS Einträgen.

[out] NewAcl

Ein Zeiger auf eine Variable, die einen Zeiger auf die neue ACL empfängt. Wenn die Funktion erfolgreich ist, müssen Sie die LocalFree--Funktion aufrufen, um den zurückgegebenen Puffer freizugeben.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ERROR_SUCCESS zurück.

Wenn die Funktion fehlschlägt, wird ein nichtzero-Fehlercode zurückgegeben, der in WinError.h definiert ist.

Bemerkungen

Jeder Eintrag im Array EXPLICIT_ACCESS Strukturen gibt Zugriffssteuerungs- oder Überwachungssteuerungsinformationen für einen bestimmten Truste an. Ein Trustee kann ein Benutzer, eine Gruppe oder ein anderer Sicherheitsbezeichner (SID)-Wert sein, z. B. ein Anmeldebezeichner oder Anmeldetyp (z. B. ein Windows-Dienst oder batchauftrag). Sie können einen Namen oder eine SID verwenden, um einen Trustee zu identifizieren.

Sie können die funktion SetEntriesInAcl verwenden, um die Liste der Zugriffssteuerungseinträge (ACEs) in einer diskretionären Zugriffssteuerungsliste (DACL) oder einer Systemzugriffssteuerungsliste (SACL) zu ändern. Beachten Sie, dass SetEntriesInAcl- sie nicht daran hindert, Zugriffssteuerungs- und Überwachungssteuerungsinformationen in demselben ACL-zu mischen; Die resultierende ACL enthält jedoch bedeutungslose Einträge.

Bei einer DACL gibt der grfAccessMode Member der EXPLICIT_ACCESS Struktur an, ob Zugriffsrechte für den Truste zugelassen, verweigert oder widerrufen werden sollen. Dieser Member kann einen der folgenden Werte angeben:

  • GRANT_ACCESS
  • SET_ACCESS
  • DENY_ACCESS
  • REVOKE_ACCESS
Informationen zu diesen Werten finden Sie unter ACCESS_MODE.

Die SetEntriesInAcl--Funktion platziert alle neuen Zugriffsverweigerungs-ACEs am Anfang der Liste der ACEs für die neue ACL-. Diese Funktion platziert alle neuen zugriffsgeschützten ACEs direkt vor vorhandenen zugriffsgeschützten ACEs.

Bei einer SACL kann das grfAccessMode Element der EXPLICIT_ACCESS Struktur die folgenden Werte angeben:

  • REVOKE_ACCESS
  • SET_AUDIT_FAILURE
  • SET_AUDIT_SUCCESS
SET_AUDIT_FAILURE und SET_AUDIT_SUCCESS können kombiniert werden. Informationen zu diesen Werten finden Sie unter ACCESS_MODE.

Die SetEntriesInAcl Funktion platziert alle neuen Systemüberwachungs-ACEs am Anfang der Liste der ACEs für die neue ACL.

Beispiele

Ein Beispiel, das diese Funktion verwendet, finden Sie unter Ändern der ACLs eines Objekt- oder Erstellen eines Sicherheitsdeskriptors für ein neues Objekt oder Übernehmen des Objektbesitzes.

Anmerkung

Der Header "aclapi.h" definiert SetEntriesInAcl als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- aclapi.h
Library Advapi32.lib
DLL- Advapi32.dll

Siehe auch

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACL-

Zugriffssteuerung

grundlegende Zugriffssteuerungsfunktionen

EXPLICIT_ACCESS

LocalFree-

SYSTEM_AUDIT_ACE