编写设备驱动程序

SCSI 接口

SCSA 是 DDI/DKI 编程接口,用于将 SCSI 命令从目标驱动程序传送到主机适配器驱动程序。通过与 SCSA 保持兼容,目标驱动程序可以将 SCSI 命令和序列的任何组合轻松传递到目标设备。无需了解主机适配器的硬件实现。从概念上讲,SCSA 会将生成 SCSI 命令与将命令(和数据)传输到 SCSI 总线这两个过程分离开来。SCSA 通过 HBA 传输层管理目标驱动程序与 HBA 驱动程序之间的连接,如下图所示:

图 18–1 SCSA 接口

图中显示了目标驱动程序与 SCSI 设备之间的主机总线适配器传输层。

HBA 传输层是一个硬件和软件层,负责将 SCSI 命令传输到 SCSI 目标设备。HBA 驱动程序会响应 SCSI 目标驱动程序通过 SCSA 发出的请求,提供资源分配、DMA 管理和传输服务。另外,主机适配器驱动程序还会管理主机适配器硬件以及执行命令所需的 SCSI 协议。完成命令后,HBA 驱动程序将调用目标驱动程序的 SCSI pkt 命令完成例程。

以下示例说明了此流程,并重点介绍了如何将信息从目标驱动程序传送到 SCSA,然后再传送到 HBA 驱动程序。下图还说明了典型的传输入口点和函数调用。

图 18–2 传输层流程

图中显示了命令如何通过 HBA 传输层。