structure ACCESS_ALLOWED_CALLBACK_OBJECT_ACE (winnt.h)
La structure ACCESS_ALLOWED_CALLBACK_OBJECT_ACE définit une entrée de contrôle d’accès (ACE) qui contrôle l’accès autorisé à un objet, un jeu de propriétés ou une propriété. L’ACE contient un ensemble de droits d’accès, un GUID qui identifie le type d’objet et un identificateur de sécurité (SID) qui identifie le fiduciaire auquel le système accordera l’accès. L’ACE contient également un GUID et un ensemble d’indicateurs qui contrôlent l’héritage de l’ACE par des objets enfants.
Lorsque la fonction AuthzAccessCheck est appelée, chaque structure ACCESS_ALLOWED_CALLBACK_OBJECT_ACE contenue dans la liste DACL d’une structure de SECURITY_DESCRIPTOR passée via un pointeur vers la fonction AuthzAccessCheck appelle un appel à la fonction AuthzAccessCheckCallback définie par l’application, dans laquelle un pointeur vers la structure ACCESS_ALLOWED_CALLBACK_OBJECT_ACE trouvée est passé dans le paramètre pAce .
Syntaxe
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;
Membres
Header
ACE_HEADER structure qui spécifie la taille et le type d’ACE. Il contient également des indicateurs qui contrôlent l’héritage de l’ACE par les objets enfants. Le membre AceType de la structure ACE_HEADER doit être défini sur ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE, et le membre AceSize doit être défini sur le nombre total d’octets alloués pour la structure ACCESS_ALLOWED_CALLBACK_OBJECT_ACE .
Mask
Une ACCESS_MASK qui spécifie les droits d’accès que le système accordera au fiduciaire.
Flags
Ensemble d’indicateurs de bits qui indiquent si les membres ObjectType et InheritedObjectType sont présents. Ce paramètre peut prendre une ou plusieurs des valeurs suivantes.
ObjectType
Ce membre existe uniquement si le bit ACE_OBJECT_TYPE_PRESENT est défini dans le membre Flags . Sinon, le membre InheritedObjectType suit immédiatement après le membre Flags .
Si ce membre existe, il s’agit d’une structure GUID qui identifie un jeu de propriétés, une propriété, un droit étendu ou un type d’objet enfant. L’objectif de ce GUID dépend des droits d’accès spécifiés dans le membre Mask .
InheritedObjectType
Ce membre existe uniquement si le bit ACE_INHERITED_OBJECT_TYPE_PRESENT est défini dans le membre Indicateurs .
Si ce membre existe, il s’agit d’une structure GUID qui identifie le type d’objet enfant qui peut hériter de l’ACE. L’héritage est également contrôlé par les indicateurs d’héritage dans le ACE_HEADER, ainsi que par toute protection contre l’héritage placé sur les objets enfants.
Le décalage de ce membre peut varier. Si le membre Flags ne contient pas l’indicateur ACE_OBJECT_TYPE_PRESENT, le membre InheritedObjectType commence au décalage spécifié par le membre ObjectType .
SidStart
Premier DWORD du SID d’un fiduciaire. Les octets restants du SID sont stockés dans la mémoire contiguë après le membre SidStart . Ce SID peut être ajouté avec des données d’application.
Remarques
Si ni le GUID ObjectType ni InheritedObjectType n’est spécifié, la structure ACCESS_ALLOWED_CALLBACK_OBJECT_ACE a la même sémantique que celles utilisées par la structure ACCESS_ALLOWED_CALLBACK_ACE. Dans ce cas, utilisez la structure ACCESS_ALLOWED_CALLBACK_ACE , car elle est plus petite et plus efficace.
Une liste de contrôle d’accès contenant une ACCESS_ALLOWED_CALLBACK_OBJECT_ACE doit spécifier le numéro de révision ACL_REVISION_DS dans son en-tête ACL .
Les droits d’accès spécifiés par le membre Mask sont accordés à tout fiduciaire qui possède un SID activé qui correspond au SID stocké dans le membre SidStart .
Lorsqu’une structure de ACCESS_ALLOWED_CALLBACK_OBJECT_ACE est créée, une mémoire suffisante doit être allouée pour prendre en charge les structures GUID dans les membres ObjectType et InheritedObjectType , si l’une d’elles existe ou les deux, ainsi que pour prendre en charge le SID complet du fiduciaire dans le membre SidStart et la mémoire contiguë qui le suit.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
En-tête | winnt.h (inclure Windows.h) |