裝置的 D3cold 功能

在裝置的電源原則擁有者 (PPO) 之前,當電腦保持 S0) 時,驅動程式必須確認裝置會回應,並在裝置進入 D3 (cold 之後繼續正常運作。

針對 隨插即用 (PnP) 裝置,作業系統通常會從父匯流排驅動程式取得裝置 D3cold 功能的相關資訊。

例如,如果裝置連結至 PCI 或 PCI Express 匯流排,裝置的 PCI 設定空間會包含指出裝置功能的電源管理暫存器區塊。 此區塊中的功能旗標會指定裝置電源狀態,裝置可以從中發出電源管理事件的訊號,或 PME (喚醒事件的 PCI 字詞) 。 這些狀態可能包括 D3hot 和 D3cold。 如需 PCI 電源管理的詳細資訊,請參閱 PCI 匯流排電源管理介面規格

如果裝置必須能夠從它輸入的任何低電源 Dx 狀態發出喚醒事件訊號,除非裝置、父匯流排控制器和硬體平臺支援從 D3cold 發出喚醒事件的訊號,否則裝置不應該進入 D3cold。

裝置的 KMDF 驅動程式會呼叫 WdfDeviceAssignS0IdleSettings 方法,讓裝置在裝置可發出喚醒事件的最低電源狀態中閒置。 從 KMDF 1.11 版開始, WdfDeviceAssignS0IdleSettings 包含 D3cold 在可能的低電量 Dx 狀態範圍內。 只有在裝置、父匯流排驅動程式和 ACPI 系統韌體支援從 D3cold 發出喚醒事件的訊號時,這個方法才會讓裝置閒置在 D3cold 中。

裝置的 WDM 驅動程式必須決定要在裝置閒置時將裝置移至哪個低電源 Dx 狀態。 (相反地, WdfDeviceAssignS0IdleSettings 會自動選取此 Dx 狀態,讓驅動程式不需要。) 如果裝置必須能夠發出來自其輸入之任何低電量 Dx 狀態的喚醒事件訊號,驅動程式可以呼叫 GetIdleWakeInfo 常式來判斷裝置可以發出喚醒事件訊號的最低電源狀態。 若要取得這項資訊, GetIdleWakeInfo 會查詢基礎匯流排驅動程式和 ACPI 系統韌體。 根據 GetIdleWakeInfo的資訊,驅動程式可以呼叫 SetD3ColdSupport 常式,以啟用或停用裝置轉換為 D3cold。

裝置可能不需要從 D3cold 發出喚醒事件訊號的能力。 只有在回應軟體起始的動作時,裝置可能需要從 D3cold 轉換為 D0 。 例如,如果驅動程式收到裝置的 I/O 要求,驅動程式可能需要喚醒裝置。 有少數例外狀況,這類裝置的驅動程式可以讓裝置進入 D3cold。 可能的例外狀況是需要大量時間才能從 D3cold 轉換為 D0 的裝置。 例如,顯示裝置可能包含大量記憶體,這些記憶體必須在裝置進入 D3cold 之前儲存,並在裝置結束 D3cold 之後還原。

如需 D3cold ACPI 支援的詳細資訊,請參閱 D3cold 的韌體需求