PO_FX_DEVICE_V2 構造体 (wdm.h)

PO_FX_DEVICE構造では、電源管理フレームワーク (PoFx) に対するデバイスの電源属性について説明します。

構文

typedef struct _PO_FX_DEVICE_V2 {
  ULONG                                      Version;
  ULONGLONG                                  Flags;
  PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK ComponentActiveConditionCallback;
  PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK   ComponentIdleConditionCallback;
  PPO_FX_COMPONENT_IDLE_STATE_CALLBACK       ComponentIdleStateCallback;
  PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK      DevicePowerRequiredCallback;
  PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK  DevicePowerNotRequiredCallback;
  PPO_FX_POWER_CONTROL_CALLBACK              PowerControlCallback;
  PVOID                                      DeviceContext;
  ULONG                                      ComponentCount;
  PO_FX_COMPONENT_V2                         Components[ANYSIZE_ARRAY];
} PO_FX_DEVICE_V2, *PPO_FX_DEVICE_V2;

メンバー

Version

この構造体のバージョン番号。 ドライバーが PoFx でパフォーマンス状態のサポートに登録する場合は、このメンバーを PO_FX_VERSION_V2 に設定します。 それ以外の場合は、このメンバーを PO_FX_VERSION_V1 に設定します。

Flags

0 に設定されます。 現在、このメンバーにはフラグは定義されていません。

ComponentActiveConditionCallback

デバイス ドライバーによって実装される ComponentActiveConditionCallback コールバック ルーチンへのポインター。

ComponentIdleConditionCallback

デバイス ドライバーによって実装される ComponentIdleConditionCallback コールバック ルーチンへのポインター。

ComponentIdleStateCallback

デバイス ドライバーによって実装される ComponentIdleStateCallback コールバック ルーチンへのポインター。

DevicePowerRequiredCallback

デバイス ドライバーによって実装される DevicePowerRequiredCallback コールバック ルーチンへのポインター。

DevicePowerNotRequiredCallback

デバイス ドライバーによって実装される DevicePowerNotRequiredCallback コールバック ルーチンへのポインター。

PowerControlCallback

デバイス ドライバーによって実装される PowerControlCallback コールバック ルーチンへのポインター。

DeviceContext

呼び出し元によって割り当てられたデバイス コンテキストへのポインター。 このポインターは、この構造体によって指される各ドライバー実装コールバック関数にパラメーターとして渡されます。 デバイス ドライバーは、このコンテキストを使用して、デバイスの現在の電源状態に関する情報を格納します。 このコンテキストは PoFx に対して不透明です。

ComponentCount

Components 配列内の要素の数。 さらに、このメンバーは、デバイス内のコンポーネントの数を指定します。

Components[ANYSIZE_ARRAY]

このメンバーは、1 つ以上のPO_FX_COMPONENT要素の配列内の最初 要素です。 配列に複数の要素が含まれている場合、追加の要素は PO_FX_DEVICE 構造体の直後に配置されます。 配列には、デバイス内のコンポーネントごとに 1 つの要素が含まれています。 各コンポーネントの Fx 電源状態は、デバイス内の他のコンポーネントの Fx 電源状態とは無関係に制御できます。 ANYSIZE_ARRAY定数は、Ntdef.h ヘッダー ファイルで 1 に定義されます。

注釈

デバイスを PoFx に登録するために、ドライバーは PoFxRegisterDevice ルーチンを呼び出し、パラメーターとして、デバイスを記述する PO_FX_DEVICE 構造体へのポインターを提供します。

Components 配列の各要素は、デバイス内の 1 つのコンポーネントの電源状態属性を記述します。 デバイス内の各コンポーネントは、 Components 配列インデックスによって識別されます。 PoFxActivateComponentPoFxCompleteIdleCondition などのルーチンでは、コンポーネントの配列インデックスを使用してコンポーネントを識別します。

デバイス ドライバーは、6 つのコールバック ルーチンをすべて実装する必要はありません。 ドライバーが対応するコールバック ルーチンを実装していない場合、 ドライバーは、PO_FX_DEVICE 構造体の関数ポインターを NULL に設定できます。 ただし、特定のコールバック ルーチンを実装する必要があります。 具体的には、デバイス内の 1 つ以上のコンポーネントに複数の Fx 状態がある場合、ドライバーは ComponentIdleStateCallbackComponentActiveConditionCallback、および ComponentIdleConditionCallback ルーチンを実装する必要があります。 それ以外の場合、デバイスの登録は失敗し、PoFxRegisterDevice はSTATUS_INVALID_PARAMETERを返します。

要件

要件
サポートされている最小のクライアント Windows 8 以降でサポートされています。
Header wdm.h (Wudfwdm.h を含む)

こちらもご覧ください

ComponentActiveConditionCallback

ComponentIdleConditionCallback

ComponentIdleStateCallback

DevicePowerNotRequiredCallback

DevicePowerRequiredCallback

PO_FX_COMPONENT

PoFxActivateComponent

PoFxCompleteIdleCondition

PoFxRegisterDevice

PowerControlCallback