KeEnterCriticalRegion, fonction (ntddk.h)
La KeEnterCriticalRegion de routine désactive temporairement l’exécution des API de noyau normales, mais n’empêche pas l’exécution d’API de noyau spéciales.
Syntaxe
void KeEnterCriticalRegion();
Valeur de retour
Aucun
Remarques
Un pilote appelle cette routine pour entrer dans une région critique dans laquelle l’exécution des API de noyau normales est différée jusqu’à ce que ce pilote quitte la région critique en appelant la routine KeLeaveCriticalRegion. Tout appelant de KeEnterCriticalRegion doit appeler KeLeaveCriticalRegion le plus rapidement possible après avoir entré une région critique.
Les pilotes de niveau supérieur peuvent appeler KeEnterCriticalRegion lors de l’exécution dans le contexte du thread qui a demandé l’opération d’E/S actuelle.
Un thread qui se trouve à l’intérieur d’une région critique a à la fois des API utilisateur et des API de noyau normales désactivées, mais pas des API de noyau spéciales. Pour plus d’informations sur ces types d’APC, consultez Types d’API.
Les régions critiques peuvent être entrées de manière récursive et chaque appel à KeEnterCriticalRegion doit avoir un appel correspondant à KeLeaveCriticalRegion.
Un pilote peut utiliser une région critique pour acquérir et libérer l’accès exclusif à une ressource partagée. Dans ce cas, les routines ExEnterCriticalRegionAndAcquireResourceExclusive et ExReleaseResourceAndLeaveCriticalRegion peuvent être utilisées au lieu des routines KeEnterCriticalRegion et KeLeaveCriticalRegion. Pour plus d’informations, consultez l’exemple de code dans ExEnterCriticalRegionAndAcquireResourceExclusive.
Pour plus d’informations sur les API, consultez appels de procédure asynchrone.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
plateforme cible | Universel |
d’en-tête | ntddk.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
règles de conformité DDI | CriticalRegions(wdm), HwStorPortProhibitedDDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm) |
Voir aussi
ExEnterCriticalRegionAndAcquireResourceExclusive