STOR_POFX_COMPONENT_V2構造体 (storport.h)

STOR_POFX_COMPONENT_V2構造体では、ストレージ デバイス コンポーネントの電源状態属性について説明します。

構文

typedef struct _STOR_POFX_COMPONENT_V2 {
  ULONG                          Version;
  ULONG                          Size;
  ULONG                          FStateCount;
  ULONG                          DeepestWakeableFState;
  GUID                           Id;
  ULONG                          DeepestAdapterPowerRequiredFState;
  ULONG                          DeepestCrashDumpReadyFState;
  STOR_POFX_COMPONENT_IDLE_STATE FStates[ANYSIZE_ARRAY];
} STOR_POFX_COMPONENT_V2, *PSTOR_POFX_COMPONENT_V2;

メンバー

Version

この構造体のバージョン番号。 このメンバーを STOR_POFX_DEVICE_VERSION_V2 に設定します。

Size

この構造のサイズ。 この値を [STOR_POFX_COMPONENT_V2_SIZE] に設定します。

FStateCount

FStates メンバーが指す配列内の要素の数。 さらに、このメンバーは、コンポーネントがサポートする機能電源状態 (F 状態) の数を指定します。 コンポーネントは、少なくとも 1 つの F 状態 (F0) をサポートする必要があります。

DeepestWakeableFState

コンポーネントがスリープ解除できる最も深い F 状態のインデックス。 F0 には 0、F1 には 1 を指定します。 このインデックスは FStateCount より小さくする必要があります。

Id

デバイス内の他のコンポーネントに対してこのコンポーネントを一意に識別するコンポーネント ID。 電源管理フレームワーク (PoFx) で、このコンポーネントを同じデバイス内の他の類似したコンポーネントと区別するためにコンポーネント ID が必要な場合、ドライバーは、このメンバーの 0 以外の値を指定する必要があります。 Storport でサポートされるコンポーネント ID は、STORPORT_POFX_ADAPTER_GUID (アダプターを識別) およびSTORPORT_POFX_LUN_GUID (ユニットを識別します) です。

DeepestAdapterPowerRequiredFState

アダプターがまだ電源を必要とする場合に、このコンポーネントが使用できる最も深い F 状態。 これは、ID がSTOR_POFX_LUN_GUIDされているコンポーネントにのみ関連します。

DeepestCrashDumpReadyFState

クラッシュが発生し、クラッシュ ダンプを書き込む必要がある場合に、ミニポートがコンポーネントをパワーアップできる最も深い F 状態。

FStates[ANYSIZE_ARRAY]

STOR_POFX_COMPONENT_IDLE_STATE構造体の配列。 この配列の長さは、 FStateCount メンバーによって指定されます。 各配列要素は、コンポーネントでサポートされている F 状態の属性を指定します。 要素 0 は F0 を表し、要素 1 は F1 を表し、次のように記述します。 複数のアイドル状態構造体が必要な場合、追加の構造体は STOR_ POFX_COMPONENT_V2 構造体の末尾に割り当てられ、 FStateCount は 1 (ANYSIZE_ARRAYの値と追加構造体の数) に設定されます。

注釈

ミニポート ドライバーが Storport 電源管理フレームワークにデバイスを登録すると、ミニポート ドライバーは、登録情報を保持する STOR_POFX_DEVICE 構造を提供します。 この構造体には、 STOR_ POFX_COMPONENT 構造体の配列が含まれています。 この配列の要素は、デバイス内の個々のコンポーネントの電源属性を記述します。 これらのコンポーネントの電源設定は、この配列の情報に基づいて管理されます。

Id メンバーには、コンポーネントを一意に識別するコンポーネント ID が含まれています。 コンポーネント ID は、 StorPortPoFxActivateComponent などのルーチンが登録済みデバイス内のコンポーネントを識別するために使用するコンポーネント インデックスと同じではありません。 コンポーネント インデックスは、デバイス ドライバーがデバイスの登録に使用したSTOR_POFX_DEVICE構造の Components 配列へのインデックスです。 Components 配列に N 個の要素が含まれている場合、コンポーネント インデックスは 0 から N - 1 の範囲の整数値です。 これに対し、コンポーネント ID は GUID 値です。

単一アダプター デバイス コンポーネントの ID は 、storport.h でSTORPORT_POFX_ADAPTER_GUIDとして定義されます。 単一ユニット デバイス コンポーネントの ID がSTORPORT_POFX_LUN_GUID。 Id メンバーでアダプター コンポーネントまたはユニット コンポーネントを記述する場合は、これらの識別子を使用します。

F 状態の要件は次のとおりです。

  • アダプター デバイス コンポーネントの場合、ミニポートは、アダプターの 1 つのコンポーネントと最大 8 つの F 状態を指定する必要があります。 StorPortInitializePoFxPower は、ミニポートのパッシブ初期化ルーチンのコンテキスト内でのみ、ミニポートによって呼び出される必要があります。
  • ユニット デバイス コンポーネントの場合、ミニポートはユニットの 1 つのコンポーネントを指定する必要があり、最大 2 つの F 状態を指定できます。 ユニット デバイスには F0 状態を指定する必要があり、必要に応じて追加の F 状態を 1 つ持つことができます。 StorPortInitializePoFxPower は、ミニポートの ScsiUnitPoFxPowerInfo ユニット コントロールのコンテキスト内でのみ、ミニポートによって呼び出される必要があります。

ユニット デバイス コンポーネントの場合、 FStates 配列に追加の F 状態が含まれている場合、サイズ メンバーは STOR_POFX_COMPONENT_SIZE に設定されたままになり、追加の STOR_POFX_COMPONENT_IDLE_STATE 構造体のサイズは含まれません。

要件

要件
サポートされている最小のクライアント Windows 10
Header storport.h

こちらもご覧ください

HW_UNIT_CONTROL

STOR_POFX_COMPONENT

STOR_POFX_COMPONENT_IDLE_STATE

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent