デバイスの電源状態

デバイスの電源状態は、コンピューター内の他のデバイスとは別に、コンピューター内のデバイスの電源状態を表します。 デバイスの電源状態には、D0、D1、D2、D3 という名前が付けられます。 D0 は完全にオン状態で、D1、D2、D3 は低電力状態です。 状態番号は電力消費量と反比例しています。数字が大きいほど使用電力が少なくなります。 Windows 8 以降では、D3 状態は D3hot と D3cold の 2 つのサブステートに分割されます。

デバイスの電源状態は、次の属性によって特徴付けられます。

  • 消費電力: デバイスがどのくらいの電力を使用するか?

  • デバイス コンテキスト: デバイスがこの状態で保持される操作コンテキストの量はどのくらいですか?

  • デバイス ドライバーの動作: デバイスを完全に動作状態に復元するには、デバイスのドライバーで何を行う必要がありますか?

  • 復元時間: デバイスを完全に運用可能な状態に復元するにはどのくらいの時間がかかりますか? ほとんどの種類のデバイスでは復元時間は控えめで、デバイス クラスによる違いはほとんどありません。 ハードウェア コンテキストが非常に大きく、リストアに大幅に時間がかかるのは、GPU などごく一部の種類のデバイスだけです。

  • ウェイクアップ機能: デバイスはこの状態からウェイクアップを要求できますか? 一般に、デバイスが特定の電源状態 (D2 など) からウェイクアップを要求できる場合は、より高い電力の状態 (D1) からもウェイクアップを要求できます。

電源状態の正確な定義はデバイス固有です。 すべてのデバイスですべての状態が定義されているわけではありません。多くのデバイスでは、D0 と D3 の状態のみが定義されています。 特定のデバイスに対して定義されている電源状態、および各状態の動作要件については、「デバイス クラスの電源管理リファレンスの仕様」を参照してください (リファレンスの仕様は、ACPI / Power Management Web サイトで入手できます)。

デバイス電源状態がシステム電源状態と一致する必要はありません。 たとえば、システムがシステム動作状態 (S0) であっても、デバイスはオフ (D3) 状態になることができます。

デバイスの電源状態は、デバイスの親バスの電源状態とは無関係に見える場合があります。 たとえば、USB デバイスの親ホスト コントローラーが D3 状態の場合に、USB デバイスが D2 (選択的中断) 状態になることがあります。 これらの 2 つの状態が矛盾しているように見えるのは、Dx 状態の定義が USB と USB ホスト コントローラが接続されているバス (通常は PCI または PCI Express) で異なるためです。

一部のデバイスでは、1 つのデバイスの電源状態内で複数の異なる低電力モードが可能であることに注意してください。 このようなデバイスは、ドライバーがデバイスの電源状態を変更することなく、デバイスで 2 つのモード間を自動的に切り替えることができれば、これらの複数のモードを使用できます。 ただし、一般に、モード間にユーザーが認識できる違いがない場合、デバイスは最小電力のモードのみを使用することをお勧めします。 低速モードなどの低電力モードがパフォーマンスに悪影響を及ぼす場合や、デバイス ドライバー以外のソフトウェアに対して透過的でない場合は、ハードウェアでそのモードを自動的に使用しないでください。 詳細については、「デバイス クラスの電源管理リファレンスの仕様」を参照してください。

ドライバーまたは電源マネージャーは、デバイスの電源状態の移行を要求できます。すべてのドライバーは、このような移行を要求する IRP を処理できるように準備する必要があります。 詳細については、次のトピックを参照してください。

デバイス電源状態についての IRP_MN_QUERY_POWER または IRP_MN_SET_POWER の送信

デバイス電源状態についての IRP_MN_QUERY_POWER の処理

デバイス電源状態についての IRP_MN_SET_POWER の処理

システムと同様に、デバイスは動作状態 (D0) から任意の低電力状態 (D1、D2、または D3) へ、また任意の低電力状態から動作状態へと移行することができます。 次の図は、有効なデバイスの電源状態の遷移を示す状態グラフです。

diagram illustrating the valid device power state transitions.

このグラフは、D3 から D3hot および D3cold へのサブ区分を示しています。 D3hot と D3cold は、Windows 8 以降で定義されています。 D0 状態と D3hot サブ状態をサポートするには、すべてのデバイスが必要です。 図に示されているその他の状態は省略可能です。

前のグラフでは、D3hot から D3cold への移行は、デバイスの低電力状態間の唯一の直接遷移です。 低電力状態間の他のすべての遷移には、D0 への中間遷移が必要です。この遷移により、デバイス ドライバーは必要に応じて、次の低電力状態に切り替わるか、D0 に留まるかをデバイス ハードウェアで構成できます。 ただし、デバイスへの電源がオフになると、デバイスは D3hot を終了し、D3cold に移行します。デバイス ドライバーからの介入は必要ありません。 このドライバーは、デバイスが D3hot に移行する前に、デバイス ハードウェアの必要な構成を行います。D3hot から D3cold への移行にデバイスを対応させるために別途構成する必要はありません。 詳細については、「ドライバーでの D3cold のサポート」を参照してください。

PCI ルート ポートからエンドポイントへの D 状態マッピング

Windows 10 システムでは、プラットフォームの全体的な電源状態は、PCI ルート ポートなどの SoC (System on Chip) 統合デバイスの電源状態 (D 状態) に依存します。 開発中のプラットフォームによっては、PCI ルート ポートの D 状態要件がプラットフォームの電源状態ごとに異なる場合があります。 OEM は、プラットフォームとデバイスの電源状態の要件について、IHV プラットフォーム固有のドキュメントを参照することをお勧めします。

次の表は、PCI ルート ポートとその接続されたエンドポイントの電源状態マッピングを示します。 ルート ポートがターゲット D 状態に移行するには、以下に示すエンドポイントの D 状態を実現する必要があります。

ルート ポートのターゲット D 状態 エンドポイントの D 状態

D0

D0、D0:F1

D0:F1

D3hot

D3hot

D3cold*

*PCI D3cold の電源状態には、BIOS とデバイス ドライバーのサポートが必要です。 サポートがない場合、PCI エンドポイントは D3Hot のみを実現できます。 詳細については、「ドライバーでの D3cold のサポート」を参照してください。