修改資源需求清單
在 PnP 管理員確定已載入所有新連線裝置的驅動程式之後,它會將裝置的硬體需求清單傳送至裝置的驅動程式堆疊。
當清單向下移動堆疊時,架構會呼叫每個函式,並篩選驅動程式的 EvtDeviceFilterRemoveResourceRequirements 回呼函式,並將硬體需求清單傳遞為輸入引數。 此回呼函式可以從匯流排驅動程式指定的硬體需求清單中移除硬體資源,但函式驅動程式判斷裝置不需要運作。
例如,PCI 匯流排驅動程式可能會根據 PCI 規格,在記憶體空間中複寫 I/O 空間資源。 如果您的裝置可以在不使用 I/O 空間資源的情況下運作,裝置的函式驅動程式可以從硬體需求清單中移除 I/O 空間資源。
若要從需求清單中移除專案,驅動程式可以執行下列動作:
- 呼叫下列方法來修改資源需求清單中的邏輯組態:
- 呼叫下列方法來修改邏輯組態內的資源描述元:
- WdfIoResourceListGetCount,以取得資源描述項的數目。
- WdfIoResourceListGetDescriptor,以取得資源描述元的存取權。
- WdfIoResourceListRemove 和 WdfIoResourceListRemoveByDescriptor,以移除資源描述元。
當清單移動備份驅動程式堆疊時,架構會呼叫每個函式,並篩選驅動程式的 EvtDeviceFilterAddResourceRequirements 回呼函式,傳遞硬體需求清單做為輸入引數。 此回呼函式可以新增函式驅動程式需要的額外硬體資源,讓裝置運作。
若要將專案新增至硬體需求清單,驅動程式可以執行下列動作:
- 呼叫下列方法來修改資源需求清單中的邏輯組態:
- WdfIoResourceRequirementsListGetCount,以取得邏輯組態的數目。
- WdfIoResourceRequirementsListGetIoResList,以取得邏輯設定的存取權。
- WdfIoResourceListCreate,以建立新的邏輯組態。
- WdfIoResourceRequirementsListAppendIoResList 或 WdfIoResourceRequirementsListInsertIoResList,以新增新的邏輯組態。
- 呼叫下列方法來修改邏輯組態內的資源描述元:
- WdfIoResourceListGetCount,以取得資源描述項的數目。
- WdfIoResourceListGetDescriptor,以取得資源描述元的存取權。
- WdfIoResourceListAppendDescriptor 或 WdfIoResourceListInsertDescriptor,以新增資源描述元。