STOR_POFX_DEVICE_V3構造体 (storport.h)

STOR_POFX_DEVICE_V3構造では、電源管理フレームワーク (PoFx) に対するストレージ デバイスの電源属性について説明します。 この構造体は STOR_POFX_DEVICE に似ていますが、呼び出し元はアイドル タイムアウト値を指定できます。

構文

typedef struct _STOR_POFX_DEVICE_V3 {
  ULONG               Version;
  ULONG               Size;
  ULONG               ComponentCount;
  ULONG               Flags;
  union {
    ULONG UnitMinIdleTimeoutInMS;
    ULONG AdapterIdleTimeoutInMS;
  };
  ULONG               MinimumPowerCyclePeriodInMS;
  STOR_POFX_COMPONENT Components[ANYSIZE_ARRAY];
} STOR_POFX_DEVICE_V3, *PSTOR_POFX_DEVICE_V3;

メンバー

Version

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

Size

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

ComponentCount

Components 配列内の要素の数。 このメンバーを 1 に設定します。 現在、ストレージ アダプターまたは論理ユニットでは、1 つのコンポーネントのみがサポートされています。

Flags

デバイスの電源状態機能フラグ。 ミニポートは、電源状態機能を有効または無効にする PoFx デバイス フラグの 1 つ以上を設定します。 フラグ は、次のビットごとの OR の組み合わせです。

フラグ値 意味
STOR_POFX_DEVICE_FLAG_NO_D0 (0x01) アダプターまたはユニットのデバイス オブジェクトに電源投入 IRP を送信しないことを要求します。
STOR_POFX_DEVICE_FLAG_NO_D3 (0x02) アダプターまたはユニットのデバイス オブジェクトに電源を切る IRP を送信しないことを要求します。
STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD (0x04) Storport でアダプターがサポートされている場合に、アダプターの D3 コールド状態を設定できるようにします。 このフラグは、アダプターにのみ適用されます。
STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE (0x08) デバイスがアイドル状態のときにダンプに使用できるかどうかを示します。 デバイスがアイドル状態になった場合、またはアイドル状態のときに電源がオフになった場合、ミニポートはダンプ モードでストレージ デバイスをアクティブにすることができません。
STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT (0x10) STOR_POFX_DEVICE_V3が単位を表す場合、このフラグは UnitMinIdleTimeoutInMS フィールドを受け入れるべきであることを示します。 STOR_POFX_DEVICE_V3がアダプターを表す場合、これは AdapterIdleTimeoutInMS フィールドを受け入れる必要があることを示します。
STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT (0x20) Storport が D3 アイドル タイムアウトを動的に調整して、必要に応じてデバイスが積極的に D3 に入る可能性があることを示します。 これは、 STOR_POFX_DEVICE_V3 が使用されている場合にのみ有効です。
STOR_POFX_DEVICE_FLAG_NO_UNIT_REGISTRATION (0x40) ランタイム電源管理のために、このアダプターによって公開されるユニットを登録しない必要があることを指定します。 これは、アダプターを表 すSTOR_POFX_DEVICE 構造体に対してのみ有効です。
STOR_POFX_DEVICE_FLAG_PERF_STATE_PEP_OPTIONAL (0x80) ミニポートがプラットフォーム拡張機能プラグイン (PEP) からの P 状態のサポートを必要としないことを示します。 不明な場合は、このフラグを設定します。
STOR_POFX_DEVICE_FLAG_NO_IDLE_DEBOUNCE (0x100) デバイスの電源が低い状態にある場合に、ミニポートのダンプ バージョンがデバイスの電源をオンにする方法を確認します。
STOR_POFX_DEVICE_FLAG_DUMP_ALWAYS_POWER_ON (0x200) ミニポートは、ダンプ スタックがデバイスの電源をオンにしようとします。
STOR_POFX_DEVICE_FLAG_DISABLE_INTERRUPTS_ON_D3 (0x400) ミニポートは、Dx 遷移で割り込みを無効または有効にする Storport を必要とします。
STOR_POFX_DEVICE_FLAG_ADAPTER_D3_WAKE (0x800) ミニポート isopt-in アダプター D3 ウェイク サポート。
STOR_POFX_DEVICE_FLAG_GET_PERF_STATE_FROM_PEP (0x1000) ミニポートには、PEP からの P 状態が必要です。

UnitMinIdleTimeoutInMS

ユニットの最小アイドル時間 (ミリ秒)。 この値は、 flags でSTOR_POFX_DEVICE_FLAG_IDLE_TIMEOUTが設定されている場合にのみ有効です。

AdapterIdleTimeoutInMS

アダプターのアイドル タイムアウト値 (ミリ秒単位)。 この値は、 flags でSTOR_POFX_DEVICE_FLAG_IDLE_TIMEOUTが設定されている場合にのみ有効です。

MinimumPowerCyclePeriodInMS

指定した期間ごとにデバイスの電源を 2 回以上 (D0 -> D3 -> D0) に 1 回だけミリ秒単位で切り換えないことを示します。 このメンバーは、STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT フラグが設定されている場合にのみ有効です。

Components[ANYSIZE_ARRAY]

このメンバーは、1 つ以上のSTOR_POFX_COMPONENT要素の配列の最初 要素です。 配列に複数の要素が含まれている場合、追加の要素は STOR_POFX_DEVICE 構造体の直後に配置されます。 配列には、デバイス内のコンポーネントごとに 1 つの要素が含まれています。 現在、ストレージ デバイスにはコンポーネントが 1 つしかないため、追加のコンポーネント構造は不要です。

注釈

Storport PoFx サポート用のストレージ アダプターを登録するために、ミニポート ドライバーは、その HwStorInitialize ルーチンで StorPortEnablePassiveInitialization を呼び出し、HwStorPassiveInitializeRoutine を実装します。 ミニポートは、アダプター コンポーネントに関する情報を提供するために、その中の HwStorPassiveInitializeRoutine 内で StorPortInitializePoFxPower を呼び出します。

Storport PoFx サポート用のストレージ ユニットを登録するために、ミニポート ドライバーは HwStorUnitControl コールバック ルーチンを実装し、 ScsiUnitPoFxPowerInfo ユニットコントロール コードの処理を提供します。 ScsiUnitPoFxPowerInfo コントロール コードの処理時に、ユニット コンポーネントのアイドル状態の電源管理が有効になっている場合、ミニポートは StorPortInitializePoFxPower を呼び出します。

Components 配列インデックスによって識別されるストレージ デバイスの コンポーネント 。 ストレージ デバイスにはコンポーネントが 1 つしかないため、インデックス 0 が使用されます。 StorPortPoFxActivateComponentStorPortPoFxIdleComponent などのルーチンでは、コンポーネントの配列インデックスを使用してコンポーネントを識別します。

要件

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

こちらもご覧ください

STOR_POFX_COMPONENT

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent

StorPortPoFxIdleComponent