Partager via


Règle MarkingQueuedIrps (wdm)

La règle MarkingQueuedIrps spécifie que le pilote appelle IoMarkIrpPending pour un IRP qui nécessite un traitement supplémentaire uniquement en tenant un verrou de rotation. Cette règle s’applique uniquement lorsque le pilote ajoute l’IRP à une file d’attente gérée par le pilote.

Plus précisément, le pilote enfreint cette règle uniquement lorsque tous les événements suivants se produisent.

Les pilotes doivent appeler IoMarkIrpPending pour un IRP en file d’attente uniquement en tenant un verrou de rotation. Sinon, un IRP pourrait être mis en file d’attente, terminé par une autre routine de pilote et libéré par le système avant que l’appel à IoMarkIrpPending se produise, provoquant ainsi un plantage.

Pour plus d’informations, consultez Synchronisation de l’annulation D’IRP.

Modèle de pilote : WDM

Comment tester

Au moment de la compilation

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

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.

S’applique à

InsertHeadListIoCallDriverIoMarkIrpPendingKeAcquireInStackQueuedSpinLockKeAcquireSpinLockKeInsertByKeyDeviceQueueKeInsertDeviceQueueKeInsertQueue KeInsertQueueDpcKeReleaseInStackQueuedSpinLockKeReleaseSpinLockPoCallDriverRemoveHeadList