StorPortStateChangeDetected 関数 (storport.h)

Storport ポート ドライバーに、論理ユニット番号 (LUN)、ホスト バス アダプター (HBA) ポート、またはターゲット デバイスの状態変更を通知します。

構文

ULONG StorPortStateChangeDetected(
  [in]           PVOID            HwDeviceExtension,
  [in]           ULONG            ChangedEntity,
  [in]           PSTOR_ADDRESS    Address,
  [in]           ULONG            Attributes,
  [in, optional] PHW_STATE_CHANGE HwStateChange,
  [in, optional] PVOID            HwStateChangeContext
);

パラメーター

[in] HwDeviceExtension

ハードウェア デバイス拡張機能へのポインター。 これは、ポート ドライバーが割り当て、ミニポート ドライバーの代わりに初期化する HBA ごとの記憶域です。 ミニポート ドライバーは通常、HBA の状態や HBA のマップされたアクセス範囲など、この拡張機能に HBA 固有の情報を格納します。 この領域は、ミニポート ドライバーが StorPortInitialize を呼び出した直後にミニポート ドライバーで使用できます。 ポート ドライバーは、デバイスを削除すると、このメモリを解放します。

[in] ChangedEntity

状態が変更されたエンティティを示すフラグ。 これは、次の値のビットごとの OR の組み合わせです。

意味
STATE_CHANGE_LUN
1 (0x1)
LUN の状態が変更されました。
STATE_CHANGE_TARGET
2 (0x2)
ターゲットの状態が変更されました。
STATE_CHANGE_BUS
4 (0x4)
バスまたはポートの状態が変更されました。

[in] Address

状態が変更されたエンティティのアドレス。 アドレス 値は、 HwStateChange のコールバックが呼び出されるまで変更できません。 Address がメモリに割り当てられている場合は、コールバック ルーチンによってメモリを解放する必要があります。

[in] Attributes

エンティティに関連付けられている属性。 これらは、次のビットごとの OR の組み合わせです。

意味
ATTRIBUTE_VM_PASSTHROUGH_LUN
LUN は、仮想マシンで使用するために予約されています。

[in, optional] HwStateChange

ミニポートによって提供されるコールバック ルーチンへのポインター。 存在する場合、Storport ドライバーは、ドライバーがこの状態変更通知の処理を完了すると、このルーチンを呼び出します。

[in, optional] HwStateChangeContext

HwStateChange のルーチン セットが呼び出されたときに含まれるミニポート指定のコンテキスト値。

戻り値

通知の結果を示す状態値。 次のいずれかの値を指定できます。

リターン コード 説明
STOR_STATUS_SUCCESS
状態変更通知は、処理のためにスケジュールされます。
STOR_STATUS_INVALID_PARAMETER
アドレスの種類またはエンティティ型が無効です。
STOR_STATUS_UNSUCCESSFUL
事前の通知が進行中であり、この通知をスケジュールすることはできません。

注釈

StorPortStateChangeDetected を正常に呼び出すと、変更されたエンティティが再列挙されます。

いつでもアクティブにできる状態変更要求は 1 つだけです。 ミニポートが別の StorPortStateChangeDetected 呼び出しを行う必要がある場合は、 HwStateChange コールバックを提供し、HwStateChange へのコールバックが発生した後に StorPortStateChangeDetected に対して別の呼び出し 行う必要があります。 ミニポートが同時に複数の状態の変更を示す場合、ミニポートは、変更されたエンティティが現在のすべての状態の変更を含む ChangedEntity に設定された StorPortStateChangeDetected を 1 回呼び出すことができます。

ChangedEntity で複数のフラグが指定されている場合、値が大きいフラグの方が小さいフラグよりも優先されます。

要件

要件
サポートされている最小のクライアント Windows 8以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header storport.h (Storport.h を含む)
IRQL Any

こちらもご覧ください

HwStorStateChange