EVT_ACX_FACTORY_CIRCUIT_PREPARE_HARDWARE回呼函式 (acxcircuit.h)
當線路處理站處於準備硬體階段時,驅動程式會使用 EVT_ACX_FACTORY_CIRCUIT_PREPARE_HARDWARE 回呼來新增功能。
語法
EVT_ACX_FACTORY_CIRCUIT_PREPARE_HARDWARE EvtAcxFactoryCircuitPrepareHardware;
NTSTATUS EvtAcxFactoryCircuitPrepareHardware(
WDFDEVICE Device,
ACXFACTORYCIRCUIT Factory,
WDFCMRESLIST ResourcesRaw,
WDFCMRESLIST ResourcesTranslated
)
{...}
參數
Device
WDFDEVICE 物件 (與 ACX 線路相關聯的 Framework 物件 摘要) 中所述。
Factory
現有的線路處理站 ACXFACTORYCIRCUIT 物件。 如需 ACX 對象的詳細資訊,請參閱 ACX 物件的摘要。
ResourcesRaw
WDF 資源清單,描述要用於準備硬體階段的原始資源。 這是WDF架構資源清單物件,代表裝置的硬體資源清單。 如需原始資源的詳細資訊,請參閱 Framework-Based 驅動程式的硬體資源。
ResourcesTranslated
WDF 資源清單,描述要用於準備硬體階段的已翻譯資源。 這是WDF架構資源清單物件,代表裝置的硬體資源清單。 如需已翻譯資源清單的詳細資訊,請參閱 原始和翻譯的資源。
傳回值
如果呼叫成功,則傳 STATUS_SUCCESS
回 。 否則,它會傳回適當的錯誤碼。 如需詳細資訊,請參閱 使用NTSTATUS值。
備註
若要註冊 EvtAcxFactoryCircuitPrepareHardware 回呼函式,驅動程式必須呼叫 AcxFactoryCircuitInitSetAcxCircuitPnpPowerCallbacks 方法。
如果驅動程式已註冊 ACXFACTORYCIRCUIT 的 EvtAcxFactoryCircuitPrepareHardware 回呼函式,ACX 架構會在 WDF 架構呼叫驅動程式的 EvtDevicePrepareHardware 回呼函式之後呼叫函式。
EvtAcxFactoryCircuitPrepareHardware 回呼函式會使用其收到的 ResourcesRaw 和 ResourcesTranslated 句柄來存取裝置的原始和翻譯硬件資源。 回呼函式可以呼叫 WdfCmResourceListGetCount 和 WdfCmResourceListGetDescriptor 來周遊資源清單。 此回呼函式無法修改資源清單。
如需資源清單和資源出現順序的詳細資訊,請參閱 原始和翻譯的資源。
一般而言,驅動程式的 EvtAcxFactoryCircuitPrepareHardware 回呼函式會視需要執行下列動作:
- 將實體記憶體位址對應至 ACXFACTORYCIRCUIT 的虛擬位址,讓驅動程式可以存取指派給裝置的記憶體。
- 或者,驅動程式的 EvtAcxFactoryCircuitPrepareHardware 回呼函式可能會將工作專案排入佇列,以完成任何其他需要大量時間的設定工作。 針對這類作業使用工作專案有助於確保裝置的啟動時間不會增加系統開機時間。 如需詳細資訊,請參閱 使用 Framework 工作專案。
- 一般而言,所有其他硬體初始化作業,包括載入韌體,都應該在裝置進入其工作 (D0) 狀態時發生,因此應該在驅動程式的 EvtDeviceD0Entry 回呼函式中執行。
ResourcesRaw 和 ResourcesTranslated 處理 EvtAcxCircuitPrepareHardware/EvtDevicePrepareHardware 回呼函式會維持有效狀態,直到驅動程式的 EvtDeviceReleaseHardware 回呼函式傳回為止。
如果驅動程序失敗,EvtAcxFactoryCircuitPrepareHardware 回呼,ACXFACTORYCIRCUIT 物件會置於刪除擱置狀態。
如需硬體資源的詳細資訊,請參閱 硬體資源簡介。
如需 ACX 和 WDF 架構何時呼叫這些回呼函式的詳細資訊,請參閱 PnP 和電源管理案例。
如需提供此回呼函式之驅動程式的詳細資訊,請參閱 函式驅動程式中的支援 PnP 和電源管理。
ACX 需求
最低 ACX 版本: 1.0
如需 ACX 版本的詳細資訊,請參閱 ACX 版本概觀。
規格需求
需求 | 值 |
---|---|
標頭 | acxcircuit.h |
IRQL | PASSIVE_LEVEL |