Storport ドライバーのミニポート ルーチン

Storport ドライバーで動作するミニポート ドライバーには、このセクションに記載されているルーチンの説明の実装が含まれている必要があります。また、ミニポート ドライバーの初期化フェーズ中に HW_INITIALIZATION_DATA 構造を介して公開する必要があります。

Storport ミニポート ドライバー ルーチンは、ほとんどの点で、相当する SCSI ポートに対応します (詳細については SCSI ミニポート ドライバー ルーチンを参照してください)。 ただし、SCSI ポート ドライバーの設計と Storport ドライバーの設計には重要な違いがあり、これらのルーチンではこの違いに対応する必要があります。

たとえば、Storport ドライバーで動作するミニポート ドライバーは、HwStorStartIo ルーチンが完了した後、別の I/O 要求を受け取るために常に準備が整っている必要があります。 SCSI ポートで動作するミニポート ドライバーは、これを行う必要はありません。 SCSI ポート バージョンは、StorPortNotification 関数を使用してポート ドライバーに別の要求を処理する準備が整っていることを明示的に通知するまで、新しい I/O 要求を受信しません。

Storport バージョンのミニポート ドライバーが送信時に要求を処理できない場合は、SCSI ポートバージョンでは使用できない一連のキュー管理機能があり、これによりオーバーロードを処理できます。 SCSI ポートのバージョンと同様に、ミニポート ドライバーの Storport バージョンは、SRB_STATUS_BUSY で要求を完了しますが、SCSI ポートのバージョンとは異なり、StorPortDeviceBusy ルーチンを使用して、デバイス キューをビジーとしてマークすることもできます。 同様の関数を使用すると、ミニポート ドライバーはアダプター全体で処理を一時停止および再開できます。

Storport ドライバーによって提供されるサポート ルーチンの詳細については、Storport ドライバーのサポート ルーチンを参照してください。

Storport ドライバーの詳細については、ストレージ ポート ドライバーを参照してください。

ミニポート ドライバー ルーチンを次に示します。

ルーチンによって返される値 説明
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE メッセージ通知割り込み (MSI) を処理します。
HW_ADAPTER_CONTROL 電源管理のために HBA の停止や再起動など、アダプターの状態または動作を制御する同期操作を実行します。
HW_BUILDIO 共有システム データ構造への同期されていないアクセス権を持つ SRB を処理してから、HwStorStartIo に渡します。
HW_DPC_ROUTINE 遅延プロシージャ呼び出し (DPC) メカニズムを使用して DISPATCH IRQL で実行するために遅延されるルーチン。
HW_FIND_ADAPTER 指定された構成を使用して、特定の HBA がサポートされているかどうかを判断し、サポートされている場合は、そのアダプターに関する構成情報を返します。
HW_INITIALIZE システムの再起動または電源障害が発生した後、ミニポート ドライバーを初期化します。
HW_INTERRUPT Storport ドライバーは、HBA が 割り込み要求を生成した後、HwStorInterrupt ルーチンを呼び出します。
HW_PASSIVE_INITIALIZE_ROUTINE 現在の IRQL が PASSIVE_LEVEL にあるときに HwStorInitialize ルーチンの後に呼び出されます。
HW_RESET_BUS エラー状態をクリアするためにポート ドライバーによって呼び出されます。
HW_STARTIO Storport ドライバーは、受信 I/O 要求ごとに HwStorStartIo ルーチンを 1 回呼び出します。
HW_TIMER ミニポート ドライバーが RequestTimerCallNotificationType 値を持つ StorPortNotification と呼ばれるときに、指定された間隔の後に呼び出されます。
HW_TRACING_ENABLED Storport で、イベント トレースが有効になっていることをミニポートに通知できるようにします。
HW_UNIT_CONTROL ストレージ ユニット デバイスの状態を制御する同期操作を実行するために呼び出されます。 ミニポート ドライバーは、ユニットを開始するか、ユニット デバイスの電源状態遷移を処理するように通知されます。
HW_WORKITEM Storport 作業項目要求を処理するためのミニポート提供のコールバック関数。
STORPORT_TELEMETRY_EVENT ミニポート テレメトリ データ ペイロードについて説明します。
StorPortLogTelemetry ミニポート テレメトリ イベントをログに記録して、有用な情報を診断または収集します。 ミニポートは、8 つの汎用の名前と値のペアと 4 KB の最大長を持つバッファーだけでなく、構造体 STORPORT_TELEMETRY_EVENT で定義されているいくつかのイベント関連フィールドをログに記録できます。