共用方式為


EVT_ACX_CIRCUIT_RELEASE_HARDWARE回呼函式 (acxcircuit.h)

當 ACXCIRCUIT 處於發行硬體階段時,驅動程式會使用 EVT_ACX_CIRCUIT_RELEASE_HARDWARE 回呼來新增功能。

語法

EVT_ACX_CIRCUIT_RELEASE_HARDWARE EvtAcxCircuitReleaseHardware;

NTSTATUS EvtAcxCircuitReleaseHardware(
  WDFDEVICE Device,
  ACXCIRCUIT Circuit,
  WDFCMRESLIST ResourcesTranslated
)
{...}

參數

Device

與指定 ACXCIRCUIT 相關聯的 WDFDEVICE 物件(如 WDF - Framework 物件的摘要中所述。

Circuit

ACXCIRCUIT 物件(如準備硬體階段 中的 ACX 物件摘要中所述。

ResourcesTranslated

WDFCMRESLIST 架構資源清單物件的句柄,可識別隨插即用管理員指派給裝置的已翻譯硬體資源。 如需翻譯資源的詳細資訊,請參閱 原始和翻譯的資源

傳回值

如果呼叫成功,則傳回 STATUS_SUCCESS。 否則,它會傳回適當的錯誤碼。 如需詳細資訊,請參閱使用NTSTATUS值

言論

若要註冊 EvtAcxCircuitReleaseHardware 回呼函式,您的驅動程式必須呼叫 AcxCircuitInitSetAcxCircuitPnpPowerCallbacks

如果驅動程式已註冊 EvtAcxCircuitReleaseHardware 回呼函式,架構會在下列轉換期間呼叫它:

  • 資源重新平衡
  • 有序移除
  • 意外移除

ACX 架構會在 WDF 架構停止將 I/O 要求傳送至裝置之後,呼叫 EvtAcxCircuitReleaseHardware 回呼函式,指派給裝置的任何中斷都已停用並中斷連線,且裝置已關閉。

ACX 架構會在 WDF 架構呼叫驅動程式的 EvtDeviceReleaseHardware 回呼函式之前,先呼叫 EvtAcxCircuitReleaseHardware 回呼函式。

當架構呼叫 EvtAcxCircuitReleaseHardware 時,裝置的 PDO 仍然存在,而且可以查詢裝置資訊,以取得處於關閉電源狀態的裝置資訊,例如 PCI 組態狀態。

此外,架構提供給 EvtDeviceReleaseHardware 的已轉譯硬體資源仍會指派給裝置。 此回呼函式的主要目的是釋放這些資源,特別是取消對應驅動程式 EvtAcxCircuitPrepareHardware 回呼函式所對應的任何記憶體資源。 驅動程式也可以使用此回呼來執行任何其他可能處於電源關閉狀態的 ACXCIRCUIT 管理活動。 通常會在驅動程式的 EvtDeviceD0Exit 回呼函式中執行所有其他硬體關機作業。

如果驅動程式的 EvtAcxCircuitPrepareHardware 回呼函式已呼叫驅動程式的 EvtAcxCircuitPrepareHardware 回呼函式,除非 EvtAcxCircuitPrepareHardware 傳回失敗碼,否則 ACX 架構一律會呼叫驅動程式的 EvtAcxCircuitReleaseHardware 回呼函式。

如需 ACX 和 WDF 架構呼叫這些回呼函式時的詳細資訊,請參閱 PnP 和電源管理案例。

如需硬體資源的詳細資訊,請參閱 硬體資源簡介

如需提供此回呼函式之驅動程式的詳細資訊,請參閱函式驅動程式 支援 PnP 和電源管理。

範例使用方式如下所示。

EVT_ACX_CIRCUIT_RELEASE_HARDWARE    EvtCircuitReleaseHardware;

NTSTATUS
EvtCircuitReleaseHardware(
    _In_ WDFDEVICE      Device,
    _In_ ACXCIRCUIT     Circuit,
    _In_ WDFCMRESLIST   ResourcesTranslated
    )
{
    PCIRCUIT_CONTEXT    circuitCtx  = GetCircuitContext(Circuit);
    CIpcEventReader *   eventReader = circuitCtx->EventReader;

    PAGED_CODE();

    UNREFERENCED_PARAMETER(Device);
    UNREFERENCED_PARAMETER(ResourcesTranslated);

    //
    // Disable 'remote' circuit notifications.
    //
    ASSERT(eventReader);
    eventReader->DisableEvents();

    // This should always succeed.
    return STATUS_SUCCESS;
}

ACX 需求

ACX 最低版本: 1.0

如需 ACX 版本的詳細資訊,請參閱 ACX 版本概觀

要求

要求 價值
標頭 acxcircuit.h
IRQL PASSIVE_LEVEL

另請參閱