Règle SpinLock (wdm)
La règle SpinLock spécifie qu’après avoir appelé KeAcquireSpinLock, le pilote appelle KeReleaseSpinLock avant les appels suivants à KeAcquireSpinLock ou à KeAcquireSpinLockRaiseToDpc.
Les appels imbriqués sont autorisés s’ils acquièrent et libèrent des verrous pour différentes ressources. Les appels imbriqués pour acquérir ou libérer des verrous pour les mêmes ressources violent cette règle.
Cette règle spécifie également que le pilote a utilisé KeReleaseSpinLock pour libérer tous les verrous de rotation avant la fin de la routine de répartition ou de la routine d’annulation.
Modèle de pilote : WDM
Bogues case activée trouvés avec cette règle : 0xC4 de vérification des bogues : DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040009)
Comment tester
Au moment de la compilation |
---|
Exécutez Static Driver Verifier et spécifiez la règle SpinLock . 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 de vérification de conformité DDI . |
S’applique à
KeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLockKeTryToAcquireSpinLockAtDpcLevel