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) |