Partager via


KeEnterCriticalRegion, fonction (ntddk.h)

La routine KeEnterCriticalRegion désactive temporairement l’exécution des API de noyau normales, mais n’empêche pas l’exécution des API de noyau spéciales.

Syntaxe

void KeEnterCriticalRegion();

Valeur de retour

None

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 aussi rapidement que 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 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 un accès exclusif à une ressource partagée. Dans ce cas, les routines ExEnterCriticalRegionAndAcquireResourceExclusive et ExReleaseResourceAndLeaveCriticalRegion peuvent être utilisées à la place 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête ntddk.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Règles de conformité DDI CriticalRegions(wdm), HwStorPortProhibitedDDDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

Voir aussi

ExEnterCriticalRegionAndAcquireResourceExclusive

ExReleaseResourceAndLeaveCriticalRegion

KeAreApcsDisabled

KeLeaveCriticalRegion