共用方式為


裝置返回其工作狀態

如果發生下列其中一項,處於低功率狀態的裝置會回到其工作狀態:

  • 裝置會偵測外部事件,並在其總線上觸發喚醒訊號。 偵測到喚醒訊號後,總線驅動程式呼叫 WdfDeviceIndicateWakeStatus。 因此,架構會呼叫總線驅動程式的 EvtDeviceDisableWakeAtBus 回呼函式。

  • 裝置已閑置,且驅動程式會呼叫 WdfDeviceStopIdle

  • 系統的電源狀態已從低功耗狀態改為其工作狀態(S0)。

在這些情況中,架構會呼叫總線驅動程式的 EvtDeviceD0Entry 回呼函式,然後將裝置 (總線的子裝置) 還原至其運作中 (D0) 狀態。

針對支援裝置的每個函式和篩選驅動程式,架構會依序執行下列動作,一次一個驅動程式,從驅動程式堆疊中最低的驅動程序開始:

  1. 架構會呼叫驅動程式的 EvtDeviceD0Entry 回呼函式(如果存在的話)。

  2. 架構會針對每個中斷呼叫驅動程式的 EvtInterruptEnable 回呼函式(如果存在),然後呼叫驅動程式的 EvtDeviceD0EntryPostInterruptsEnabled 回呼函式(如果有的話),讓驅動程式可以啟用裝置中斷。

  3. 如果硬體和驅動程式支援 DMA,架構會呼叫驅動程式的 EvtDmaEnablerFillEvtDmaEnablerEnable,以及 EvtDmaEnablerSelfManagedIoStart 回呼函式(如果有的話)針對已建立的每個 DMA 信道。

  4. 如果驅動程式是裝置的電源原則擁有者,架構會呼叫其 EvtDeviceDisarmWakeFromS0EvtDeviceDisarmWakeFromSx 回呼函式。

  5. 架構會呼叫驅動程式的 EvtChildListScanForChildren 回呼函式(如果有的話)。

  6. 架構會重新啟動驅動程式的所有電源受控 I/O 佇列,並呼叫其 EvtIoResume 回呼函式(如有必要)。

  7. 當驅動程式使用自我管理的 I/O 時,架構會呼叫驅動程式的 EvtDeviceSelfManagedIoRestart 回呼函式。