Share via


ACCESS_ALLOWED_CALLBACK_OBJECT_ACE-Struktur (winnt.h)

Die ACCESS_ALLOWED_CALLBACK_OBJECT_ACE-Struktur definiert einen Zugriffssteuerungseintrag (Access Control Entry , ACE), der den Zugriff auf ein Objekt, einen Eigenschaftensatz oder eine Eigenschaft steuert. Der ACE enthält eine Reihe von Zugriffsrechten, eine GUID , die den Typ des Objekts identifiziert, und einen Sicherheitsbezeichner (SID), der den Treuhänder identifiziert, dem das System Zugriff gewährt. Der ACE enthält auch eine GUID und eine Reihe von Flags, die die Vererbung des ACE durch untergeordnete Objekte steuern.

Wenn die AuthzAccessCheck-Funktion aufgerufen wird, ruft jede ACCESS_ALLOWED_CALLBACK_OBJECT_ACE Struktur in der DACL einer SECURITY_DESCRIPTOR-Struktur , die über einen Zeiger auf die AuthzAccessCheck-Funktion übergeben wird, einen Aufruf der anwendungsdefinierten AuthzAccessCheckCallback-Funktion auf, in der ein Zeiger auf die gefundene ACCESS_ALLOWED_CALLBACK_OBJECT_ACE Struktur im pAce-Parameter übergeben wird.

Syntax

typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;

Member

Header

ACE_HEADER Struktur, die Größe und Typ von ACE angibt. Es enthält auch Flags, die die Vererbung des ACE durch untergeordnete Objekte steuern. Das AceType-Element der ACE_HEADER-Struktur sollte auf ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE festgelegt werden, und das AceSize-Element sollte auf die Gesamtzahl der Bytes festgelegt werden, die für die ACCESS_ALLOWED_CALLBACK_OBJECT_ACE-Struktur zugewiesen sind.

Mask

Eine ACCESS_MASK , die die Zugriffsrechte angibt, die das System dem Treuhänder zulässt.

Flags

Eine Reihe von Bitflags, die angeben, ob die Member ObjectType und InheritedObjectType vorhanden sind. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.

Wert Bedeutung
0
Weder ObjectType noch InheritedObjectType sind vorhanden. Das SidStart-Element folgt unmittelbar nach dem Flags-Member .
ACE_OBJECT_TYPE_PRESENT
ObjectType ist vorhanden und enthält eine GUID.

Wenn dieser Wert nicht angegeben wird, folgt das InheritedObjectType-Element unmittelbar nach dem Flags-Element .

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType ist vorhanden und enthält eine GUID.

Wenn dieser Wert nicht angegeben wird, können alle Typen untergeordneter Objekte den ACE erben.

ObjectType

Dieses Element ist nur vorhanden, wenn das ACE_OBJECT_TYPE_PRESENT Bit im Flags-Element festgelegt ist. Andernfalls folgt das InheritedObjectType-Element unmittelbar nach dem Flags-Member .

Wenn dieses Element vorhanden ist, ist es eine GUID-Struktur , die einen Eigenschaftssatz, eine Eigenschaft, eine erweiterte Rechte oder einen Typ des untergeordneten Objekts identifiziert. Der Zweck dieser GUID hängt von den Zugriffsrechten ab, die im Mask-Element angegeben sind.

Wert Bedeutung
ADS_RIGHT_DS_CONTROL_ACCESS
Die ObjectType-GUID identifiziert ein erweitertes Zugriffsrecht.
ADS_RIGHT_DS_CREATE_CHILD
Die ObjectType-GUID identifiziert einen Typ des untergeordneten Objekts. Der ACE steuert das Recht des Treuhänders, diesen Typ von untergeordneten Objekten zu erstellen.
ADS_RIGHT_DS_READ_PROP
Die ObjectType-GUID identifiziert einen Eigenschaftssatz oder eine Eigenschaft des Objekts. Der ACE steuert das Recht des Treuhänders, die Eigenschaft oder den Eigenschaftensatz zu lesen.
ADS_RIGHT_DS_WRITE_PROP
Die ObjectType-GUID identifiziert einen Eigenschaftssatz oder eine Eigenschaft des Objekts. Der ACE steuert das Recht des Treuhänders, die Eigenschaft oder den Eigenschaftensatz zu schreiben.
ADS_RIGHT_DS_SELF
Die ObjectType-GUID identifiziert einen überprüften Schreibvorgang.

InheritedObjectType

Dieses Element ist nur vorhanden, wenn das ACE_INHERITED_OBJECT_TYPE_PRESENT Bit im Flags-Element festgelegt ist.

Wenn dieses Element vorhanden ist, ist es eine GUID-Struktur , die den Typ des untergeordneten Objekts identifiziert, das das ACE erben kann. Die Vererbung wird auch durch die Vererbungsflags in der ACE_HEADER sowie durch jeglichen Schutz vor Vererbung gesteuert, der auf den untergeordneten Objekten platziert wird.

Der Offset dieses Elements kann variieren. Wenn das Flags-Element nicht das ACE_OBJECT_TYPE_PRESENT-Flag enthält, beginnt das InheritedObjectType-Element mit dem vom ObjectType-Element angegebenen Offset.

SidStart

Die erste DWORD-SID eines Treuhänders. Die restlichen Bytes der SID werden nach dem SidStart-Member im zusammenhängenden Arbeitsspeicher gespeichert. Diese SID kann mit Anwendungsdaten angefügt werden.

Hinweise

Wenn weder die ObjectType- noch Die InheritedObjectType-GUID angegeben wird, verfügt die ACCESS_ALLOWED_CALLBACK_OBJECT_ACE-Struktur über dieselbe Semantik wie die von der ACCESS_ALLOWED_CALLBACK_ACE-Struktur verwendeten. Verwenden Sie in diesem Fall die ACCESS_ALLOWED_CALLBACK_ACE-Struktur , da sie kleiner und effizienter ist.

Eine ACL, die eine ACCESS_ALLOWED_CALLBACK_OBJECT_ACE enthält, muss die ACL_REVISION_DS Revisionsnummer im ACL-Header angeben.

Die vom Mask-Member angegebenen Zugriffsrechte werden jedem Treuhänder gewährt, der über eine aktivierte SID verfügt, die der im SidStart-Member gespeicherten SID entspricht.

Wenn eine ACCESS_ALLOWED_CALLBACK_OBJECT_ACE-Struktur erstellt wird, muss genügend Arbeitsspeicher zugewiesen werden, um die GUID-Strukturen in den Membern ObjectType und InheritedObjectType unterzubringen, sofern eine oder beide vorhanden sind, sowie die vollständige SID des Treuhänders im SidStart-Member und den anschließenden zusammenhängenden Arbeitsspeicher unterzubringen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winnt.h (Einschließen von Windows.h)

Weitere Informationen

ASS

ACL

AddAuditAccessObjectAce

GUID

SID