次の方法で共有


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

HwScsiEnableInterruptsCallback ルーチンは、コンピューター内の他のデバイスの I/O 操作を抑制することなく、割り込み駆動型 I/O 操作の処理を終了します。

HwScsiEnableInterruptsCallback ルーチンが制御を取得すると、HBA を除くすべてのシステム デバイス割り込みが有効になります。これは、HwScsiInterrupt ルーチンが ScsiPortNotification を呼び出す前に HBA で割り込みを無効にしているためです。 したがって、HwScsiEnableInterruptsCallback ルーチンの実行中は、ミニポート ドライバーの HwScsiInterrupt ルーチンを呼び出すことはできず、現在の操作に関して設定されたコンテキスト データを妨害することもできません。

HwScsiEnableInterruptsCallback ルーチンでは、次の操作を行います。

  1. 入力デバイス拡張機能で操作用に設定されたコンテキストを使用して、割り込みの原因となった要求の処理を完了させます。

  2. NotificationTypeRequestComplete と Just-satisfied SRB を使用して ScsiPortNotification を呼び出します。

  3. NotificationTypeNextRequest を使用して ScsiPortNotification を呼び出すか、HBA が論理ユニットごとにタグ付けされたキューまたは複数の要求をサポートしている場合は NextLuRequest を使用して呼び出します。

  4. SCSI ミニポート ドライバーの HwScsiDisableInterruptsCallback ルーチンで説明されているように、デバイス拡張機能へのポインター、NotificationTypeCallDisableInterrupts、およびミニポートドライバーの HwScsiDisableInterruptsCallback ルーチンを使用して ScsiPortNotification を呼び出します。

  5. 制御を返します。

NT ベースのオペレーティング システム ScsiPortNotification ルーチンは、システム デバイス割り込みのサブセットを無効にして、 HwScsiDisableInterruptsCallback ルーチンを呼び出します。 システム割り当てハードウェア優先度 (IRQL) が HBA 以下のデバイス割り込みは発生しません。

詳細については「ハードウェアの優先度の管理」を参照してください。