StorPortNotification 関数 (storport.h)
ミニポート ドライバーは 、StorPortNotification ルーチンを使用して、特定のイベントと条件を Storport ドライバーに通知します。
StorPortNotification は、指定された通知の種類に応じて、可変数のパラメーターを受け取ります。
構文
STORPORT_API VOID StorPortNotification(
SCSI_NOTIFICATION_TYPE NotificationType,
PVOID HwDeviceExtension,
...
);
パラメーター
NotificationType
通知の種類を指定します。次のいずれかの値を指定できます。
通知の種類 | 説明 |
---|---|
BufferOverrunDetected | この通知の種類には引数がなく、ミニポート ドライバーが破損を検出した場合にシステムをバグチェックする機会を与えます。 |
BusChangeDetected |
ターゲット デバイスが動的バスに追加または削除された可能性があることを示します。 この通知の種類を使用するには、変更が検出された SCSI ポートまたはバスを示すオプションの PathId パラメーターを含めます。
|
IoTargetRequestServiceTime |
指定した要求の処理に必要な時間を Storport に示します。
期間 [入力] Srb に必要なサービス時間の期間 (100 ナノ秒単位)。 Srb [in] サービス時間を設定する要求ブロック。 |
LinkDown | リンクがダウンし、しばらくの間ダウンする可能性があることを示します。 StorPort は、この通知に応答してアダプターを一時停止します。 |
LinkUp | リンクが復元されたことを示します。 StorPort はアダプターを再起動して、この通知に応答して操作を再開できるようにします。 ミニポート ドライバーは、リンクがダウンしている場合を除き、この通知を送信しないでください。 |
QueryTickCount |
この通知の種類は、 KeQueryTickCount の値を保持するLARGE_INTEGERを返します。 TickCount で返される値は、システムの起動後に発生した間隔タイマー割り込みの数です
|
RequestComplete |
指定された SRB が完了したことを示します。 この通知が送信されると、ポート ドライバーは要求を所有します。 Srb パラメーターは、完了した SCSI 要求ブロックへのポインターを表します。 ミニポート ドライバーは、Srb 内の要求にアクセスしようとしないでくださいし、別のルーチンに Srb を渡す必要があります。
|
RequestTimerCall |
ミニポート ドライバーが要求されたマイクロ秒数でミニポート ドライバーの HwStorTimer ルーチンを呼び出すためにポート ドライバーが必要であることを示します。
HwStorTimer [in] MiniportTimerValue で指定された時間間隔の後に呼び出されるタイマー ルーチンへのポインター。 MiniportTimerValue [in] HwStorTimer が指すタイマー ルーチンが呼び出されるまでの間隔を示します。 これは、マイクロ秒単位で指定された正の値です。 値が 0 の場合、タイマーは取り消されます。 システム タイマーの解像度は約 10 ミリ秒です。 |
ResetDetected | HBA がバスのリセットを検出したことを示します。 この通知が送信された後も、ミニポート ドライバーはアクティブな要求を完了する責任を負います。 ポート ドライバーは、必要なすべてのバス リセット遅延を管理します。 |
WMIEvent |
ミニポート ドライバーが 1 つ以上の WMI データ コンシューマーが登録されているイベントを検出したことを示します。 WmiEvent パラメーターは最大 128 バイトに制限されることに注意してください。 WmiEvent が 128 バイトを超える場合、無視されます。
WMIEvent [in] ミニポート ドライバーによって検出された WMI イベントに関する情報を持つイベント構造体へのポインター。 PathId [in] 要求の SCSI ポートまたはバスを示します。 このパラメーターをアダプター デバイスの0xffに設定します。 それ以外の場合は、有効なパス ID に設定します。 TargetId [in, optional] バス上のターゲット コントローラーまたはデバイスを示します。 このパラメーターは、イベントがアダプター用の場合は使用されません。 Lun [in, optional] デバイスの論理ユニット番号を示します。 このパラメーターは、イベントがアダプター用の場合は使用されません。 |
WMIReregister |
ミニポート ドライバーが 、IoWMIRegistrationControl を呼び出して以前に登録された特定のデータ ブロックのデータ項目またはインスタンスの数を変更したことを示します。
PathId [in] 要求の SCSI ポートまたはバスを示します。 このパラメーターをアダプター デバイスの0xffに設定します。 それ以外の場合は、有効なパス ID に設定します。 TargetId [in, optional] バス上のターゲット コントローラーまたはデバイスを示します。 登録がアダプターの場合、このパラメーターは使用されません。 Lun [in, optional] デバイスの論理ユニット番号を示します。 登録がアダプターの場合、このパラメーターは使用されません。 |
HwDeviceExtension
ハードウェア デバイス拡張機能へのポインター。 これは、ポート ドライバーがミニポート ドライバーの代わりに割り当ておよび初期化する HBA 記憶域ごとの です。 ミニポート ドライバーは通常、HBA の状態や HBA のマップされたアクセス範囲など、この拡張機能に HBA 固有の情報を格納します。 この領域は、ミニポート ドライバーが StorPortInitialize を呼び出した直後に、ミニポート ドライバーで使用できます。 ポート ドライバーは、デバイスを削除すると、このメモリを解放します。
...
その他のパラメーター。
戻り値
[なし] :
解説
StorPortNotification は、さまざまな種類の要求を処理するポリモーフィック関数であり、考えられるすべての用途をカバーする方法で注釈を付けるのが困難です。 StorPortNotification は VOID を返すので、スキャン エンジンは、LockHandle が要求されたとおりに取得されたと見なす必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | storport.h (Storport.h を含む) |
Library | Storport.lib |
DDI コンプライアンス規則 | StorPortNotification2(storport)、StorPortStatusPending、 StorPortTimer(storport) |