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 狀態:
- 系統及其所有裝置都即將離開其工作狀態,並進入低功率狀態。
- 如果裝置支援低電量閑置,裝置即將進入低電源狀態,因為它處於閑置狀態。
- 即插即用管理員嘗試重新發佈系統的硬體資源。
- 使用者通常透過應用程式的使用者介面指出,他或她想要移除裝置。
如需架構呼叫此回呼函式時的詳細資訊,請參閱 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 |