次の方法で共有


デバイスの電源管理リファレンス

ドライバーは、デバイス ハードウェアを複数の論理コンポーネントに分割して、きめ細かな電源管理を可能にすることができます。 コンポーネントには、同じデバイス内の他のコンポーネントの電源状態とは無関係に管理できる一連の電源状態があります。 F0 状態では、コンポーネントは完全にオンになります。 コンポーネントは、追加の低電力状態 F1、F2 などをサポートする場合があります。

デバイスの電源ポリシー所有者は、通常、デバイスのファンクション ドライバーです。 コンポーネント レベルの電源管理を有効にするために、このドライバーはデバイスを 電源管理フレームワーク (PoFx) に登録します。 デバイスを登録することで、ドライバーは、コンポーネントがアクティブに使用されているときに、コンポーネントがアイドル状態のときに PoFx に通知する責任を負います。 PoFx は、コンポーネント アクティビティ、待機時間の許容範囲、予想されるアイドル時間、およびスリープ解除の要件に関する情報に基づいて、デバイスのインテリジェントなアイドル状態の選択を行います。 PoFx は、コンポーネント レベルで電力使用量を制御することで、システムの応答性を維持しながら電力要件を削減できます。 詳細については、「 電源管理のComponent-Level」を参照してください。

デバイス電源管理ルーチン

これらのルーチンは、デバイスの電源管理を有効にするために、電源管理フレームワーク (PoFx) によって実装されます。 これらのルーチンは、デバイスの電源ポリシー所有者 (PPO) であるドライバーによって呼び出されます。 通常、デバイスのファンクション ドライバーは、このデバイスの PPO です。

Topic Description
PoFxActivateComponent The PoFxActivateComponent routine increments the activation reference count on the specified component.
PoFxCompleteDevicePowerNotRequired The PoFxCompleteDevicePowerNotRequired routine notifies the power management framework (PoFx) that the calling driver has completed its response to a call to the driver's DevicePowerNotRequiredCallback callback routine.
PoFxCompleteIdleCondition The PoFxCompleteIdleCondition routine informs the power management framework (PoFx) that the specified component has completed a pending change to the idle condition.
PoFxCompleteIdleState PoFxCompleteIdleState ルーチンは、指定されたコンポーネントが Fx 状態への保留中の変更を完了したことを電源管理フレームワーク (PoFx) に通知します。
PoFxIdleComponent The PoFxIdleComponent routine decrements the activation reference count on the specified component.
PoFxIssueComponentPerfStateChange The PoFxIssueComponentPerfStateChange routine submits a request to place a device component in a particular performance state.
PoFxIssueComponentPerfStateChangeMultiple The PoFxIssueComponentPerfStateChangeMultiple routine submits a request to change the performance states in multiple performance state sets simultaneously for a device component.
PoFxNotifySurprisePowerOn The PoFxNotifySurprisePowerOn routine notifies the power management framework (PoFx) that a device was turned on as a side effect of supplying power to some other device.
PoFxPowerControl The PoFxPowerControl routine sends a power control request to the power management framework (PoFx).
PoFxQueryCurrentComponentPerfState The PoFxQueryCurrentComponentPerfState routine retrieves the active performance state in a component's performance state set.
PoFxRegisterComponentPerfStates The PoFxRegisterComponentPerfStates routine registers a device component for performance state management by the power management framework (PoFx).
PoFxRegisterDevice The PoFxRegisterDevice routine registers a device with the power management framework (PoFx).
PoFxReportDevicePoweredOn The PoFxReportDevicePoweredOn routine notifies the power management framework (PoFx) that the device completed the requested transition to the D0 (fully on) power state.
PoFxSetComponentLatency The PoFxSetComponentLatency routine specifies the maximum latency that can be tolerated in the transition from the idle condition to the active condition in the specified component.
PoFxSetComponentResidency The PoFxSetComponentResidency routine sets the estimated time for how long a component is likely to remain idle after the component enters the idle condition.
PoFxSetComponentWake The PoFxSetComponentWake routine indicates whether the driver arms the specified component to wake whenever the component enters the idle condition.
PoFxSetDeviceIdleTimeout The PoFxSetDeviceIdleTimeout routine specifies the minimum time interval from when the last component of the device enters the idle condition to when the power management framework (PoFx) calls the driver's DevicePowerNotRequiredCallback callback routine.
PoFxStartDevicePowerManagement The PoFxStartDevicePowerManagement routine completes the registration of a device with the power management framework (PoFx) and starts device power management.
PoFxUnregisterDevice The PoFxUnregisterDevice routine removes the registration of a device from the power management framework (PoFx).

デバイス電源管理コールバック

これらのコールバック ルーチンは、デバイスの電源管理を有効にするために、電源管理フレームワーク (PoFx) によって必要です。 デバイスの電源ポリシー所有者であるドライバーは、これらのコールバック ルーチンを実装します。 PoFx はこれらのルーチンを呼び出して、デバイス内のコンポーネントの電源状態を照会および構成します。

Topic Description
ComponentActiveConditionCallback The ComponentActiveConditionCallback callback routine notifies the driver that the specified component completed a transition from the idle condition to the active condition.
ComponentIdleConditionCallback The ComponentIdleConditionCallback callback routine notifies the driver that the specified component completed a transition from the active condition to the idle condition.
ComponentIdleStateCallback The ComponentIdleStateCallback callback routine notifies the driver of a pending change to the Fx power state of the specified component.
ComponentPerfStateCallback The ComponentPerfStateCallback callback routine notifies the driver that its request to change the performance state of a component is complete.
DevicePowerNotRequiredCallback The DevicePowerNotRequiredCallback callback routine notifies the device driver that the device is not required to stay in the D0 power state.
DevicePowerRequiredCallback The DevicePowerRequiredCallback callback routine notifies the device driver that the device must enter and remain in the D0 power state.
PowerControlCallback The PowerControlCallback callback routine performs a power control operation that is requested by the power management framework (PoFx).

デバイスの電源管理の構造

電源管理フレームワーク (PoFx) は、デバイスの電源管理をサポートするためにこれらの構造を定義します。

Topic Description
PO_FX_COMPONENT_V1PO_FX_COMPONENT_V2 The PO_FX_COMPONENT structure describes the power state attributes of a component in a device.
PO_FX_COMPONENT_IDLE_STATE The PO_FX_COMPONENT_IDLE_STATE structure specifies the attributes of an Fx power state of a component in a device.
PO_FX_COMPONENT_PERF_INFO The PO_FX_COMPONENT_PERF_INFO structure describes all the sets of performance states for a single component within a device.
PO_FX_COMPONENT_PERF_SET The PO_FX_COMPONENT_PERF_SET structure represents a set of performance states for a single component within a device.
PO_FX_DEVICE_V1PO_FX_DEVICE_V2PO_FX_DEVICE_V3 The PO_FX_DEVICE structure describes the power attributes of a device to the power management framework (PoFx).
PO_FX_PERF_STATE The PO_FX_PERF_STATE structure represents a performance state for a single component within a device.
PO_FX_PERF_STATE_CHANGE The PO_FX_PERF_STATE_CHANGE structure contains information about a change to a performance state that is being requested by calling the PoFxIssueComponentPerfStateChange or PoFxIssueComponentPerfStateChangeMultiple routine.

デバイスの電源管理列挙

電源管理フレームワーク (PoFx) は、デバイスの電源管理をサポートするためにこれらの列挙体を定義します。

Topic Description
PO_FX_PERF_STATE_TYPE The PO_FX_PERF_STATE_TYPE enumeration contains values that describe the type of performance states in a PO_FX_COMPONENT_PERF_SET.
PO_FX_PERF_STATE_UNIT The PO_FX_PERF_STATE_UNIT enumeration contains values that describe the type of unit that is controlled by the performance states in a PO_FX_COMPONENT_PERF_SET.

デバイスの電源管理定数

フラグ ビットPO_FX_FLAG_XXX

The PO_FX_FLAG_XXX constants are flag bits that indicate whether a request to change the condition of component is performed synchronously or asynchronously.

#define PO_FX_FLAG_BLOCKING   0x1
#define PO_FX_FLAG_ASYNC_ONLY 0x2

PO_FX_FLAG_XXX constants

Constant Description
PO_FX_FLAG_BLOCKING 条件を同期的に変更します。 このフラグが設定されている場合、条件の変更を要求するルーチンは、コンポーネント ハードウェアが新しい条件への移行を完了するまで、呼び出し元のドライバーに制御を返しません。 このフラグは、呼び出し元が IRQL < DISPATCH_LEVELで実行されている場合にのみ使用できます。
PO_FX_FLAG_ASYNC_ONLY 条件の変更を完全に非同期にします。 このフラグが設定されている場合、呼び出し元のドライバーのコールバック ルーチンは、条件の変更を要求するルーチンが呼び出されるスレッド以外のスレッドから呼び出されます。 したがって、条件の変更を要求するルーチンは、コールバックの完了を待たずに常に非同期的に返されます。

PO_FX_FLAG_XXX remarks

The Flags parameter to the following routines can be set to a PO_FX_FLAG_XXX constant:

The PO_FX_FLAG_BLOCKING and PO_FX_FLAG_ASYNC_ONLY flag bits are mutually exclusive. 呼び出し元は Flags パラメーターで 1 つまたは他のフラグ ビットを設定できますが、両方のフラグ ビットを設定することはできません。

PO_FX_FLAG_XXX Requirements

Version Header
Windows 8 以降でサポートされています。 Wdm.h

フラグ ビットPO_FX_FLAG_PERF_XXX

The PO_FX_FLAG_PERF_XXX constants are flag bits that define how the power management framework (PoFx) manages performance states for a device component.

#define PO_FX_FLAG_PERF_PEP_OPTIONAL   0x1
#define PO_FX_FLAG_PERF_QUERY_ON_F0 0x2
#define PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES 0x4
Constant Value Description
PO_FX_FLAG_PERF_PEP_OPTIONAL 1 (0x1) ドライバーがプラットフォーム拡張機能プラグイン (PEP) の支援なしにパフォーマンス状態を変更できること、またはドライバーがログ記録のみを目的として PoFx にパフォーマンス状態を登録していることを示します。 If this flag is set, the PoFxRegisterComponentPerfStates call will still succeeded if the PEP does not support performance states for the component.
PO_FX_FLAG_PERF_QUERY_ON_F0 2 (0x2) 一部のデバイスでは、PEP は、コンポーネントがアイドル状態になったときに、コンポーネントのパフォーマンス状態を特定のパフォーマンス状態 ( 標準パフォーマンス状態と呼ばれます) に配置する必要がある場合があります。 コンポーネントにわずかなパフォーマンス状態が含まれている場合、ドライバーはこのフラグを設定します。この場合、PoFx は PEP を照会して、コンポーネントが F0 に遷移したときに現在のパフォーマンス状態を判断します。
PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES 4 (0x4) 一部のデバイスでは、PEP は、アイドル状態間でコンポーネントを遷移するときに、コンポーネントのパフォーマンス状態を特定のパフォーマンス状態 ( 名目上のパフォーマンス状態と呼ばれます) に設定する必要がある場合があります。 このコンポーネントに標準のパフォーマンス状態が含まれている場合、ドライバーはこのフラグを設定します。この場合、PoFx は PEP を照会して、コンポーネントがアイドル状態間で遷移したときに現在のパフォーマンス状態を判断します。

PO_FX_FLAG_PERF_XXX remarks

The Flags parameter to the PoFxRegisterComponentPerfStates routine can be set to a PO_FX_FLAG_PERF_XXX constant.

PO_FX_FLAG_PERF_XXX requirements

Requirements Version
Windows 10 以降でサポートされています。 Wdm.h