StorPortNotification 関数 (storport.h)
ミニポート ドライバーは、特定のイベントと条件を Storport ドライバーに通知する StorPortNotification ルーチンを使用します。
StorPortNotification は、指定された通知の種類に応じて可変の数のパラメーターを受け取ります。
構文
STORPORT_API VOID StorPortNotification(
SCSI_NOTIFICATION_TYPE NotificationType,
PVOID HwDeviceExtension,
...
);
パラメーター
NotificationType
通知の種類を指定します。次のいずれかの値を指定できます。
通知の種類 | 形容 |
---|---|
BufferOverrunDetected | この通知の種類には引数がなく、ミニポート ドライバーが破損を検出した場合にシステムをバグチェックする機会を与えます。 |
BusChangeDetected |
ターゲット デバイスが動的バスに追加または削除された可能性があることを示します。 この通知の種類を使用するには、変更が検出された SCSI ポートまたはバスを示すオプションの PathId パラメーターを含めます。
|
IoTargetRequestServiceTime |
Storport に、指定された要求の処理に必要な時間を示します。
期間 [in] Srb に必要なサービス時間の期間 (100 ナノ秒単位)。 Srb [in] サービス時間を設定する要求ブロック。 |
LinkDown | リンクがダウンしていて、しばらくの間ダウンする可能性があることを示します。 StorPort は、この通知に応答してアダプターを一時停止します。 |
LinkUp | リンクが復元されたことを示します。 StorPort は、この通知に応答して操作を再開できるようにアダプターを再起動します。 ミニポート ドライバーは、リンクがダウンしていない限り、この通知を送信しないでください。 |
QueryTickCount |
この通知の種類は、KeQueryTickCount から値保持するLARGE_INTEGERを返します。 TickCount で返される値は、システムの起動後に発生した間隔タイマー割り込みの数です。
|
RequestComplete |
指定された SRB が終了したことを示します。 この通知が送信されると、ポート ドライバーが要求を所有します。 Srb パラメーターは、完了した SCSI 要求ブロックへのポインターを表します。 ミニポート ドライバーは、Srb 内の要求にアクセスしようとしないでくださいし、別のルーチンに Srb を渡す必要があります。
|
RequestTimerCall |
ミニポート ドライバーは、要求されたマイクロ秒単位でミニポート ドライバーの HwStorTimer ルーチンを呼び出すポート ドライバーが必要であることを示します。
HwStorTimer [in] ミニポートTimerValue で指定された時間間隔の後に呼び出されるタイマー ルーチンへのポインター。 ミニポートTimerValue [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 が求められたとおりに取得されたと見なす必要があります。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | storport.h (Storport.h を含む) |
ライブラリ | Storport.lib |
DDI コンプライアンス規則 を する | StorPortNotification2(storport)、StorPortStatusPending、StorPortTimer(storport) |
関連項目
StorPortInitialize の