Règle QueuedSpinLock (wdm)

La règle QueuedSpinLock spécifie que le pilote appelle KeAcquireInStackQueuedSpinLock avant d’appeler KeReleaseInStackQueuedSpinLock et que le pilote appelle KeReleaseInStackQueuedSpinLock avant tout appel ultérieur à KeAcquireInStackQueuedSpinLock.

Les appels imbriqués sont autorisés s’ils acquièrent et libèrent des ressources différentes. Les appels imbriqués pour acquérir ou libérer les mêmes ressources violent cette règle.

Cette règle spécifie également que le pilote a appelé KeReleaseInStackQueuedSpinLock pour libérer tous les verrous de rotation en file d’attente 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 (0x00040006)

Comment tester

Au moment de la compilation

Exécutez Static Driver Verifier et spécifiez la règle QueuedSpinLock .

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 à

KeAcquireInStackQueuedSpinLockKeReleaseInStackQueuedSpinLock