Regola MarkingQueuedIrps (wdm)

La regola MarkQueuedIrps specifica che il driver chiama IoMarkIrpPending per un'IRP che richiede un'ulteriore elaborazione solo mantenendo un blocco di rotazione. Questa regola si applica solo quando il driver aggiunge l'IRP a una coda gestita da driver.

In particolare, il driver viola questa regola solo quando si verificano tutti gli eventi seguenti.

I driver devono chiamare IoMarkIrpPending solo per un IRP accodato mentre mantiene un blocco di rotazione. In caso contrario, un'IRP potrebbe essere dequeued, completata da un'altra routine driver e liberata dal sistema prima che la chiamata a IoMarkIrpPending si verifichi, causando così un arresto anomalo.

Per altre informazioni, vedere Sincronizzazione dell'annullamento di IRP.

Modello di driver: WDM

Come eseguire il test

In fase di compilazione

Eseguire il verifica driver statico e specificare la regola MarkingQueuedIrps .

Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
  1. Prepara il codice (usa dichiarazioni di tipo ruolo).
  2. Esegui Driver Verifier statico.
  3. Visualizza e analizza i risultati.

Per altre informazioni, vedere Uso del verificatore driver statico per trovare i difetti nei driver.

Si applica a

InsertHeadListIoCallDriverIoMarkIrpPendingKeAcquireInStackQueuedSpinLockKeAcquireSpinLockKeInsertByKeyDeviceQueue KeInsertDeviceQueue KeInsertQueueKeInsertQueueDpcKeReleaseInStackQueuedSpinLockKeReleaseSpinLockPoCallDriverRemoveHeadList