Regola CriticalRegions (wdm)

La regola CriticalRegions specifica che il driver deve chiamare KeEnterCriticalRegion prima di chiamare KeLeaveCriticalRegion e che il driver chiama KeLeaveCriticalRegion prima di qualsiasi chiamata successiva a KeEnterCriticalRegion. Le chiamate nidificate sono consentite.

Questa regola specifica inoltre che il driver chiama KeLeaveCriticalRegion per riabilitare il recapito delle normali chiamate di routine asincrone del kernel prima che venga restituito.

La documentazione di WDK di KeEnterCriticalRegion e KeLeaveCriticalRegion spiega che il chiamante di queste funzioni può essere eseguito in IRQL<=APC_LEVEL. In questo caso, questa regola applica una raccomandazione di procedura consigliata.

Modello di driver: WDM

Verifica bug rilevata con questa regola: Controllo bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040003)

Come eseguire il test

In fase di compilazione

Eseguire Static Driver Verifier e specificare la regola CriticalRegions .

Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
  1. Prepara il codice (usa dichiarazioni di tipo ruolo).
  2. Esegui Driver Verifier statico.
  3. Visualizza e analizza i risultati.

Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers.For more information, see Using Static Driver Verifier to Find Defects in Drivers.

In fase di esecuzione

Eseguire Driver Verifier e selezionare l'opzione Verifica conformità DDI (aggiuntiva).

Si applica a

ExEnterCriticalRegionAndAcquireResourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion