Share via


ACCESS_ALLOWED_OBJECT_ACE-Struktur (winnt.h)

Die ACCESS_ALLOWED_OBJECT_ACE-Struktur definiert einen Zugriffssteuerungseintrag (Access Control Entry , ACE), der den zulässigen Zugriff auf ein Objekt, einen Eigenschaftssatz oder eine Eigenschaft steuert. Der ACE enthält eine Reihe von Zugriffsrechten, eine GUID , die den Typ des Objekts identifiziert, und eine Sicherheits-ID (SID), die 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.

Syntax

typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;

Member

Header

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

Mask

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

Flags

Ein Satz 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 von untergeordneten Objekten den ACE erben.

ObjectType

Dieser Member 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 dieser Member vorhanden ist, handelt es sich um eine GUID-Struktur , die einen Eigenschaftensatz, eine Eigenschaft, ein erweitertes Recht oder einen Typ untergeordneter Objekte identifiziert. Der Zweck dieser GUID hängt von den im Mask-Element angegebenen Zugriffsrechten ab.

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 dieser Member vorhanden ist, handelt es sich um eine GUID-Struktur , die den Typ des untergeordneten Objekts identifiziert, das den ACE erben kann. Die Vererbung wird auch durch die Vererbungsflags im ACE_HEADER sowie durch jeglichen Schutz vor Vererbung gesteuert, der auf die untergeordneten Objekte gesetzt wird.

Der Offset dieses Elements kann variieren. Wenn das Flags-Element nicht das flag ACE_OBJECT_TYPE_PRESENT enthält, beginnt das InheritedObjectType-Element bei dem offset, der vom ObjectType-Element angegeben wird.

SidStart

Gibt den ersten DWORD-Wert einer SID an, der den Treuhänder identifiziert, dem die Zugriffsrechte gewährt werden. Die verbleibenden Bytes der SID werden im zusammenhängenden Speicher nach dem SidStart-Element gespeichert. Diese SID kann mit Anwendungsdaten angefügt werden.

Der Offset dieses Elements kann variieren. Wenn das Flags-Element null ist, beginnt das SidStart-Element bei dem offset, der vom ObjectType-Element angegeben wird. Wenn Flags nur ein Flag enthält (entweder ACE_OBJECT_TYPE_PRESENT oder ACE_INHERITED_OBJECT_TYPE_PRESENT), beginnt das SidStart-Element bei dem offset, der vom InheritedObjectType-Element angegeben wird.

Hinweise

Wenn weder die ObjectType- noch die InheritedObjectType-GUID angegeben wird, weist die ACCESS_ALLOWED_OBJECT_ACE-Struktur dieselbe Semantik auf, die von der ACCESS_ALLOWED_ACE-Struktur verwendet wird. Verwenden Sie in diesem Fall die ACCESS_ALLOWED_ACE-Struktur , da sie kleiner und effizienter ist.

Eine ACL, die eine ACCESS_ALLOWED_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.

Eine ACCESS_ALLOWED_OBJECT_ACE-Struktur kann in einer Zugriffssteuerungsliste (Access Control List , ACL) durch einen Aufruf der AddAccessAllowedObjectAce-Funktion erstellt werden. Wenn diese Funktion verwendet wird, wird automatisch die richtige Menge an Arbeitsspeicher zugeordnet, die zum Aufnehmen der GUID-Strukturen in den Membern ObjectType und InheritedObjectType erforderlich ist, sofern eines oder beide vorhanden sind, sowie zur Aufnahme der SID des Treuhänders. Darüber hinaus werden die Werte der Member Header.AceType und Header.AceSize automatisch festgelegt. Wenn eine ACCESS_ALLOWED_OBJECT_ACE-Struktur außerhalb einer ACL erstellt wird, muss ausreichend Arbeitsspeicher zugewiesen werden, um die GUID-Strukturen in den Membern ObjectType und InheritedObjectType aufzunehmen, sofern eines oder beide vorhanden sind, sowie die vollständige SID des Vertrauenshänders im SidStart-Member und den darauf folgenden zusammenhängenden Arbeitsspeicher. Darüber hinaus müssen die Werte der Member Header.AceType und Header.AceSize explizit von der Anwendung festgelegt werden.

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 (windows.h einschließen)

Weitere Informationen

ASS

ACL

AddAccessAllowedObjectAce

GUID

SID