共用方式為


EVT_WDF_DEVICE_D0_EXIT回呼函式 (wdfdevice.h)

[適用於 KMDF 和 UMDF]

驅動程式的 EvtDeviceD0Exit 事件回呼函式會執行驅動程式裝置離開 D0 電源狀態時所需的作業。

語法

EVT_WDF_DEVICE_D0_EXIT EvtWdfDeviceD0Exit;

NTSTATUS EvtWdfDeviceD0Exit(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE TargetState
)
{...}

參數

[in] Device

架構裝置物件的句柄。

[in] TargetState

WDF_POWER_DEVICE_STATE型別列舉值,識別裝置即將進入的裝置電源狀態。

傳回值

如果 EvtDeviceD0Exit 回呼函式沒有發生任何錯誤,則必須傳回STATUS_SUCCESS或其他狀態值,NT_SUCCESS狀態等於 TRUE。 否則,它必須傳回狀態值,NT_SUCCESS狀態)等於 FALSE

言論

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

如果驅動程式已註冊 EvtDeviceD0Exit 回呼函式,則架構會在驅動程式的其中一個裝置離開其工作狀態時呼叫 函式。 當發生下列其中一項時,裝置會離開 D0 狀態:

  • 系統及其所有裝置都即將離開其工作狀態,並進入低功率狀態。
  • 如果裝置支援低電量閑置,裝置即將進入低電源狀態,因為它處於閑置狀態。
  • 即插即用管理員嘗試重新發佈系統的硬體資源。
  • 使用者通常透過應用程式的使用者介面指出,他或她想要移除裝置。
架構也會在意外移除裝置之後,呼叫 EvtDeviceD0Exit 回呼函式。

如需架構呼叫此回呼函式時的詳細資訊,請參閱 PnP 和 Power Management Scenarios

除非裝置遭到意外移除,否則架構會在它停用裝置的中斷之後立即呼叫此回呼函式,但在裝置電源從 D0 減少之前。 TargetState 參數會識別裝置即將進入的裝置電源狀態。

EvtDeviceD0Exit 回呼函式必須執行裝置進入指定低電源狀態之前所需的任何作業,例如儲存驅動程式稍後將裝置還原至其 D0 電源狀態所需的任何資訊。

如果 TargetState 參數是 WdfPowerDevicePrepareForHibernation,驅動程式就不得關閉裝置,因為系統會在儲存其休眠檔案時使用裝置。

如果 TargetStateWdfPowerDeviceD3Final,您應該假設系統已關閉、即將移除裝置,或正在進行 資源重新平衡。 如果您的驅動程式必須儲存資訊,它應該將它寫入磁碟或其他一些永久儲存媒體。 不過,檢查 WdfPowerDeviceD3Final,然後進行裝置移除的清除工作不正確。 例如,如果因為閒轉而進入 Dx 電源狀態的裝置稍後會意外移除,則不會再次呼叫其 EvtDeviceD0Exit。 執行這項工作的正確位置會改為 EvtDeviceReleaseHardware

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

要求

要求 價值
目標平臺 普遍
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
標頭 wdfdevice.h (包括 Wdf.h)
IRQL PASSIVE_LEVEL

另請參閱

EvtDeviceD0Entry