裝置返回其工作狀態
如果發生下列其中一項,處於低功率狀態的裝置會回到其工作狀態:
裝置會偵測外部事件,並在其總線上觸發喚醒訊號。 偵測到喚醒訊號後,總線驅動程式呼叫 WdfDeviceIndicateWakeStatus。 因此,架構會呼叫總線驅動程式的 EvtDeviceDisableWakeAtBus 回呼函式。
裝置已閑置,且驅動程式會呼叫 WdfDeviceStopIdle。
系統的電源狀態已從低功耗狀態改為其工作狀態(S0)。
在這些情況中,架構會呼叫總線驅動程式的 EvtDeviceD0Entry 回呼函式,然後將裝置 (總線的子裝置) 還原至其運作中 (D0) 狀態。
針對支援裝置的每個函式和篩選驅動程式,架構會依序執行下列動作,一次一個驅動程式,從驅動程式堆疊中最低的驅動程序開始:
架構會呼叫驅動程式的 EvtDeviceD0Entry 回呼函式(如果存在的話)。
架構會針對每個中斷呼叫驅動程式的 EvtInterruptEnable 回呼函式(如果存在),然後呼叫驅動程式的 EvtDeviceD0EntryPostInterruptsEnabled 回呼函式(如果有的話),讓驅動程式可以啟用裝置中斷。
如果硬體和驅動程式支援 DMA,架構會呼叫驅動程式的 EvtDmaEnablerFill、EvtDmaEnablerEnable,以及 EvtDmaEnablerSelfManagedIoStart 回呼函式(如果有的話)針對已建立的每個 DMA 信道。
如果驅動程式是裝置的電源原則擁有者,架構會呼叫其 EvtDeviceDisarmWakeFromS0 或 EvtDeviceDisarmWakeFromSx 回呼函式。
架構會呼叫驅動程式的 EvtChildListScanForChildren 回呼函式(如果有的話)。
架構會重新啟動驅動程式的所有電源受控 I/O 佇列,並呼叫其 EvtIoResume 回呼函式(如有必要)。
當驅動程式使用自我管理的 I/O 時,架構會呼叫驅動程式的 EvtDeviceSelfManagedIoRestart 回呼函式。