Regola MarkingInterlockedQueuedIrps (wdm)

La regola MarkInterlockedQueuedIrps specifica che il driver contrassegna correttamente l'IRP come in sospeso prima di accodarlo in modo interlocked per un'ulteriore elaborazione.

Questa regola specifica anche che il driver chiama IoMarkIrpPending e contrassegna correttamente l'IRP come in sospeso prima di chiamare una delle funzioni seguenti per aggiungere l'IRP a una coda interlockata:

I driver devono chiamare IoMarkIrpPending prima di aggiungere un'IRP che richiede più elaborazione in una coda interlock. 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 MarkingInterlockedQueuedIrps .

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

ExInterlockedInsertHeadList ExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList

Vedi anche

MarkIrpPendingSynchronizing IRP Cancellation