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.
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.
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) |