KeEnterCriticalRegion-Funktion (ntddk.h)
Die KeEnterCriticalRegion Routine deaktiviert vorübergehend die Ausführung normaler Kernel-APCs, verhindert jedoch nicht, dass spezielle Kernel-APCs ausgeführt werden.
Syntax
void KeEnterCriticalRegion();
Rückgabewert
Nichts
Bemerkungen
Ein Treiber ruft diese Routine auf, um einen kritischen Bereich einzugeben, in dem die Ausführung normaler Kernel-APCs verzögert wird, bis dieser Treiber den kritischen Bereich beendet, indem die KeLeaveCriticalRegion Routine aufgerufen wird. Jeder Aufrufer von KeEnterCriticalRegion sollte KeLeaveCriticalRegion so schnell wie möglich aufrufen, nachdem er in einen kritischen Bereich gelangt ist.
Treiber der höchsten Ebene können KeEnterCriticalRegion- aufrufen, während sie im Kontext des Threads ausgeführt werden, der den aktuellen E/A-Vorgang angefordert hat.
Ein Thread in einem kritischen Bereich hat sowohl Benutzer-APCs als auch normale Kernel-APCs deaktiviert, aber keine speziellen Kernel-APCs. Weitere Informationen zu diesen APC-Typen finden Sie unter Typen von APCs.
Kritische Regionen können rekursiv eingegeben werden, und jeder Aufruf von KeEnterCriticalRegion muss über einen übereinstimmenden Aufruf von KeLeaveCriticalRegionverfügen.
Ein Treiber kann einen kritischen Bereich verwenden, um exklusiven Zugriff auf eine freigegebene Ressource zu erwerben und freizugeben. In diesem Fall können die ExEnterCriticalRegionAndAcquireResourceExclusive und ExReleaseResourceAndLeaveCriticalRegion Routinen anstelle der KeEnterCriticalRegion und KeLeaveCriticalRegion Routinen verwendet werden. Weitere Informationen finden Sie im Codebeispiel in ExEnterCriticalRegionAndAcquireResourceExclusive.
Weitere Informationen zu APCs finden Sie unter asynchronen Prozeduraufrufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
Zielplattform- | Universal |
Header- | ntddk.h (enthalten Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |
DDI-Complianceregeln | CriticalRegions(wdm), HwStorPortProhibitedDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm) |
Siehe auch
ExEnterCriticalRegionAndAcquireResourceExclusive