機能電源状態のサポート
Windows 8 以降、電源マネージャにはランタイム電源管理フレームワーク (PoFx) が含まれています。 PoFx では、コンポーネント (またはサブデバイス) レベルでの電源とクロックの管理がサポートされています。
KMDF バージョン 1.11 以降では、KMDF ドライバーは PoFx が提供する電力制御を利用でき、細かい設定が可能です。 特に、KMDF ドライバーは、単一のデバイス内に複数の論理コンポーネントを定義でき、それぞれが個別に電源管理できます。
たとえば、ファンクション ドライバーでは、デバイスの論理コンポーネントごとに一意の機能電源状態のセットを定義できます。 デバイスとシステムの電源状態と同様に、F0 はコンポーネントが完全にオンであることを示し、オプションの状態 F1、F2 などでは徐々に低い電源状態を示します。 Fx 状態をサポートするには、ドライバーがデバイスの電源ポリシー所有者である必要があります。
次の表は、さまざまな機能電源状態シナリオに対するフレームワークのサポートをまとめたものです。
Type | KMDF のサポート | UMDF のサポート | 使用するタイミング/実装方法 |
---|---|---|---|
サポートされています |
サポートされています |
パワー エンジン プラグイン (PEP) でアイドル タイムアウト値を決定し、ドライバーの F 状態が 1 つだけの場合。 IdleTimeoutTypeSystemManagedIdleTimout または SystemManagedIdleTimoutWithHint = で WdfDeviceAssignS0IdleSettings を呼び出します。 |
|
サポートされています |
サポートされていません |
ドライバーに複数の F 状態がある場合。
この場合、KMDF は PoFx とのほとんどの対話式操作を処理します。 サンプル コードについては、「PoFx サンプル ドライバー」を参照してください。 |
|
WDM インターフェイスを使用 |
サポートされていません |
ドライバーに複数のコンポーネントがある場合。 この場合は、PoFx インターフェイスを直接使用する必要があります。 サンプル コードについては、「PoFx サンプル ドライバー」を参照してください。 |
KMDF は PoFx の上に最小限の抽象化を追加するため、ドライバーを記述する前に PoFx の基本的な理解をしておくことが役立ちます。 そのため、これらのトピックを読む前に、「電源管理フレームワークの概要」を読むことをお勧めします。