次の方法で共有


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

すべてのミニポート ドライバーは、HwScsiResetBus ルーチンを備える必要があります。このルーチンは、HBA 状態用のミニポート ドライバーのデバイス拡張機能へのポインターと、リセットされるバスの PathId で呼び出されます。 試行されたバスリセット操作が失敗した場合、またはタイムアウトした場合、ミニポート ドライバーは ScsiPortLogError を呼び出し、HBA にハード リセットをプログラムします。

バスリセット操作では、ミニポート ドライバーは、バス上のデバイスのデバイス拡張機能や論理ユニットの拡張機能に保持している状態をクリーンアップする必要があるかもしれません。 HwScsiResetBus は、SrbStatus 値に SRB_STATUS_BUS_RESET を設定して ScsiPortCompleteRequest を呼び出すか、個々の SRB の場合は、この状態値を設定して ScsiPortNotification を呼び出すことにより、未処理の要求を完了させる必要があります。

バスリセット要求と未処理の要求を完了した後、ミニポート ドライバーは、NotificationTypeNextRequest を使用して、または HBA がタグ付きキューもしく各論理ユニットへの複数の要求をサポートしている場合は NextLuRequest を使用して、ScsiPortNotification を呼び出す必要があります (まだ行っていない場合)。

オペレーティング システム (特定のポート ドライバー) が、ミニポート ドライバーに代わって SCSI バスリセットの遅延を管理することに注意してください。