Partager via


structure ACCESS_ALLOWED_OBJECT_ACE (winnt.h)

La structure ACCESS_ALLOWED_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 de 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 les objets enfants.

Syntaxe

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;

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_OBJECT_ACE_TYPE, et le membre AceSize doit être défini sur le nombre total d’octets alloués pour la structure ACCESS_ALLOWED_OBJECT_ACE.

Mask

Une ACCESS_MASK qui spécifie les droits d’accès que le système permettra auxde fiduciaire .

Flags

Ensemble d’indicateurs de bits qui indiquent si les membres ObjectType et InheritedObjectType sont présents. Ce paramètre peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
0
Aucun ObjectType ni InheritedObjectType ne sont présents. Le membre SidStart suit immédiatement après le membre des indicateurs de .
ACE_OBJECT_TYPE_PRESENT
ObjectType est présent et contient un GUID .

Si cette valeur n’est pas spécifiée, le membre InheritedObjectType suit immédiatement après le membre Flags.

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType est présent et contient un GUID .

Si cette valeur n’est pas spécifiée, tous les types d’objets enfants peuvent hériter de l’ACE.

ObjectType

Ce membre n’existe que si le bit ACE_OBJECT_TYPE_PRESENT est défini dans le membre Indicateurs. Sinon, le membre InheritedObjectType suit immédiatement après le membre Flags.

Si ce membre existe, il s’agit d’un GUID structure qui identifie un jeu de propriétés, une propriété, un droit étendu ou un type d’objet enfant. L’objectif de cette GUID dépend des droits d’accès spécifiés dans le membre Mask.

Valeur Signification
ADS_RIGHT_DS_CONTROL_ACCESS
L'ObjectTypeGUID identifie un droit d’accès étendu.
ADS_RIGHT_DS_CREATE_CHILD
L'ObjectTypeGUID identifie un type d’objet enfant. L’ACE contrôle le droit du syndic de créer ce type d’objet enfant.
ADS_RIGHT_DS_READ_PROP
L'ObjectTypeGUID identifie un jeu de propriétés ou une propriété de l’objet. L’ACE contrôle le droit du syndic de lire la propriété ou l’ensemble de propriétés.
ADS_RIGHT_DS_WRITE_PROP
L'ObjectTypeGUID identifie un jeu de propriétés ou une propriété de l’objet. L’ACE contrôle le droit du fiduciaire d’écrire la propriété ou l’ensemble de propriétés.
ADS_RIGHT_DS_SELF
L'ObjectTypeGUID identifie une écriture validée.

InheritedObjectType

Ce membre n’existe que si le bit ACE_INHERITED_OBJECT_TYPE_PRESENT est défini dans le membre Indicateurs.

Si ce membre existe, il s’agit d’un GUID structure 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

Spécifie le premier DWORD d’un SID qui identifie le fiduciaire auquel les droits d’accès sont accordés. Les octets restants du SID sont stockés en mémoire contiguë après le membre SidStart. Ce SID peut être ajouté avec des données d’application.

Le décalage de ce membre peut varier. Si les indicateurs membre sont zéro, le membre SidStart démarre au décalage spécifié par le membre ObjectType . Si indicateurs contient un seul indicateur (ACE_OBJECT_TYPE_PRESENT ou ACE_INHERITED_OBJECT_TYPE_PRESENT), le membre SidStart démarre au décalage spécifié par le membre InheritedObjectType .

Remarques

Si ni l' ObjectType ni le GUID InheritedObjectType n’est spécifié, la structure ACCESS_ALLOWED_OBJECT_ACE a la même sémantique que celle utilisée par la structure ACCESS_ALLOWED_ACE. Dans ce cas, utilisez la structure ACCESS_ALLOWED_ACE car elle est plus petite et plus efficace.

Une liste de contrôle d’accès contenant un ACCESS_ALLOWED_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 administrateur qui possède un SID activé qui correspond au SID stocké dans le membre SidStart .

Une structure ACCESS_ALLOWED_OBJECT_ACE peut être créée dans une liste de contrôle d’accès (ACL) par un appel à la fonction AddAccessAllowedObjectAce. Lorsque cette fonction est utilisée, la quantité correcte de mémoire nécessaire pour prendre en charge les structures GUID dans le ObjectType et membres InheritedObjectType, si l’un ou les deux existe, ainsi que pour prendre en charge le SID du fiduciaire est automatiquement alloué. En outre, les valeurs des membres Header.AceType et Header.AceSize sont définies automatiquement. Lorsqu’une structure ACCESS_ALLOWED_OBJECT_ACE est créée en dehors d’une liste de contrôle d’accès, une mémoire suffisante doit être allouée pour prendre en charge les structures GUID dans le ObjectType et membres InheritedObjectType, si l’un ou les deux existe, ainsi que pour prendre en charge le SID complet du fiduciaire dans le membre SidStart membre et la mémoire contiguë qui suit. En outre, les valeurs des membres Header.AceType et Header.AceSize doivent être définies explicitement par l’application.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
d’en-tête winnt.h (include Windows.h)

Voir aussi

ACE

de liste de contrôle d’accès

addAccessAllowedObjectAce

GUID

SID