機能電源状態のサポート

Windows 8 以降、電源マネージャにはランタイム電源管理フレームワーク (PoFx) が含まれています。 PoFx では、コンポーネント (またはサブデバイス) レベルでの電源とクロックの管理がサポートされています。

KMDF バージョン 1.11 以降では、KMDF ドライバーは PoFx が提供する電力制御を利用でき、細かい設定が可能です。 特に、KMDF ドライバーは、単一のデバイス内に複数の論理コンポーネントを定義でき、それぞれが個別に電源管理できます。

たとえば、ファンクション ドライバーでは、デバイスの論理コンポーネントごとに一意の機能電源状態のセットを定義できます。 デバイスとシステムの電源状態と同様に、F0 はコンポーネントが完全にオンであることを示し、オプションの状態 F1、F2 などでは徐々に低い電源状態を示します。 Fx 状態をサポートするには、ドライバーがデバイスの電源ポリシー所有者である必要があります。

次の表は、さまざまな機能電源状態シナリオに対するフレームワークのサポートをまとめたものです。

Type KMDF のサポート UMDF のサポート 使用するタイミング/実装方法

単一コンポーネント、単一の状態 (F0)

サポートされています

サポートされています

パワー エンジン プラグイン (PEP) でアイドル タイムアウト値を決定し、ドライバーの F 状態が 1 つだけの場合。

IdleTimeoutTypeSystemManagedIdleTimout または SystemManagedIdleTimoutWithHint = で WdfDeviceAssignS0IdleSettings を呼び出します。

単一コンポーネント、複数の状態 (F0、F1、F2...)

サポートされています

サポートされていません

ドライバーに複数の F 状態がある場合。

この場合、KMDF は PoFx とのほとんどの対話式操作を処理します。

サンプル コードについては、「PoFx サンプル ドライバー」を参照してください。

複数のコンポーネント、単一または複数の状態

WDM インターフェイスを使用

サポートされていません

ドライバーに複数のコンポーネントがある場合。 この場合は、PoFx インターフェイスを直接使用する必要があります。

サンプル コードについては、「PoFx サンプル ドライバー」を参照してください。

KMDF は PoFx の上に最小限の抽象化を追加するため、ドライバーを記述する前に PoFx の基本的な理解をしておくことが役立ちます。 そのため、これらのトピックを読む前に、「電源管理フレームワークの概要」を読むことをお勧めします。