Función KeEnterCriticalRegion (wdm.h)

La rutina KeEnterCriticalRegion deshabilita temporalmente la ejecución de las API normales del kernel, pero no impide que se ejecuten las API especiales del kernel.

Sintaxis

void KeEnterCriticalRegion();

Valor devuelto

None

Observaciones

Un controlador llama a esta rutina para entrar en una región crítica en la que se aplaza la ejecución de las API normales del kernel hasta que este controlador sale de la región crítica llamando a la rutina KeLeaveCriticalRegion . Cualquier autor de llamada de KeEnterCriticalRegion debe llamar a KeLeaveCriticalRegion lo antes posible después de entrar en una región crítica.

Los controladores de nivel superior pueden llamar a KeEnterCriticalRegion mientras se ejecuta en el contexto del subproceso que solicitó la operación de E/S actual.

Un subproceso que se encuentra dentro de una región crítica tiene las API de usuario y las API de kernel normales deshabilitadas, pero no las API de kernel especiales. Para obtener más información sobre estos tipos de APC, consulte Tipos de API.

Las regiones críticas se pueden especificar de forma recursiva y cada llamada a KeEnterCriticalRegion debe tener una llamada coincidente a KeLeaveCriticalRegion.

Un controlador puede usar una región crítica para adquirir y liberar acceso exclusivo a un recurso compartido. En este caso, se pueden usar las rutinas ExEnterCriticalRegionAndAcquireResourceExclusive y ExReleaseResourceAndLeaveCriticalRegion en lugar de las rutinas KeEnterCriticalRegion y KeLeaveCriticalRegion . Para obtener más información, vea el ejemplo de código en ExEnterCriticalRegionAndAcquireResourceExclusive.

Para obtener más información sobre las API, consulte Llamadas a procedimientos asincrónicos.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Reglas de cumplimiento de DDI CriticalRegions(wdm), HwStorPortProhibitedDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

Consulte también

ExEnterCriticalRegionAndAcquireResourceExclusive

ExReleaseResourceAndLeaveCriticalRegion

KeAreApcsDisabled

KeLeaveCriticalRegion