IRP_MN_QUERY_RESOURCE_REQUIREMENTS
PnP 管理員會使用此 IRP 來取得裝置的資源需求清單。
匯流排驅動程式必須針對需要硬體資源的子裝置處理此要求。 匯流排篩選驅動程式可以處理此要求。 函式和篩選驅動程式不會處理此 IRP。
值
0x0B
主要程式碼
傳送時
當列舉裝置時,PnP 管理員會在將資源配置至裝置之前,以及驅動程式回報其裝置的資源需求已變更時,傳送此 IRP。
PnP 管理員會在任意執行緒內容中,在 IRQL PASSIVE_LEVEL傳送此 IRP。
輸入參數
無
輸出參數
在 I/O 狀態欄塊中傳回。
I/O 狀態欄塊
處理此 IRP 的驅動程式會將 Irp-IoStatus.Status > 設定為STATUS_SUCCESS或適當的錯誤狀態。
成功時,驅動程式會將 Irp-IoStatus.Information > 設定為包含所要求資訊的 IO_RESOURCE_REQUIREMENTS_LIST 指標。 發生錯誤時,驅動程式會將 Irp-IoStatus.Information > 設定為零。
作業
如果匯流排驅動程式傳回資源需求清單以回應此 IRP,它會從分頁記憶體配置 IO_RESOURCE_REQUIREMENTS_LIST 。 當不再需要緩衝區時,PnP 管理員會釋放緩衝區。
如果裝置不需要硬體資源,裝置的匯流排驅動程式會完成 IRP (IoCompleteRequest) ,而不需修改Irp-IoStatus.Status 或 Irp-IoStatus.Information >>。
如果匯流排篩選驅動程式處理此 IRP,它會修改匯流排驅動程式所建立的資源需求清單。 匯流排篩選驅動程式會修改 IRP 上備份裝置堆疊的清單。 匯流排篩選驅動程式必須保留資源需求清單中的資源順序,而且不得改變其未處理的資源標籤。 如果匯流排篩選驅動程式變更資源需求清單的大小,驅動程式必須從分頁記憶體配置新的結構,並釋放先前的結構。 如果匯流排篩選驅動程式將新的資源需求新增至清單,並將資源指派給裝置,則驅動程式必須將新的資源篩選掉 IRP_MN_START_DEVICE IRP,使其不會傳遞至匯流排驅動程式。
函式和非匯流排篩選驅動程式不會處理此 IRP;它們會將它傳遞至下一個較低驅動程式,但不會變更 Irp-IoStatus >。
如需處理隨插即用次要 IRP的一般規則,請參閱隨插即用。
傳送此 IRP
保留供系統使用。 驅動程式不得傳送此 IRP。
規格需求
標頭 |
Wdm.h (包括 Wdm.h、Ntddk.h 或 Ntifs.h) |