EVT_WDF_DEVICE_D0_ENTRY回呼函式 (wdfdevice.h)

[適用於 KMDF 和 UMDF]

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

語法

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

參數

[in] Device

架構裝置物件的句柄。

[in] PreviousState

識別先前裝置電源狀態 的WDF_POWER_DEVICE_STATE型別列舉值。

傳回值

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

如需此回呼函式傳回值的詳細資訊,請參閱 報告裝置失敗

此架構不會在 EvtDeviceD0Entry 回呼函式傳回狀態 NT_SUCCESS (值之后呼叫驱动程序的 EvtDeviceD0Exit 回呼函式,傳回狀態值) 等於 FALSE

備註

若要註冊裝置的 EvtDeviceD0Entry 回呼函式,驅動程式必須呼叫 WdfDeviceInitSetPnpPowerEventCallbacks

如果驅動程式已註冊裝置的 EvtDeviceD0Entry 回呼函式,則架構會在每次裝置進入其運作 (D0) 狀態時呼叫函式。 當發生下列其中一項時,裝置會進入 D0 狀態:

  • 裝置會列舉 (,因為裝置已插入或系統重新啟動) 。
  • 系統及其所有裝置都會從低電源狀態返回其工作狀態。
  • 如果裝置支援低電源閑置) ,裝置在進入低電源狀態之後會回到其工作狀態,因為其閑置 (。
  • 隨插即用 管理員已將系統的硬體資源轉散發給系統的裝置。
架構會在裝置進入工作 (D0) 狀態后立即呼叫 EvtDeviceD0Entry 回呼函式,並可供驅動程式使用,但在裝置中斷啟用之前。 PreviousState 參數會識別裝置進入 D0 狀態之前所在的裝置電源狀態。 當架構第一次呼叫 EvtDeviceD0Entry 時,它會提供 WdfPowerDeviceD3FinalPreviousState 值。

回呼函式必須執行讓裝置完全運作所需的任何作業,例如載入韌體,或啟用裝置處於低電源狀態時停用的裝置功能。

如果 EvtDeviceD0Entry 回呼函式傳回 狀態 值,NT_SUCCESS (状态) 等於 FALSE,架構會執行下列動作:

  • 如果裝置第一次啟動,架構就會開始裝置 的排序移除 順序。
  • 如果裝置從低電源狀態返回其工作狀態,架構就會開始裝置的 意外移除 順序。
架構不會在這些情況下呼叫驅動程式的 EvtDeviceD0Exit 回呼函式。

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

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

EvtDeviceD0Entry 回呼函式會在 IRQL = PASSIVE_LEVEL呼叫。 您不應該讓這個回呼函 式可分頁

規格需求

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

另請參閱

EvtDeviceD0Exit