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