StorPortNotification 関数 (storport.h)

ミニポート ドライバーは 、StorPortNotification ルーチンを使用して、特定のイベントと条件を Storport ドライバーに通知します。

StorPortNotification は、指定された通知の種類に応じて、可変数のパラメーターを受け取ります。

構文

STORPORT_API VOID StorPortNotification(
  SCSI_NOTIFICATION_TYPE NotificationType,
  PVOID                  HwDeviceExtension,
  ...                    
);

パラメーター

NotificationType

通知の種類を指定します。次のいずれかの値を指定できます。

通知の種類 説明
BufferOverrunDetected この通知の種類には引数がなく、ミニポート ドライバーが破損を検出した場合にシステムをバグチェックする機会を与えます。
BusChangeDetected ターゲット デバイスが動的バスに追加または削除された可能性があることを示します。 この通知の種類を使用するには、変更が検出された SCSI ポートまたはバスを示すオプションの PathId パラメーターを含めます。
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_opt_ UCHAR                  PathId
);
IoTargetRequestServiceTime 指定した要求の処理に必要な時間を Storport に示します。
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ ULONGLONG              Duration,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);

期間 [入力]

Srb に必要なサービス時間の期間 (100 ナノ秒単位)。

Srb [in]

サービス時間を設定する要求ブロック。

LinkDown リンクがダウンし、しばらくの間ダウンする可能性があることを示します。 StorPort は、この通知に応答してアダプターを一時停止します。
LinkUp リンクが復元されたことを示します。 StorPort はアダプターを再起動して、この通知に応答して操作を再開できるようにします。 ミニポート ドライバーは、リンクがダウンしている場合を除き、この通知を送信しないでください。
QueryTickCount この通知の種類は、 KeQueryTickCount の値を保持するLARGE_INTEGERを返します。 TickCount で返される値は、システムの起動後に発生した間隔タイマー割り込みの数です
VOID StorPortNotification(
  _In_    SCSI_NOTIFICATION_TYPE NotificationType,
  _In_    PVOID                  HwDeviceExtension,
  _Inout_ PLARGE_INTEGER         TickCount
);
RequestComplete 指定された SRB が完了したことを示します。 この通知が送信されると、ポート ドライバーは要求を所有します。 Srb パラメーターは、完了した SCSI 要求ブロックへのポインターを表します。 ミニポート ドライバーは、Srb 内の要求にアクセスしようとしないでくださいし、別のルーチンに Srb を渡す必要があります。
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);
RequestTimerCall ミニポート ドライバーが要求されたマイクロ秒数でミニポート ドライバーの HwStorTimer ルーチンを呼び出すためにポート ドライバーが必要であることを示します。
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PHW_TIMER              HwStorTimer,
  _In_ ULONG                  MiniportTimerValue
);

HwStorTimer [in]

MiniportTimerValue で指定された時間間隔の後に呼び出されるタイマー ルーチンへのポインター。

MiniportTimerValue [in]

HwStorTimer が指すタイマー ルーチンが呼び出されるまでの間隔を示します。 これは、マイクロ秒単位で指定された正の値です。 値が 0 の場合、タイマーは取り消されます。 システム タイマーの解像度は約 10 ミリ秒です。

ResetDetected HBA がバスのリセットを検出したことを示します。 この通知が送信された後も、ミニポート ドライバーはアクティブな要求を完了する責任を負います。 ポート ドライバーは、必要なすべてのバス リセット遅延を管理します。
WMIEvent ミニポート ドライバーが 1 つ以上の WMI データ コンシューマーが登録されているイベントを検出したことを示します。 WmiEvent パラメーターは最大 128 バイトに制限されることに注意してください。 WmiEvent が 128 バイトを超える場合、無視されます。
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     PWNODE_EVENT_ITEM      WMIEvent,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

WMIEvent [in]

ミニポート ドライバーによって検出された WMI イベントに関する情報を持つイベント構造体へのポインター。

PathId [in]

要求の SCSI ポートまたはバスを示します。 このパラメーターをアダプター デバイスの0xffに設定します。 それ以外の場合は、有効なパス ID に設定します。

TargetId [in, optional]

バス上のターゲット コントローラーまたはデバイスを示します。 このパラメーターは、イベントがアダプター用の場合は使用されません。

Lun [in, optional]

デバイスの論理ユニット番号を示します。 このパラメーターは、イベントがアダプター用の場合は使用されません。

WMIReregister ミニポート ドライバーが 、IoWMIRegistrationControl を呼び出して以前に登録された特定のデータ ブロックのデータ項目またはインスタンスの数を変更したことを示します。
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

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)

こちらもご覧ください

StorPortInitialize