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