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 |
ヘッダー | storport.h |
関連項目
STOR_POFX_COMPONENT_IDLE_STATE
StorPortInitializePoFxPowerの
StorPortPoFxActivateComponentの