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:
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