共用方式為


標記InterlockedQueuedIrps 規則 (wdm)

MarkInterlockedQueuedIrps 規則會指定驅動程式在將 IRP 排入佇列之前正確標示為擱置中,以便進一步處理。

此規則也會指定驅動程式呼叫 IoMarkIrpPending ,並在呼叫下列任一函式之前正確地將 IRP 標示為擱置中,以將 IRP 新增至連結佇列:

驅動程序應該先呼叫 IoMarkIrpPending ,再將需要更多處理的 IRP 新增至連結佇列。 否則,系統可能會在呼叫 IoMarkIrpPending 之前清除佇列、由另一個驅動程式例程完成、釋放 IRP,因而造成當機。

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

驅動程式模型:WDM

測試方法

在編譯時期

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

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

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

適用於

ExInterlockedInsertHeadListExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList

另請參閱

MarkIrpPending同步處理 IRP 取消