Share via


ACCESS_DENIED_OBJECT_ACE Struktur (winnt.h)

Die ACCESS_DENIED_OBJECT_ACE-Struktur definiert einen Zugriffssteuerungseintrag (Access Control Entry , ACE), der den verweigerten 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 den Zugriff verweigert. 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_DENIED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;

Member

Header

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

Mask

Ein ACCESS_MASK , der die Zugriffsrechte angibt, die das System dem Treuhänder verweigert.

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

Gibt den ersten DWORD einer SID an, der den Treuhänder identifiziert, dem die Zugriffsrechte verweigert werden. Die restlichen Bytes der SID werden nach dem SidStart-Member im zusammenhängenden Arbeitsspeicher gespeichert. Diese SID kann mit Anwendungsdaten angefügt werden.

Der Offset dieses Elements kann variieren. Wenn das Flags-Element 0 ist, beginnt das SidStart-Element mit dem vom ObjectType-Element angegebenen Offset. Wenn Flags nur ein Flag enthält (entweder ACE_OBJECT_TYPE_PRESENT oder ACE_INHERITED_OBJECT_TYPE_PRESENT), beginnt das SidStart-Element mit dem vom InheritedObjectType-Element angegebenen Offset.

Hinweise

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

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

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

Eine ACCESS_DENIED_OBJECT_ACE Struktur kann in einer Zugriffssteuerungsliste (Access Control List , ACL) durch einen Aufruf der AddAccessDeniedObjectAce-Funktion erstellt werden. Wenn diese Funktion verwendet wird, wird automatisch die richtige Menge an Arbeitsspeicher zugewiesen, die zum Aufnehmen der GUID-Strukturen in den Membern ObjectType und InheritedObjectType benötigt wird, sofern eine oder beide vorhanden sind, sowie zum Aufnehmen der SID des Treuhänders. Darüber hinaus werden die Werte der Member Header.AceType und Header.AceSize automatisch festgelegt. Wenn eine ACCESS_DENIED_OBJECT_ACE-Struktur außerhalb einer ACL 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. Darüber hinaus müssen die Werte der Header.AceType - und Header.AceSize-Member explizit von der Anwendung festgelegt werden.

Anforderungen

   
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

AddAccessAllowedObjectAce

GUID

SID