STOR_POFX_COMPONENT構造体 (storport.h)
STOR_POFX_COMPONENT構造体では、ストレージ デバイス コンポーネントの電源状態属性について説明します。 STOR_POFX_COMPONENT_V2構造は、追加の電源状態制御を提供します。
構文
typedef struct _STOR_POFX_COMPONENT {
ULONG Version;
ULONG Size;
ULONG FStateCount;
ULONG DeepestWakeableFState;
GUID Id;
STOR_POFX_COMPONENT_IDLE_STATE FStates[ANYSIZE_ARRAY];
} STOR_POFX_COMPONENT, *PSTOR_POFX_COMPONENT;
メンバー
Version
この構造体のバージョン番号。 このメンバーを STOR_POFX_DEVICE_VERSION_V1 に設定します。
Size
この構造のサイズ。 この値を [STOR_POFX_COMPONENT_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 (ユニットを識別します) です。
FStates[ANYSIZE_ARRAY]
STOR_POFX_COMPONENT_IDLE_STATE構造体の配列。 この配列の長さは、 FStateCount メンバーによって指定されます。 各配列要素は、コンポーネントでサポートされている F 状態の属性を指定します。 要素 0 は F0 を表し、要素 1 は F1 を表し、次のように記述します。 複数のアイドル状態構造体が必要な場合は、追加の構造体が STOR_ POFX_COMPONENT 構造体の末尾に割り当てられ、 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 8 |
Header | storport.h |