共用方式為


EVT_WDF_DEVICE_RELEASE_HARDWARE回呼函式 (wdfdevice.h)

[適用於 KMDF 和 UMDF]

驅動程式的 EvtDeviceReleaseHardware 事件回呼函式會在無法再存取裝置時執行所需的作業。

語法

EVT_WDF_DEVICE_RELEASE_HARDWARE EvtWdfDeviceReleaseHardware;

NTSTATUS EvtWdfDeviceReleaseHardware(
  [in] WDFDEVICE Device,
  [in] WDFCMRESLIST ResourcesTranslated
)
{...}

參數

[in] Device

架構裝置物件的句柄。

[in] ResourcesTranslated

資源清單物件的句柄,可識別 隨插即用 管理員指派給裝置的已轉譯硬體資源。

傳回值

如果 EvtDeviceReleaseHardware 回呼函式沒有發生任何錯誤,它必須傳回STATUS_SUCCESS或另一個狀態值,NT_SUCCESS狀態) ( 等於 TRUE。 否則,它必須傳回狀態值,NT_SUCCESS (狀態) 等於 FALSE。 請勿傳回STATUS_NOT_SUPPORTED。

備註

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

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

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

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

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

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

如果已呼叫驅動程式的 EvtDevicePrepareHardware 回呼函式,架構一律會呼叫驅動程式的 EvtDeviceReleaseHardware 回呼函式,即使 EvtDevicePrepareHardware 傳回失敗碼也一樣。

具有子裝置之裝置的驅動程式可以藉由從其 EvtDriverDeviceAdd 回呼函式內呼叫 WdfDeviceInitSetReleaseHardwareOrderOnFailure,控制架構呼叫父裝置及其子系的 EvtDeviceReleaseHardwareOrderOnFailure 的順序。

如需架構何時呼叫此回呼函式的詳細資訊,請參閱 PnP 和電源管理案例

如需硬體資源的詳細資訊,請參閱 Framework-Based 驅動程式的硬體資源

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

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfdevice.h (包含 Wdf.h)
IRQL PASSIVE_LEVEL

另請參閱

EvtDevicePrepareHardware