Função KeEnterCriticalRegion (wdm.h)
A rotina KeEnterCriticalRegion desabilita temporariamente a execução de APCs de kernel normais, mas não impede que APCs de kernel especiais sejam executadas.
Sintaxe
void KeEnterCriticalRegion();
Retornar valor
Nenhum
Comentários
Um driver chama essa rotina para entrar em uma região crítica na qual a execução de APCs de kernel normais é adiada até que esse driver saia da região crítica chamando a rotina KeLeaveCriticalRegion . Qualquer chamador de KeEnterCriticalRegion deve chamar KeLeaveCriticalRegion o mais rápido possível depois de entrar em uma região crítica.
Os drivers de nível mais alto podem chamar KeEnterCriticalRegion durante a execução no contexto do thread que solicitou a operação de E/S atual.
Um thread que está dentro de uma região crítica tem APCs de usuário e APCs de kernel normais desabilitadas, mas não APCs de kernel especiais. Para obter mais informações sobre esses tipos de APC, consulte Tipos de APCs.
Regiões críticas podem ser inseridas recursivamente e cada chamada para KeEnterCriticalRegion deve ter uma chamada correspondente para KeLeaveCriticalRegion.
Um driver pode usar uma região crítica para adquirir e liberar acesso exclusivo a um recurso compartilhado. Nesse caso, as rotinas ExEnterCriticalRegionAndAcquireResourceExclusive e ExReleaseResourceAndLeaveCriticalRegion podem ser usadas em vez das rotinas KeEnterCriticalRegion e KeLeaveCriticalRegion . Para obter mais informações, consulte o exemplo de código em ExEnterCriticalRegionAndAcquireResourceExclusive.
Para obter mais informações sobre APCs, consulte Chamadas de procedimento assíncrono.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Regras de conformidade de DDI | CriticalRegions(wdm), HwStorPortProhibitedDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm) |
Confira também
ExEnterCriticalRegionAndAcquireResourceExclusive