RtlAddAce-Funktion (ntifs.h)
Die RtlAddAce-Routine fügt einer angegebenen Zugriffssteuerungsliste (Access Control List, ACL) einen oder mehrere Zugriffssteuerungseinträge (Access Control Entries, ACEs) hinzu.
Syntax
NTSYSAPI NTSTATUS RtlAddAce(
[in, out] PACL Acl,
[in] ULONG AceRevision,
[in] ULONG StartingAceIndex,
[in] PVOID AceList,
[in] ULONG AceListLength
);
Parameter
[in, out] Acl
Zeiger auf die zu ändernde ACL. RtlAddAce fügt dieser ACL die angegebenen ACEs hinzu.
[in] AceRevision
ACL-Revisionsebene des hinzuzufügenden ACE. Windows-Versionsanforderungen sind die folgenden:
Wert | Bedeutung |
---|---|
ACL_REVISION | Die Für alle Windows-Versionen gültige Revisionsebene. |
ACL_REVISION_DS | Die ab Windows 2000 gültige Revisionsebene. |
AceRevision muss ACL_REVISION_DS werden, wenn die ACL in Acl ein objektspezifisches ACE enthält.
[in] StartingAceIndex
Gibt die Position in der Liste der ACEs der ACL an, an der neue ACEs hinzugefügt werden sollen. Der Wert null fügt die ACEs am Anfang der Liste ein. Ein Wert von MAXULONG fügt die ACEs am Ende der Liste an.
[in] AceList
Zeiger auf einen Puffer, der eine Liste von mindestens einem ACEs enthält, die der angegebenen ACL hinzugefügt werden sollen. Die ACEs in der Liste müssen zusammenhängend gespeichert werden.
[in] AceListLength
Größe des Eingabepuffers in Bytes, auf den der AceList-Parameter verweist.
Rückgabewert
RtlAddAce gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
STATUS_BUFFER_TOO_SMALL | Die neuen ACEs passen nicht in die ACL. Ein größerer ACL-Puffer ist erforderlich. STATUS_BUFFER_TOO_SMALL ist ein Fehlercode. |
STATUS_INVALID_PARAMETER | Einer der Parameterwerte war ungültig. Mögliche Gründe sind, dass die angegebene ACL ungültig ist oder die angegebene Revision unbekannt ist, nicht mit Revisionen in der ACE-Liste kompatibel ist oder nicht mit der Revision der ACL kompatibel ist. STATUS_INVALID_PARAMETER ist ein Fehlercode. |
Hinweise
Informationen zum Berechnen der Größe einer ACL finden Sie im Abschnitt Hinweise des Referenzeintrags für RtlCreateAcl.
Verwenden Sie RtlGetAce, um einen Zeiger auf einen ACE in einer ACL zu erhalten.
Um einen ACE aus einer ACL zu löschen, verwenden Sie RtlDeleteAce.
Verwenden Sie RtlAddAccessAllowedAce, um einer Zugriffssteuerungsliste einen zugriffsberechtigten ACE hinzuzufügen.
Weitere Informationen zur Sicherheit und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und in der Dokumentation zu diesen Themen im Windows SDK.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Server 2003 mit SP1 |
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe (Kernelmodus); Ntdll.dll (Benutzermodus) |
IRQL | <= APC_LEVEL |