Freigeben über


ACCESS_ALLOWED_OBJECT_ACE Struktur (winnt.h)

Die ACCESS_ALLOWED_OBJECT_ACE-Struktur definiert einen Zugriffssteuerungseintrag (ACE), der den Zugriff auf ein Objekt, einen Eigenschaftensatz oder eine Eigenschaft steuert. Die ACE enthält eine Reihe von Zugriffsrechten, eine GUID-, die den Objekttyp identifiziert, und eine Sicherheits-ID (SID), die den Trustee identifiziert, dem das System Zugriff gewährt. Die ACE enthält auch eine GUID- und eine Reihe von Flags, die die Vererbung der 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;

Angehörige

Header

ACE_HEADER Struktur, die die Größe und den Typ der ACE angibt. Sie enthält auch Flags, die die Vererbung der ACE durch untergeordnete Objekte steuern. Das AceType Mitglied der ACE_HEADER-Struktur sollte auf ACCESS_ALLOWED_OBJECT_ACE_TYPE festgelegt werden, und das AceSize Member sollte auf die Gesamtanzahl der Bytes festgelegt werden, die der ACCESS_ALLOWED_OBJECT_ACE Struktur zugeordnet sind.

Mask

Ein ACCESS_MASK, der die Zugriffsrechte angibt, die das System dem Trusteeermöglicht.

Flags

Eine Reihe von Bitkennzeichnungen, die angeben, ob die ObjectType- und InheritedObjectType- Elemente vorhanden sind. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

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

Wenn dieser Wert nicht angegeben ist, folgt das InheritedObjectType Member unmittelbar nach dem Flags Member.

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType- vorhanden ist und eine GUID-enthält.

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

ObjectType

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

Wenn dieses Element vorhanden ist, handelt es sich um eine GUID- Struktur, die einen Eigenschaftensatz, eine Eigenschaft, ein erweitertes Recht oder einen Typ des untergeordneten Objekts identifiziert. Der Zweck dieser GUID- hängt von den im Mask Mitglied 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. Die ACE steuert das Recht des Trustees, diesen Typ des untergeordneten Objekts zu erstellen.
ADS_RIGHT_DS_READ_PROP
Die ObjectType-GUID- identifiziert einen Eigenschaftensatz oder eine Eigenschaft des Objekts. Die ACE steuert das Recht des Trustees, die Eigenschaft oder den Eigenschaftensatz zu lesen.
ADS_RIGHT_DS_WRITE_PROP
Die ObjectType-GUID- identifiziert einen Eigenschaftensatz oder eine Eigenschaft des Objekts. Die ACE steuert das Recht des Trustees, die Eigenschaft oder den Eigenschaftensatz zu schreiben.
ADS_RIGHT_DS_SELF
Die ObjectType-GUID- identifiziert einen überprüften Schreibzugriff.

InheritedObjectType

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

Wenn dieses Element vorhanden ist, handelt es sich um eine GUID- Struktur, die den Typ des untergeordneten Objekts identifiziert, das die ACE erben kann. Die Vererbung wird auch durch die Vererbungskennzeichnungen im ACE_HEADERsowie durch jeden Schutz vor Vererbung gesteuert, die auf den untergeordneten Objekten platziert werden.

Der Offset dieses Elements kann variieren. Wenn das Flags-Element-Element nicht das ACE_OBJECT_TYPE_PRESENT-Flag enthält, beginnt das InheritedObjectType-Element Element mit dem offset, der durch das ObjectType Member angegeben wird.

SidStart

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

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

Bemerkungen

Wenn weder der ObjectType noch InheritedObjectTypeGUID- angegeben wird, weist die ACCESS_ALLOWED_OBJECT_ACE-Struktur die gleiche Semantik wie die von der ACCESS_ALLOWED_ACE Struktur verwendeten auf. 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.

Allen Trustee-, die über eine aktivierte SID verfügen, die mit der im SidStart Mitglied gespeicherten SID übereinstimmt, werden die vom Mask Mitglied angegebenen Zugriffsrechte gewährt.

Eine ACCESS_ALLOWED_OBJECT_ACE Struktur kann in einer Zugriffssteuerungsliste (ACL) durch einen Aufruf der AddAccessAllowedObjectAce-Funktion erstellt werden. Wenn diese Funktion verwendet wird, wird die richtige Menge an Arbeitsspeicher benötigt, um die GUID-Strukturen in der ObjectType- und InheritedObjectType-Member aufzunehmen, sofern eine oder beide vorhanden sind, sowie die SID des Trustees automatisch zugeordnet. Darüber hinaus werden die Werte der Header.AceType und Header.AceSize Member automatisch festgelegt. Wenn eine ACCESS_ALLOWED_OBJECT_ACE Struktur außerhalb einer ACL erstellt wird, muss ausreichend Arbeitsspeicher zugewiesen werden, um die GUID-Strukturen im ObjectType- und InheritedObjectType--Member zu berücksichtigen, sofern eine oder beide vorhanden sind, sowie um die vollständige SID des Trustee im SidStart Member und den zusammenhängenden Speicher nach ihm aufzunehmen. Darüber hinaus müssen die Werte der Header.AceType und Header.AceSize Member explizit von der Anwendung festgelegt werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Header- winnt.h (enthalten Windows.h)

Siehe auch

ACE-

ACL-

AddAccessAllowedObjectAce

GUID-

SID-