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
アドレスの種類が無効です。

または

HwDeviceExtensionNULL です

または

フラグ には未定義の値が含まれています。

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

または

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

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

注釈

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

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

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

要件

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