SYSTEM_AUDIT_OBJECT_ACE-Struktur (winnt.h)
Die SYSTEM_AUDIT_OBJECT_ACE-Struktur definiert einen Zugriffssteuerungseintrag (Access Control Entry , ACE) für eine Systemzugriffssteuerungsliste (SACL). Der ACE kann den Zugriff auf ein Objekt oder Unterobjekte wie Eigenschaftensätze oder Eigenschaften überwachen. Der ACE enthält eine Reihe von Zugriffsrechten, eine GUID, die den Typ des Objekts oder Unterobjekts identifiziert, und einen Sicherheitsbezeichner (Security Identifier , SID), der den Treuhänder identifiziert, für den das System den Zugriff überwacht. Der ACE enthält außerdem eine GUID und verschiedene Flags, die die Vererbung des ACE an untergeordnete Objekte steuern.
Syntax
typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE;
Member
Header
Eine ACE_HEADER-Struktur , die die Größe und den Typ von ACE angibt. Es enthält Flags, die die Vererbung des ACE durch untergeordnete Objekte steuern. Die Struktur enthält auch Flags, die angeben, ob der ACE erfolgreiche Zugriffsversuche, fehlgeschlagene Zugriffsversuche oder beides überwacht. Das AceType-Element der ACE_HEADER-Struktur sollte auf SYSTEM_AUDIT_OBJECT_ACE_TYPE festgelegt werden, und das AceSize-Element sollte auf die Gesamtzahl der Bytes festgelegt werden, die für die SYSTEM_AUDIT_OBJECT_ACE-Struktur zugewiesen sind.
Mask
Ein ACCESS_MASK , der die Zugriffsrechte angibt, die das System auf Zugriffsversuche durch den Treuhänder überwacht.
Flags
Eine Reihe von Bitflags, die angeben, ob die Member ObjectType und InheritedObjectType GUIDs enthalten. Dieser Member kann eine Kombination der folgenden Werte sein. Legen Sie alle undefinierten Bits auf Null fest.
Wert | Bedeutung |
---|---|
|
Das ObjectType-Element enthält eine GUID. |
|
Das InheritedObjectType-Element enthält eine GUID. |
ObjectType
Eine GUID-Struktur , die einen Eigenschaftensatz, eine Eigenschaft, eine erweiterte Rechte oder einen Typ des untergeordneten Objekts identifiziert.
Dieser Member ist nur gültig, wenn das ACE_OBJECT_TYPE_PRESENT Bit im Flags-Element festgelegt ist. Andernfalls wird ObjectType ignoriert.
Der Zweck dieser GUID hängt von den Zugriffsrechten ab, die im Mask-Element angegeben sind.
Dieser Member kann einer der folgenden Werte sein.
InheritedObjectType
Eine GUID-Struktur , die den Typ des untergeordneten Objekts identifiziert, das das ACE erben kann.
Dieser Member ist nur gültig, wenn das ACE_INHERITED_OBJECT_TYPE_PRESENT Bit im Flags-Element festgelegt ist. Wenn dieses Bit nicht festgelegt ist, wird InheritedObjectType ignoriert, und alle Typen von untergeordneten Objekten können den ACE erben. In beiden Fällen wird die Vererbung auch durch die Vererbungsflags in der 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 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, für den die Zugriffsversuche überwacht 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 SYSTEM_AUDIT_OBJECT_ACE-Struktur dieselbe Semantik wie die SYSTEM_AUDIT_ACE-Struktur auf. Verwenden Sie in diesem Fall die SYSTEM_AUDIT_ACE-Struktur , da sie kleiner und effizienter ist.
Eine ACL, die eine SYSTEM_AUDIT_OBJECT_ACE enthält, muss die ACL_REVISION_DS Revisionsnummer in der ACE_HEADER-Struktur angeben.
Wenn eine SYSTEM_AUDIT_OBJECT_ACE-Struktur erstellt wird, muss genügend Arbeitsspeicher zugewiesen werden, um die GUID-Strukturen in objectType - und InheritedObjectType-Membern aufzunehmen, sofern eine oder beide vorhanden sind, sowie die vollständige SID des Treuhänders im SidStart-Member und dem anschließenden zusammenhängenden Arbeitsspeicher unterzubringen.
Eine SYSTEM_AUDIT_OBJECT_ACE Struktur kann in einer Zugriffssteuerungsliste (Access Control List , ACL) durch einen Aufruf der AddAuditAccessObjectAce-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 SYSTEM_AUDIT_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 dem 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
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) |