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