Partager via


SeAccessCheckFromStateEx, fonction (ntifs.h)

SeAccessCheckFromStateEx vérifie si les droits d’accès demandés peuvent être accordés à un objet protégé par un descripteur de sécurité et un propriétaire d’objet facultatif.

Syntaxe

BOOLEAN SeAccessCheckFromStateEx(
  PSECURITY_DESCRIPTOR SecurityDescriptor,
  PACCESS_TOKEN        PrimaryToken,
  PACCESS_TOKEN        ClientToken,
  ACCESS_MASK          DesiredAccess,
  ACCESS_MASK          PreviouslyGrantedAccess,
  PPRIVILEGE_SET       *Privileges,
  PGENERIC_MAPPING     GenericMapping,
  KPROCESSOR_MODE      AccessMode,
  PACCESS_MASK         GrantedAccess,
  PNTSTATUS            AccessStatus
);

Paramètres

SecurityDescriptor

[in] Pointeur vers une structure SECURITY_DESCRIPTOR contenant les informations de sécurité protégeant l’objet accessible.

PrimaryToken

[in] Pointeur vers une structure de ACCESS_TOKEN opaque pour le jeton principal. Cette structure fournit les informations du jeton nécessaires pour effectuer une vérification d’accès.

ClientToken

[in_opt] Pointeur facultatif vers une structure de ACCESS_TOKEN opaque pour le jeton client.

DesiredAccess

[in] Valeur ACCESS_MASK qui spécifie les droits d’accès souhaités à vérifier.

PreviouslyGrantedAccess

[in] Valeur ACCESS_MASK qui spécifie tous les accès auxquels l’utilisateur a déjà été accordé ; par exemple, en raison de la conservation d’un privilège.

Privileges

[out] Pointeur vers une structure PRIVILEGE_SET dans laquelle un jeu de privilèges est retourné pour indiquer les privilèges utilisés dans le cadre de la validation d’accès.

GenericMapping

[in] Pointeur vers la structure GENERIC_MAPPING associée à ce type d’objet.

AccessMode

[in] Valeur KPROCESSOR_MODE qui spécifie le mode processeur à utiliser dans la vérification. AccessMode peut être KernelMode ou UserMode. Les pilotes de niveau inférieur doivent spécifier KernelMode.

GrantedAccess

[out] Pointeur vers une valeur de ACCESS_MASK retournée qui indique l’accès accordé.

AccessStatus

[out] Pointeur vers une valeur d’état NT qui peut être retournée pour indiquer pourquoi l’accès a été refusé. Voir les remarques.

Valeur de retour

SeAccessCheckFromStateEx retourne TRUE si l’accès est autorisé ; elle retourne FALSE si l’accès n’est pas autorisé.

Remarques

SeAccessCheckFromStateEx peut effectuer des tests pour les privilèges suivants, en fonction des accès demandés :

  • SeTakeOwnershipPrivilege
  • SeSecurityPrivilege

Cette routine peut également vérifier si l’appelant est le propriétaire de l’objet afin d’accorder WRITE_DAC ou READ_CONTROL accès.

Si cette routine retourne FALSE, l’appelant doit utiliser la AccessStatus retournée comme valeur de retour. Autrement dit, l’appelant doit éviter de coder en dur une valeur de retour de STATUS_ACCESS_DENIED ou toute autre valeur STATUS_XXX spécifique.

Cette routine peut être appelée à partir du niveau DPC et ne doit donc pas être paginable.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000
d’en-tête ntifs.h
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe

Voir aussi

SeAccessCheck

SeAccessCheckFromState