SCSI 微型端口驱动程序的 HwScsiInterrupt 例程

输入时, HwScsiInterrupt 例程应确定其 HBA 是否实际生成了中断。 如果 HwScsiInterrupt 检测到虚假中断,则必须尽快返回 FALSE,以便可以快速调用实际生成中断的设备 ISR。

否则,微型端口驱动程序的 HwScsiInterrupt 例程通常负责完成导致中断的 I/O 操作。 根据 HBA 和微型端口驱动程序的设计, HwScsiInterrupt 例程执行以下部分或全部操作:

HwScsiInterrupt 例程 (或内部微型端口驱动程序例程) 完成 SRB 时,它会调用 ScsiPortNotification 两次:

  1. 首先,使用 NotificationTypeRequestComplete 和刚刚满足的 SRB。

  2. 接下来,使用 NotificationTypeNextRequest;如果 HBA 支持标记队列或每个逻辑单元多个请求,则使用 NextLuRequest

为了提高整体系统性能,微型端口驱动程序的 HwScsiInterrupt 例程应仅执行处理 I/O 请求所需的最低要求。 也就是说,微型端口驱动程序应设计为尽快从 HwScsiInterrupt 例程返回控制权。 HwScsiInterrupt 例程不得以较大的间隔调用 ScsiPortStallExecution,从而垄断处理器并阻止其他驱动程序为其设备中断提供服务。