Structure ACL (wdm.h)

La structure ACL est l’en-tête d’une liste de contrôle d’accès (ACL). Une liste de contrôle d’accès complète se compose d’une structure ACL suivie d’une liste ordonnée de zéro ou plusieurs entrées de contrôle d’accès (ACE).

Syntaxe

typedef struct _ACL {
  UCHAR  AclRevision;
  UCHAR  Sbz1;
  USHORT AclSize;
  USHORT AceCount;
  USHORT Sbz2;
} ACL;

Membres

AclRevision

Niveau de révision de la liste de contrôle d’accès.

Microsoft Windows NT 4.0 et versions antérieures : Cette valeur doit être ACL_REVISION.

Microsoft Windows 2000 et versions ultérieures : Cette valeur peut être ACL_REVISION ou ACL_REVISION_DS. Elle doit être ACL_REVISION_DS si l’ACL contient un ACE spécifique à un objet.

Sbz1

Zéro octet de remplissage qui aligne le membre AclRevision sur une limite 16 bits.

AclSize

Taille, en octets, de la liste de contrôle d’accès. Cette valeur inclut à la fois la structure ACL et tous les AE.

AceCount

Nombre d’AE stockées dans la liste de contrôle d’accès.

Sbz2

Deux octets de remplissage zéro qui alignent la structure ACL sur une limite 32 bits.

Remarques

Une liste de contrôle d’accès comprend une liste séquentielle de zéro ou plusieurs AE. Les points d’accès individuels d’une liste de contrôle d’accès sont numérotés de 0 à n, où n+1 correspond au nombre d’AES dans la liste de contrôle d’accès. Lors de la modification d’une liste de contrôle d’accès, un pilote fait référence à un ACE dans la liste de contrôle d’accès par son index.

Il existe deux types de liste de contrôle d’accès : discrétionnaire et système.

Une liste de contrôle d’accès discrétionnaire (DACL) est contrôlée par le propriétaire d’un objet ou toute personne autorisée WRITE_DAC accès à l’objet. Il spécifie l’accès d’utilisateurs et de groupes particuliers à un objet. Par exemple, le propriétaire d’un fichier peut utiliser une liste dacl pour contrôler les utilisateurs et les groupes qui peuvent et ne peuvent pas avoir accès au fichier.

Un objet peut également avoir des informations de sécurité au niveau du système, sous la forme d’une liste de contrôle d’accès système (SACL) contrôlée par un administrateur système. Une liste de contrôle d’accès partagé peut permettre à l’administrateur système d’auditer toutes les tentatives d’accès à un objet.

Trois structures ACE sont actuellement définies :

Attribut Description
ACCESS_ALLOWED_ACE Octroie des droits spécifiés à un utilisateur ou un groupe. Cette ACE est stockée dans une liste de contrôle d’accès dacl.
ACCESS_DENIED_ACE Refuse les droits spécifiés à un utilisateur ou à un groupe. Cette ACE est stockée dans une liste de contrôle d’accès dacl.
SYSTEM_AUDIT_ACE Spécifie les types d’accès qui entraîneront des audits au niveau du système. Cette ACE est stockée dans une liste de contrôle d’accès sa.
 

Une quatrième structure ACE, SYSTEM_ALARM_ACE, n’est actuellement pas prise en charge.

La structure ACL doit être traitée comme si elle était opaque et les pilotes ne doivent pas essayer de travailler directement avec ses membres. Pour s’assurer que les listes de contrôle d’accès sont sémantiquement correctes, les pilotes peuvent utiliser les fonctions répertoriées dans la section Voir aussi pour créer et manipuler des listes de contrôle d’accès.

Les structures ACL et ACE doivent être alignées sur les limites 32 bits.

Configuration requise

Condition requise Valeur
En-tête wdm.h (inclure Wdm.h)

Voir aussi

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACE

RtlAddAccessAllowedAce

RtlCreateAcl

RtlGetAce

RtlSetDaclSecurityDescriptor

SYSTEM_ALARM_ACE

SYSTEM_AUDIT_ACE

TOKEN_DEFAULT_DACL