裝置工作狀態 D0

在 D0 裝置電源狀態下,裝置會完全開啟且運作。 在此狀態下,裝置驅動程式可以與裝置互動以執行 I/O 作業,而且裝置可以產生中斷。 如果裝置具有對應至記憶體或 I/O 位址空間的硬體暫存器,驅動程式可以存取這些暫存器。

從 Windows 8 開始,裝置驅動程式可以將 被動層級中斷服務常式 (ISR) 連線到裝置的中斷。 無論裝置是否在 D0 中,都可以產生中斷。 當處於低功耗的 Dx 狀態時,裝置可以產生中斷,以作為觸發機制,將裝置恢復至 D0。 ISR 會排定於裝置進入 D0 之後,以 IRQL = PASSIVE_LEVEL 執行。 在舊版 Windows 中,包括 Windows 7,當裝置處於 D0 以外的裝置電源狀態時,裝置不得產生中斷。

只有在裝置驅動程式作為裝置的電源原則擁有者時,才能從 D0 轉換成低電源 Dx 狀態,藉由呼叫 PoRequestPowerIrp 常式來起始轉換。 當電源管理員透過傳送電源 IRP (IRP_MN_SET_POWER) 來回應此呼叫時,裝置驅動程式、匯流排驅動程式和平臺韌體 (透過 Windows ACPI 驅動程式,Acpi.sys) 會共同處理此 IRP,以變更裝置的電源狀態。

裝置硬體通常會監視一組內部事件,這些事件可以產生執行階段中斷或喚醒訊號,視裝置的設定方式而定。 驅動程式會實作一個程式代碼路徑來回應中斷,以及另一個程式代碼路徑來回應喚醒事件。 如果中斷程式碼路徑不需要處理喚醒事件,且喚醒程式碼路徑不需要處理中斷,則可以簡化驅動程式程式碼。 最佳做法是,驅動程式應該將裝置設定為只有在裝置處於 D0 時才產生中斷,而且只有在裝置處於低電源 Dx 狀態時才產生喚醒訊號。 一般而言,驅動程式會將裝置設定為在裝置退出 D0 之前產生喚醒信號,並將裝置設定為在裝置進入 D0 之後立即產生中斷。

一般而言,當裝置的硬體重設訊號被觸發時,它會進入 D0 狀態。 事實上,PCI 和 PCI Express 等匯流排的規範要求這種行為。

以下是 D0 狀態的特徵:

耗電量
設備的最高連續功耗。

裝置內容
保留所有上下文。

裝置驅動程式行為
正常操作。

還原時間
不適用。

喚醒功能
不適用。