Freigeben über


MarkingQueuedIrps-Regel (wdm)

Die MarkingQueuedIrps-Regel gibt an, dass der Treiber IoMarkIrpPending für ein IRP aufruft, das eine weitere Verarbeitung nur bei Beibehaltung einer Drehsperre erfordert. Diese Regel gilt nur, wenn der Treiber die IRP einer vom Treiber verwalteten Warteschlange hinzufügt.

Insbesondere verstößt der Treiber nur gegen diese Regel, wenn alle folgenden Ereignisse auftreten.

Treiber sollten IoMarkIrpPending für eine IRP in der Warteschlange nur aufrufen, wenn sie eine Drehsperre halten. Andernfalls könnte ein IRP entfernt, von einer anderen Treiberroutine abgeschlossen und vom System freigegeben werden, bevor der Aufruf von IoMarkIrpPending erfolgt, wodurch ein Absturz verursacht wird.

Weitere Informationen finden Sie unter Synchronisieren des IRP-Abbruchs.

Treibermodell: WDM

So führen Sie einen Test durch

Beim Kompilieren:

Führen Sie static Driver Verifier aus, und geben Sie die MarkingQueuedIrps-Regel an .

Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
  1. Bereiten Sie den Code vor (verwenden Sie Rollentypdeklarationen).
  2. Führen Sie Static Driver Verifier aus.
  3. Überprüfen und analysieren Sie die Ergebnisse.

Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden.

Gilt für:

InsertHeadListIoCallDriverIoMarkIrpPendingKeAcquireInStackQueuedSpinLockKeAcquireSpinLockKeInsertByKeyDeviceQueueKeInsertDeviceQueueKeInsertQueueDpcKeReleaseInStackQueuedSpinLockKeReleaseSpinLockPoCallDriverRemoveHeadList