共用方式為


標記QueuedIrps 規則 (wdm)

MarkQueuedIrps 規則會指定驅動程式呼叫 IRP 的 IoMarkIrpPending,該 IRP 只有在保留微調鎖定時才需要進一步處理。 只有在驅動程式將 IRP 新增至驅動程式管理的佇列時,才會套用此規則。

具體而言,只有在 發生下列所有 事件時,驅動程式才會違反此規則。

驅動程序應該只在保留微調鎖定時,才呼叫佇列 IRP 的 IoMarkIrpPending 。 否則,系統可能會在呼叫 IoMarkIrpPending 之前清除佇列、由另一個驅動程式例程完成、釋放 IRP,因而造成當機。

如需詳細資訊,請參閱 同步處理 IRP 取消

驅動程式模型:WDM

測試方法

在編譯時期

執行 靜態驅動程式驗證器 ,並指定 標記QueuedIrps 規則。

使用下列步驟來執行程式碼的分析:
  1. 準備程式代碼 (使用角色類型宣告) 。
  2. 執行靜態驅動程式驗證程式。
  3. 檢視和分析結果。

如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵

適用於

InsertHeadListIoCallDriverIoMarkIrpPendingKeAcquireInStackQueuedSpinLockKeAcquireSpinLockKeInsertByKeyDeviceQueueKeInsertDeviceQueueKeInsertQueueDpcKeReleaseInStackQueuedSpinLockKeReleaseSpinLockPoCallDriverRemoveHeadList