Partager via


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 :
  1. Préparez votre code (utilisez les déclarations de type).
  2. Exécutez le vérificateur de pilote statique.
  3. Affichez et analysez les résultats.

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