Partager via


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

ExReleaseResourceAndLeaveCriticalRegion

keAreApcsDisabled

KeLeaveCriticalRegion