SeAccessCheck, fonction (wdm.h)

SeAccessCheck détermine 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.

Syntaxe

BOOLEAN SeAccessCheck(
  [in]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]  PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
  [in]  BOOLEAN                   SubjectContextLocked,
  [in]  ACCESS_MASK               DesiredAccess,
  [in]  ACCESS_MASK               PreviouslyGrantedAccess,
  [out] PPRIVILEGE_SET            *Privileges,
  [in]  PGENERIC_MAPPING          GenericMapping,
  [in]  KPROCESSOR_MODE           AccessMode,
  [out] PACCESS_MASK              GrantedAccess,
  [out] PNTSTATUS                 AccessStatus
);

Paramètres

[in] SecurityDescriptor

Pointeur vers la structure SECURITY_DESCRIPTOR qui décrit le descripteur de sécurité protégeant l’objet accessible.

[in] SubjectSecurityContext

Pointeur vers la structure opaque SECURITY_SUBJECT_CONTEXT qui spécifie le contexte de sécurité capturé du sujet.

[in] SubjectContextLocked

Valeur booléenne qui indique si le contexte de l’objet de l’utilisateur est verrouillé, de sorte qu’il n’a pas besoin de l’être à nouveau.

[in] DesiredAccess

Spécifie le masque de bits ACCESS_MASK pour les droits d’accès que l’appelant tente d’acquérir. Si l’appelant définit le bit MAXIMUM_ALLOWED, la routine effectue toutes les vérifications DACL. Toutefois, SeAccessCheck n’effectue aucune vérification des privilèges, sauf si l’appelant les demande spécifiquement en définissant les bits ACCESS_SYSTEM_SECURITY ou WRITE_OWNER.

[in] PreviouslyGrantedAccess

Spécifie le ACCESS_MASK masque de bits des droits d’accès déjà accordés, tels que les droits d’accès accordés en raison de la conservation d’un privilège.

[out] Privileges

Pointeur vers une variable fournie par l’appelant à définir sur l’adresse de la structure PRIVILEGE_SET qui sera utilisée dans le cadre de la validation d’accès, ou ce paramètre peut être NULL. La mémoire tampon retournée, le cas échéant, doit être libérée par l’appelant avec SeFreePrivileges.

[in] GenericMapping

Pointeur vers la structure GENERIC_MAPPING associée à ce type d’objet. Cette valeur spécifie les droits d’accès spécifiques impliqués par chaque droit d’accès GENERIC_XXX .

[in] AccessMode

Spécifie le mode d’accès à utiliser dans le case activée, UserMode ou KernelMode.

[out] GrantedAccess

Pointeur vers un masque d’accès retourné indiquant l’accès accordé. Si l’appelant spécifie MAXIMUM_ALLOWED et que la liste DACL dans SecurityDescriptor a la valeur NULL, la routine retourne GENERIC_ALL plus tout accès supplémentaire que l’appelant demande explicitement.

[out] AccessStatus

Pointeur vers la valeur status indiquant pourquoi l’accès a été refusé.

Valeur retournée

Si l’accès est autorisé, SeAccessCheck retourne TRUE.

Remarques

SeAccessCheck peut effectuer des tests de privilèges pour SeTakeOwnershipPrivilege et SeSecurityPrivilege, en fonction des accès demandés. Il peut effectuer des tests de privilèges supplémentaires dans les versions futures du système d’exploitation.

Cette routine peut également case activée 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 accessStatus retourné 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.

Pour plus d’informations sur la sécurité et le contrôle d’accès, consultez Modèle de sécurité Windows pour les développeurs de pilotes et la documentation sur ces rubriques dans le Microsoft Windows SDK.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

ACCESS_MASK

GENERIC_MAPPING

IoGetFileObjectGenericMapping

PRIVILEGE_SET

SE_EXPORTS

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeFreePrivileges

SeValidSecurityDescriptor