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
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
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 |