Función KeEnterCriticalRegion (ntddk.h)
La rutina KeEnterCriticalRegion deshabilita temporalmente la ejecución de las API de kernel normales, pero no impide que se ejecuten API de kernel especiales.
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 de kernel normales hasta que este controlador sale de la región crítica mediante una llamada 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, las rutinas ExEnterCriticalRegionAndAcquireResourceExclusive y ExReleaseResourceAndLeaveCriticalRegion se pueden usar 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, vea Llamadas a procedimientos asincrónicos.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | ntddk.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), HwStorPortProhibitedDDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm) |
Consulte también
ExEnterCriticalRegionAndAcquireResourceExclusive