Règle CriticalRegions (wdm)
La règle CriticalRegions spécifie que le pilote doit appeler KeEnterCriticalRegion avant d’appeler KeLeaveCriticalRegion et que le pilote appelle KeLeaveCriticalRegion avant tout appel ultérieur à KeEnterCriticalRegion. (Les appels imbriqués sont autorisés.)
Cette règle spécifie également que le pilote appelle KeLeaveCriticalRegion pour réactiver la remise des appels de procédure asynchrone (APC) de noyau normal avant qu’il ne retourne.
La documentation WDK de KeEnterCriticalRegion et KeLeaveCriticalRegion explique que l’appelant de ces fonctions peut s’exécuter sur IRQL<=APC_LEVEL. Dans ce cas, cette règle applique une recommandation de bonne pratique.
Modèle de pilote : WDM
Bogues case activée trouvés avec cette règle : Vérification des bogues 0xC4 : DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040003)
Comment tester
Au moment de la compilation |
---|
Exécutez Static Driver Verifier et spécifiez la règle CriticalRegions . Utilisez les étapes suivantes pour exécuter l’analyse de votre code :
Pour plus d’informations, consultez Utilisation du vérificateur de pilote statique pour rechercher des défauts dans les pilotes. |
Au moment de l'exécution |
---|
Exécutez Driver Verifier et sélectionnez l’option Vérification de conformité DDI (supplémentaire). |
S’applique à
ExEnterCriticalRegionAndAcquireResourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion