structure ACCESS_STATE (wdm.h)
La structure ACCESS_STATE décrit l’état d’un accès en cours. Il contient le contexte d’objet d’un objet, les types d’accès souhaités restants, les types d’accès accordés et, éventuellement, un ensemble de privilèges pour indiquer quels privilèges ont été utilisés pour autoriser l’accès.
Les pilotes ne doivent pas modifier directement la structure ACCESS_STATE. Pour créer et manipuler cette structure, utilisez les routines de prise en charge répertoriées dans la section Voir aussi.
Syntaxe
typedef struct _ACCESS_STATE {
LUID OperationID;
BOOLEAN SecurityEvaluated;
BOOLEAN GenerateAudit;
BOOLEAN GenerateOnClose;
BOOLEAN PrivilegesAllocated;
ULONG Flags;
ACCESS_MASK RemainingDesiredAccess;
ACCESS_MASK PreviouslyGrantedAccess;
ACCESS_MASK OriginalDesiredAccess;
SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
PSECURITY_DESCRIPTOR SecurityDescriptor;
PVOID AuxData;
union {
INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
PRIVILEGE_SET PrivilegeSet;
} Privileges;
BOOLEAN AuditPrivileges;
UNICODE_STRING ObjectName;
UNICODE_STRING ObjectTypeName;
} ACCESS_STATE, *PACCESS_STATE;
Membres
OperationID
Identificateur de l’opération à laquelle cet accès est lié. Ce membre est remplacé par TransactionId dans le membre AuxData et n’est actuellement pas utilisé par les pilotes.
SecurityEvaluated
Valeur booléenne qui spécifie si la sécurité a été évaluée dans le cadre du case activée d’accès. Ce membre n’est actuellement pas utilisé par les pilotes.
GenerateAudit
Valeur booléenne qui spécifie si l’accès doit générer un audit. Ce membre n’est actuellement pas utilisé par les pilotes.
GenerateOnClose
Valeur booléenne qui spécifie si un audit doit être généré lors de la fermeture du handle en cours de création. Ce membre n’est actuellement pas utilisé par les pilotes.
PrivilegesAllocated
Valeur booléenne qui spécifie si des privilèges ont été alloués dans le cadre du case activée d’accès. Ce membre n’est actuellement pas utilisé par les pilotes.
Flags
Valeur 32 bits qui contient des indicateurs de champ de bits pour l’accès. Un pilote peut case activée pour l’indicateur d’accès (TOKEN_HAS_TRAVERSE_PRIVILEGE). Pour plus d’informations sur la façon de case activée pour l’accès traversant, consultez Rechercher le privilège traverse sur IRP_MJ_CREATE. Un pilote peut également case activée pour l’indicateur TOKEN_IS_RESTRICTED. Ces indicateurs sont définis dans Ntifs.h.
RemainingDesiredAccess
Un ACCESS_MASK type qui décrit les droits d’accès qui n’ont pas encore été accordés à l’appelant. Un pilote utilise ce membre pour déterminer si le système de sécurité Windows peut accorder l’accès. Si l’accès peut être accordé, le pilote met à jour les membres PreviouslyGrantedAccess et RemainingDesiredAccess en conséquence.
PreviouslyGrantedAccess
Un ACCESS_MASK type qui spécifie les informations sur l’accès qui a déjà été accordé à l’appelant de l’une des routines du moniteur de référence de sécurité. Le système de sécurité Windows accorde certains droits en fonction des privilèges de l’appelant, tels que le droit de passage (la possibilité de parcourir un répertoire dans le cadre de l’ouverture d’un sous-répertoire ou d’un fichier).
OriginalDesiredAccess
Un ACCESS_MASK type qui contient les droits d’accès d’origine qui ont été demandés par l’appelant.
SubjectSecurityContext
Une structure SECURITY_SUBJECT_CONTEXT qui contient des informations sur le contexte de sécurité de l’objet utilisé pour valider et auditer l’accès.
SecurityDescriptor
Pointeur vers une structure de SECURITY_DESCRIPTOR qui contient des informations de sécurité pour l’objet auquel cet accès est lié.
AuxData
Pointeur vers un bloc de mémoire qui contient des données auxiliaires pour l’accès.
Privileges
Union qui peut contenir l’une des structures suivantes. Cette union permet à trois privilèges d’être incorporés dans la structure d’état d’accès. Si d’autres privilèges sont requis pendant l’opération, ils sont alloués dans l’extension membre AuxData . Ce membre n’est actuellement pas utilisé par les pilotes.
Privileges.InitialPrivilegeSet
Structure INITIAL_PRIVILEGE_SET qui spécifie un ensemble de privilèges initiaux pour l’accès.
Privileges.PrivilegeSet
Une structure PRIVILEGE_SET qui spécifie un ensemble de privilèges pour l’accès.
AuditPrivileges
Valeur booléenne qui spécifie si une utilisation des privilèges doit être auditée. Ce membre n’est actuellement pas utilisé par les pilotes.
ObjectName
Une structure UNICODE_STRING qui contient la chaîne de nom d’objet pour l’accès. Ce membre est utilisé pour l’audit.
ObjectTypeName
Structure UNICODE_STRING qui contient la chaîne de nom de type d’objet pour l’accès. Ce membre est utilisé pour l’audit.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | wdm.h (inclure Ntifs.h) |
Voir aussi
SeOpenObjectForDeleteAuditAlarm