Regiões críticas e regiões protegidas
Um thread que está dentro de uma região crítica é executado com APCs de usuário e APCs de kernel normais desabilitadas. Um thread dentro de uma região protegida é executado com todas as APCs desabilitadas.
Regiões críticas
Um driver pode entrar e sair de uma região crítica da seguinte maneira:
Chame KeEnterCriticalRegion para inserir uma região crítica.
Chame KeLeaveCriticalRegion para sair de uma região crítica.
Cada chamada para KeEnterCriticalRegion deve ter uma chamada correspondente para KeLeaveCriticalRegion.
Regiões protegidas
Um driver pode entrar e sair de uma região protegida da seguinte maneira:
Chame KeEnterGuardedRegion para entrar em uma região protegida.
Chame KeLeaveGuardedRegion para deixar uma região protegida.
Cada chamada para KeEnterGuardedRegion deve ter uma chamada correspondente para KeLeaveGuardedRegion.
Os drivers desenvolvidos para o Windows Server 2003 e versões posteriores do Windows podem usar regiões protegidas para desabilitar APCs de kernel especiais. Os drivers desenvolvidos para sistemas operacionais anteriores podem desabilitar APCs de kernel especiais elevando o IRQL atual para APC_LEVEL chamando KeRaiseIrql. Use KeLowerIrql para reduzir o IRQL atual para o valor anterior.