Freigeben über


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

Keine

Bemerkungen

Ein Treiber ruft diese Routine auf, um in einen kritischen Bereich zu gelangen, in dem die Ausführung normaler Kernel-APCs verzögert wird, bis dieser Treiber den kritischen Bereich durch Aufrufen der KeLeaveCriticalRegion-Routine verlässt. Jeder Aufrufer von KeEnterCriticalRegion sollte KeLeaveCriticalRegion so schnell wie möglich aufrufen, nachdem er eine kritische Region betreten hat.

Treiber der obersten Ebene können KeEnterCriticalRegion aufrufen, während sie im Kontext des Threads ausgeführt werden, der den aktuellen E/A-Vorgang angefordert hat.

Für einen Thread, der sich in einer kritischen Region befindet, sind 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 entsprechenden Aufruf von KeLeaveCriticalRegion verfügen.

Ein Treiber kann eine kritische Region verwenden, um exklusiven Zugriff auf eine freigegebene Ressource zu erhalten und freizugeben. In diesem Fall können die Routinen ExEnterCriticalRegionAndAcquireResourceExclusive und ExReleaseResourceAndLeaveCriticalRegion anstelle der Routinen KeEnterCriticalRegion und KeLeaveCriticalRegion verwendet werden. Weitere Informationen finden Sie im Codebeispiel in ExEnterCriticalRegionAndAcquireResourceExclusive.

Weitere Informationen zu APCs finden Sie unter Asynchrone Prozeduraufrufe.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header ntddk.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI-Complianceregeln CriticalRegions(wdm), HwStorPortProhibitedDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

Weitere Informationen

ExEnterCriticalRegionAndAcquireResourceExclusive

ExReleaseResourceAndLeaveCriticalRegion

KeAreApcsDisabled

KeLeaveCriticalRegion