Compartilhar via


Regra CriticalRegions (wdm)

A regra CriticalRegions especifica que o driver deve chamar KeEnterCriticalRegion antes de chamar KeLeaveCriticalRegion e que o driver chama KeLeaveCriticalRegion antes de qualquer chamada subsequente para KeEnterCriticalRegion. (Chamadas aninhadas são permitidas.)

Essa regra também especifica que o driver chama KeLeaveCriticalRegion para reabilitar a entrega de APCs (chamadas de procedimento assíncrono) de kernel normais antes de retornar.

A documentação do WDK de KeEnterCriticalRegion e KeLeaveCriticalRegion explica que o chamador dessas funções pode estar em execução em IRQL<=APC_LEVEL. Nessa situação, essa regra impõe uma recomendação de melhores práticas.

Modelo de driver: WDM

Marcar de bugs encontradas com esta regra: 0xC4 de Verificação de Bugs: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040003)

Como testar

Em tempo de compilação

Execute o Verificador de Driver Estático e especifique a regra CriticalRegions .

Use as seguintes etapas para executar uma análise do código:
  1. Prepare seu código (use declarações de tipo de função).
  2. Execute o Verificador de Driver Estático.
  3. Exiba e analise os resultados.

Para obter mais informações, consulte Usando o verificador de driver estático para localizar defeitos em drivers.

Em tempo de execução

Execute o Verificador de Driver e selecione a opção Verificação de conformidade da DDI (adicional).

Aplica-se a

ExEnterCriticalRegionAndAcquireResourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion