再現可能な問題を分析するための重要なブレークポイント

SCSI ミニポート ドライバーをデバッグするときは、ブレークポイントを設定すると便利な 3 つのルーチンがあります。

  • scsiport!scsiportnotification

  • scsiport!spstartiosynchronized

  • miniport!HwStartIo

要求がミニポートに送信された直後に、ルーチン scsiport!scsiportnotification が呼び出されます。 したがって、scsiport!scsiportnotification にブレークポイントを設定し、kb 3 を使用してスタック バックトレースを実行すると、ミニポートが要求を受信して完了しているかどうかを判断できます。 最初のパラメーターが 0 の場合、要求は完了しています。 最初のパラメーターが 0 以外の場合、3 番目のパラメーターは完了していない SCSI 要求ブロック (SRB) のアドレスであり、!minipkd.srb 拡張機能を使用して状況をさらに分析できます。

scsiport!spstartiosynchronized または miniport!HwStartIo のいずれかにブレークポイントを配置すると、ミニポートにリクエストを送信する直前にブレークが発生します。