Freigeben über


RtlAddAccessAllowedAceEx-Funktion (ntifs.h)

Die RtlAddAccessAllowedAceEx-Routine fügt einer Zugriffssteuerungsliste (Access Control List, ACL) einen Zugriffssteuerungseintrag (Access Control Entry, ACE) mit Vererbungs-ACE-Flags hinzu. Der Zugriff wird auf die angegebene Sicherheits-ID (SID) gewährt.

Syntax

NTSYSAPI NTSTATUS RtlAddAccessAllowedAceEx(
  [in, out] PACL        Acl,
  [in]      ULONG       AceRevision,
  [in]      ULONG       AceFlags,
  [in]      ACCESS_MASK AccessMask,
  [in]      PSID        Sid
);

Parameter

[in, out] Acl

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die zu ändernde ACL enthält. RtlAddAccessAllowedAceEx fügt am Ende dieser Zugriffssteuerungsliste einen zugriffsberechtigten ACE hinzu. Der ACE ist in Form einer ACCESS_ALLOWED_ACE Struktur.

[in] AceRevision

ACL-Revisionsebene des hinzuzufügenden ACE. Dieser Wert kann ACL_REVISION oder ACL_REVISION_DS sein. Sie muss ACL_REVISION_DS werden, wenn die ACL ein objektspezifisches ACE enthält.

[in] AceFlags

Bitmaske, die die Erbflags des hinzuzufügenden ACE angibt.

[in] AccessMask

Eine Bitmaske eines oder mehrerer ACCESS_MASK Flags, die die Zugriffsrechte angeben, die der angegebenen SID gewährt werden sollen. Weitere Informationen finden Sie in der Beschreibung des DesiredAccess-Parameters von ZwCreateFile.

[in] Sid

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

Rückgabewert

RtlAddAccessAllowedAceEx kann einen der folgenden Werte zurückgeben:

Rückgabecode Beschreibung
STATUS_SUCCESS Der ACE wurde erfolgreich hinzugefügt.
STATUS_ALLOTTED_SPACE_EXCEEDED Ein neuer ACE passt nicht in die ACL. Ein größerer ACL-Puffer ist erforderlich. Weitere Informationen zum Berechnen der Größe einer ACL finden Sie unter RtlCreateAcl.
STATUS_INVALID_ACL Die angegebene ACL ist nicht ordnungsgemäß gebildet.
STATUS_INVALID_PARAMETER Der AceFlags-Parameter war ungültig.
STATUS_INVALID_SID Die angegebene SID-Struktur ist strukturell ungültig.
STATUS_REVISION_MISMATCH Die angegebene AceRevision ist nicht bekannt oder nicht mit dem der ACL kompatibel.

Hinweise

Im Gegensatz zu RtlAddAccessAllowedAce legt diese Routine die Vererbungs-ACE-Flags fest.

Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und in der Dokumentation zu diesen Themen im Windows SDK, z. B.:

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000
Zielplattform Universell
Header ntifs.h (include Ntifs.h, FltKernel.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

ACCESS_ALLOWED_ACE

ACCESS_MASK

ASS

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile