次の方法で共有


StorPortNotification 関数 (storport.h)

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

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
);

期間 [in]

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]

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

ミニポートTimerValue [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 が求められたとおりに取得されたと見なす必要があります。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー storport.h (Storport.h を含む)
ライブラリ Storport.lib
DDI コンプライアンス規則 する StorPortNotification2(storport)、StorPortStatusPending、StorPortTimer(storport)

関連項目

StorPortInitialize