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

HwScsiEnableInterruptsCallback 例程完成处理中断驱动的 I/O 操作,而不会禁止计算机中其他设备的 I/O 操作。

HwScsiEnableInterruptsCallback 例程获得控制权时,除了从 HBA 启用所有系统设备中断,因为 HwScsiInterrupt 例程在调用 ScsiPortNotification 之前禁用了 HBA 上的中断。 因此,当 HwScsiEnableInterruptsCallback 例程正在运行时,无法调用微型端口驱动程序的 HwScsiInterrupt 例程,并且无法干扰它设置的有关当前操作的上下文数据。

HwScsiEnableInterruptsCallback 例程应执行以下操作:

  1. 使用为输入设备扩展中的 操作设置的上下文,以完成对导致中断的请求的处理。

  2. 使用 NotificationTypeRequestComplete 和刚满足的 SRB 调用 ScsiPortNotification

  3. 使用 NotificationTypeNextRequestNextLuRequest 调用 ScsiPortNotification(如果 HBA 支持标记的队列或每个逻辑单元的多个请求)。

  4. 使用指向设备扩展、NotificationTypeCallDisableInterrupts 和微型端口驱动程序的 HwScsiDisableInterruptsCallback 例程(如 SCSI 微型端口驱动程序的 HwScsiDisableInterruptsCallback 例程中所述)的指针调用 ScsiPortNotification

  5. 返回控件。

基于 NT 的操作系统 ScsiPortNotification 例程调用 HwScsiDisableInterruptsCallback 例程,其中一部分系统设备中断已禁用。 不会发生系统分配的硬件优先级 (IRQL) 小于或等于 HBA 的设备中断。

有关详细信息 ,请参阅管理硬件优先级