次の方法で共有


StorPortAsyncNotificationDetected 関数 (storport.h)

ストレージ ミニポート ドライバー StorPortAsyncNotificationDetected を呼び出して、Storport ドライバーにストレージ デバイスの状態変更イベントを通知します。

通知は、DISPATCH_LEVEL以下の IRQL で遅延処理を行う作業項目としてキューに登録されます。

構文

ULONG StorPortAsyncNotificationDetected(
  [in] PVOID         HwDeviceExtension,
       PSTOR_ADDRESS Address,
       ULONGLONG     Flags
);

パラメーター

[in] HwDeviceExtension

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

Address

状態変更イベントを含むストレージ デバイスのアドレス。

Flags

Storport に示す状態通知。

Flags パラメーターには、状態通知のビットごとの OR の組み合わせが含まれています。 すべての状態値は、単一の RAID_ASYNC_NOTIFY_SUPPORTED_FLAGS 値で設定できます。

価値 意味
RAID_ASYNC_NOTIFY_FLAG_MEDIA_STATUS
メディアの変更が発生したことを Storport に通知します。
RAID_ASYNC_NOTIFY_FLAG_DEVICE_STATUS
ストレージ デバイスの機能状態が変更されたことを Storport に通知します。
RAID_ASYNC_NOTIFY_FLAG_DEVICE_OPERATION
ストレージ デバイスの運用ロールが変更されたことを Storport に通知します。

戻り値

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

リターン コード 形容
STOR_STATUS_SUCCESS
状態変更通知は、処理のためにスケジュールされます。
STOR_STATUS_INVALID_PARAMETER
アドレスの種類が無効です。

-又は-

HwDeviceExtension NULL

-又は-

Flags には未定義の値が含まれています。

STOR_STATUS_INVALID_DEVICE_REQUEST
ストレージ・デバイス・ユニットがアドレス 見つかりません。

-又は-

ストレージ デバイスは非同期通知をサポートしていません。

STOR_STATUS_BUSY
事前の通知が処理中であり、この通知をスケジュールすることはできません。

備考

ミニポートは、その HwStorInterrupt ルーチンで状態イベントを検出し、StorPortAsyncNotificationDetected を呼び出して、下位 IRQL で後で状態変更通知をキューに入れ、処理することができます。

Storport によって処理されると、状態イベント通知がストレージ クラス ドライバーに転送され、必要なシステム応答アクションが開始されます。

Flags パラメーターが 0 の場合、Storport は、その通知内のすべての状態値をストレージ クラス ドライバーに示します。

必要条件

要件 価値
サポートされる最小クライアント Windows 8
ターゲット プラットフォーム 万国
ヘッダー storport.h (Storport.h を含む)
IRQL 任意