AddResourceAttributeAce-Funktion (securitybaseapi.h)

Die AddResourceAttributeAce-Funktion fügt am Ende einer Systemzugriffssteuerungsliste (SACL) einen SYSTEM_RESOURCE_ATTRIBUTE_ACEZugriffssteuerungseintrag (Access Control Entry, ACE) hinzu. Eine SYSTEM_RESOURCE_ATTRIBUTE_ACE Struktur gibt einen Attributnamen und eine wertegeordnete Liste von Elementen an, die einer Ressource zugeordnet sind und möglicherweise bei Zugriffsprüfungen verwendet werden. Der Satz von Standardzugriffsrechten wird im Thema Standardzugriffsrechte definiert.

Syntax

BOOL AddResourceAttributeAce(
  [in, out] PACL                                   pAcl,
  [in]      DWORD                                  dwAceRevision,
  [in]      DWORD                                  AceFlags,
  [in]      DWORD                                  AccessMask,
  [in]      PSID                                   pSid,
  [in]      PCLAIM_SECURITY_ATTRIBUTES_INFORMATION pAttributeInfo,
  [out]     PDWORD                                 pReturnLength
);

Parameter

[in, out] pAcl

Ein Zeiger auf eine Zugriffssteuerungsliste (ACL). Diese Funktion fügt dieser ACL eine ACE hinzu. Der Wert dieses Parameters kann nicht NULL-werden. Die ACE ist in Form einer SYSTEM_RESOURCE_ATTRIBUTE_ACE Struktur.

[in] dwAceRevision

Gibt die Revisionsebene der geänderten ACL an. Dieser Wert kann ACL_REVISION oder ACL_REVISION_DS werden. Verwenden Sie ACL_REVISION_DS, wenn die ACL objektspezifische ACEs enthält.

[in] AceFlags

Eine Reihe von Bitkennzeichnungen, die die ACE-Vererbung steuern. Die Funktion legt diese Flags im AceFlags Member der ACE_HEADER Struktur der neuen ACE fest.

Um die Konsistenz mit der Benutzeroberfläche für erweiterte Dateiberechtigungen von Windows 8 zu gewährleisten, sollten Anwendungen die CONTAINER_INHERIT_ACE und OBJECT_INHERIT_ACE Flags im AceFlags Parameter angeben.

Dieser Parameter kann eine Kombination aus den folgenden Werten sein.

Wert Bedeutung
CONTAINER_INHERIT_ACE
2 (0x2)
Die ACE wird von den Containerobjekten geerbt.
INHERIT_ONLY_ACE
8 (0x8)
Die ACE gilt nicht für das Objekt, dem die ACE zugewiesen ist, kann aber von untergeordneten Objekten geerbt werden.
INHERITED_ACE
16 (0x10)
Gibt eine geerbte ACE an. Dieses Flag ermöglicht Vorgängen, die die Sicherheit in einer Struktur von Objekten ändern, geerbte ACEs zu ändern, ohne ACEs zu ändern, die direkt auf das Objekt angewendet wurden.
NO_PROPAGATE_INHERIT_ACE
4 (0x4)
Die OBJECT_INHERIT_ACE und CONTAINER_INHERIT_ACE Bits werden nicht an eine geerbte ACE weitergegeben.
OBJECT_INHERIT_ACE
1 (0x1)
Die ACE wird von Nicht-Containerobjekten geerbt.

[in] AccessMask

Muss null für Windows 8 und Windows Server 2012 sein.

[in] pSid

Muss die SID "Jeder" (S-1-1-0) für Windows 8 und Windows Server 2012 sein.

[in] pAttributeInfo

Gibt die Attributinformationen an, die nach der SID in der ACE angefügt werden.

[out] pReturnLength

Die Größe des tatsächlich verwendeten ACL-Puffers in Bytes. Wenn der durch den pAcl Parameter angegebene Puffer nicht groß genug ist, ist der Wert dieses Parameters die Gesamtgröße, die für den ACL-Puffer erforderlich ist.

Rückgabewert

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

Wenn die Funktion fehlschlägt, wird FALSE-zurückgegeben. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8 [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2012 [nur Desktop-Apps]
Zielplattform- Fenster
Header- securitybaseapi.h (include Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

Standardzugriffsrechte