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:

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:

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.