標記InterlockedQueuedIrps 規則 (wdm)
MarkInterlockedQueuedIrps 規則會指定驅動程式在將 IRP 排入佇列之前正確標示為擱置中,以便進一步處理。
此規則也會指定驅動程式呼叫 IoMarkIrpPending ,並在呼叫下列任一函式之前正確地將 IRP 標示為擱置中,以將 IRP 新增至連結佇列:
驅動程序應該先呼叫 IoMarkIrpPending ,再將需要更多處理的 IRP 新增至連結佇列。 否則,系統可能會在呼叫 IoMarkIrpPending 之前清除佇列、由另一個驅動程式例程完成、釋放 IRP,因而造成當機。
如需詳細資訊,請參閱 同步處理 IRP 取消。
驅動程式模型:WDM
測試方法
在編譯時期 |
---|
執行 靜態驅動程式驗證器 ,並指定 MarkInterlockedQueuedIrps 規則。 使用下列步驟來執行程式碼的分析:如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵。 |
適用於
ExInterlockedInsertHeadListExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList