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 の組み合わせです。
値 | 意味 |
---|---|
|
LUN の状態が変更されました。 |
|
ターゲットの状態が変更されました。 |
|
バスまたはポートの状態が変更されました。 |
[in] Address
状態が変更されたエンティティのアドレス。 アドレス 値は、 HwStateChange のコールバックが呼び出されるまで変更できません。 Address がメモリに割り当てられている場合は、コールバック ルーチンによってメモリを解放する必要があります。
[in] Attributes
エンティティに関連付けられている属性。 これらは、次のビットごとの OR の組み合わせです。
値 | 意味 |
---|---|
|
LUN は、仮想マシンで使用するために予約されています。 |
[in, optional] HwStateChange
ミニポートによって提供されるコールバック ルーチンへのポインター。 存在する場合、Storport ドライバーは、ドライバーがこの状態変更通知の処理を完了すると、このルーチンを呼び出します。
[in, optional] HwStateChangeContext
HwStateChange のルーチン セットが呼び出されたときに含まれるミニポート指定のコンテキスト値。
戻り値
通知の結果を示す状態値。 次のいずれかの値を指定できます。
リターン コード | 説明 |
---|---|
|
状態変更通知は、処理のためにスケジュールされます。 |
|
アドレスの種類またはエンティティ型が無効です。 |
|
事前の通知が進行中であり、この通知をスケジュールすることはできません。 |
注釈
StorPortStateChangeDetected を正常に呼び出すと、変更されたエンティティが再列挙されます。
いつでもアクティブにできる状態変更要求は 1 つだけです。 ミニポートが別の StorPortStateChangeDetected 呼び出しを行う必要がある場合は、 HwStateChange コールバックを提供し、HwStateChange へのコールバックが発生した後に StorPortStateChangeDetected に対して別の呼び出し を 行う必要があります。 ミニポートが同時に複数の状態の変更を示す場合、ミニポートは、変更されたエンティティが現在のすべての状態の変更を含む ChangedEntity に設定された StorPortStateChangeDetected を 1 回呼び出すことができます。
ChangedEntity で複数のフラグが指定されている場合、値が大きいフラグの方が小さいフラグよりも優先されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | storport.h (Storport.h を含む) |
IRQL | Any |