SCSI 微型端口驱动程序的 HwScsiEnableInterruptsCallback 例程
HwScsiEnableInterruptsCallback 例程完成处理中断驱动的 I/O 操作,而不会禁止计算机中其他设备的 I/O 操作。
当 HwScsiEnableInterruptsCallback 例程获得控制权时,除了从 HBA 启用所有系统设备中断,因为 HwScsiInterrupt 例程在调用 ScsiPortNotification 之前禁用了 HBA 上的中断。 因此,当 HwScsiEnableInterruptsCallback 例程正在运行时,无法调用微型端口驱动程序的 HwScsiInterrupt 例程,并且无法干扰它设置的有关当前操作的上下文数据。
HwScsiEnableInterruptsCallback 例程应执行以下操作:
使用为输入设备扩展中的 操作设置的上下文,以完成对导致中断的请求的处理。
使用 NotificationTypeRequestComplete 和刚满足的 SRB 调用 ScsiPortNotification。
使用 NotificationTypeNextRequest 或 NextLuRequest 调用 ScsiPortNotification(如果 HBA 支持标记的队列或每个逻辑单元的多个请求)。
使用指向设备扩展、NotificationTypeCallDisableInterrupts 和微型端口驱动程序的 HwScsiDisableInterruptsCallback 例程(如 SCSI 微型端口驱动程序的 HwScsiDisableInterruptsCallback 例程中所述)的指针调用 ScsiPortNotification。
返回控件。
基于 NT 的操作系统 ScsiPortNotification 例程调用 HwScsiDisableInterruptsCallback 例程,其中一部分系统设备中断已禁用。 不会发生系统分配的硬件优先级 (IRQL) 小于或等于 HBA 的设备中断。
有关详细信息 ,请参阅管理硬件优先级 。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈