共用方式為


啟用轉換至 D3cold

當電腦處於睡眠狀態時,所有版本的 Windows 都會讓裝置處於 D3cold 狀態, (處於其中一個系統低電量狀態,S1 到 S4) 。 在電腦結束 S0 之前,函式驅動程式、匯流排驅動程式和篩選驅動程式會一起運作,以將裝置移至 D3hot。 當電腦進入低電源 Sx 狀態時,此轉換會讓裝置從 D3hot 移至 D3cold 的副作用。

從 Windows 8 開始,裝置可以在電腦保留在 S0 時進入和結束 D3cold。 裝置的電源原則擁有者 (PPO) 的驅動程式可以啟用和停用這些轉換至 D3cold。 驅動程式不應該讓其裝置進入 D3cold,除非裝置可以視需要從 D3cold 喚醒,然後在轉換至 D0 之後繼續正常作業。

當裝置進入 D3 時,一開始會輸入 D3 的 D3hot 子專案。 從 D3hot,裝置可以輸入 D0 或 D3cold。 為了回應喚醒事件或 I/O 要求,裝置會從 D3hot 輸入 D0 。 否則,裝置可能會保留在 D3hot 中,或者可能會從 D3hot 移至 D3cold。 如需這些轉換的詳細資訊,請參閱 裝置電源狀態中的裝置電源狀態圖表。

驅動程式不會起始裝置從 D3hot 轉換為 D3cold 的轉換。 相反地,當與此裝置共用通用電源的所有其他裝置都位於 D3hot 中,並準備好進入 D3cold 時,就會進行此轉換。 當這些裝置的最後一個輸入 D3hot 時,基礎匯流排驅動程式和系統韌體會移除電源來源,且裝置會以不一致的方式輸入 D3cold。

裝置的 PPO 驅動程式會告知作業系統是否要啟用裝置從 D3hot 轉換為 D3cold。 驅動程式可以在安裝裝置的 INF 檔案中提供這項資訊,或者驅動程式可以在執行時間呼叫 SetD3ColdSupport 常式,以動態啟用或停用裝置的轉換至 D3cold。 如需詳細資訊,請參閱 使用 GUID_D3COLD_SUPPORT_INTERFACE 驅動程式介面

藉由讓裝置進入 D3cold,驅動程式會保證下列行為:

  • 當電腦維持在 S0 中時,裝置可以容許從 D3hot 轉換為 D3cold。
  • 當裝置從 D3cold 返回 D0 時,裝置會正常運作。

無法符合任一需求的裝置可能會在輸入 D3cold 之後無法使用,直到電腦重新開機或進入睡眠狀態為止。 如果裝置必須能夠發出來自其輸入之任何低電量 Dx 狀態的喚醒事件訊號,除非驅動程式確定裝置的喚醒訊號可在 D3cold 中運作,否則不得啟用 D3cold 的專案。

將裝置放在 D3cold 中不一定表示已移除裝置的所有電源來源;這表示只表示允許透過匯流排與裝置通訊的電源來源已消失。 裝置仍可繪製足夠的電源,以向處理器發出喚醒事件訊號。 例如,乙太網路網路介面卡 (NIC) 移除主要電源的 NIC,可能會從乙太網路纜線繪製電源。

因為 D3cold 是匯流排無法用來與裝置通訊的狀態,所以驅動程式無法將其裝置直接放入 D3cold。 相反地,驅動程式會先呼叫 PoRequestPowerIrp 常式,以要求 D3 電源 IRP (IRP_MN_SET_POWER 目標狀態 = PowerDeviceD3) 將裝置從 D0 移至 D3hot。 輸入 D3hot 之後,裝置可能無法從 D3hot 移至 D3cold。 只有在移除匯流排電源時,裝置才會進入 D3cold,如果父匯流排驅動程式關閉匯流排,或系統韌體關閉硬體平臺的區段電源,就會發生此情況。