SCSI 端口的可以与存储类驱动程序交互的 SRB 接口

存储类驱动程序和其他更高级别的组件通过构建 SCSI 请求块 (SRB) 与 SCSI 端口驱动程序通信。 有关 SRB 的详细信息,请参阅 SCSI_REQUEST_BLOCK。 存储类驱动程序将创建的 SRB 传递到 IRP 中的 SCSI 端口,其中 MajorFunction 成员设置为 IRP_MJ_SCSI。 有关存储类驱动程序在将 SRB 传递给端口驱动程序之前生成 SRB 必须执行的步骤的说明,请参阅 存储类驱动程序的 BuildRequest 例程

在将 SRB 向下转发堆栈之前,SCSI 端口在 SRB 中设置某些值,例如端口号、路径、目标编号和目标设备的逻辑单元号。

与其他端口驱动程序(例如 IDE/ATAPI 和 IEEE 1394 总线的系统提供的端口驱动程序)不同,在将命令描述符块转发到基础适配器之前,SCSI 端口不必将命令描述符块 (CDB) 转换为不同的格式。 SCSI 端口只是将一些特定于目标的信息添加到 SRB,并将其传递给 CDB 不变的微型端口驱动程序。 因此,SCSI 端口只是将包含 CDB 的 SRB 向下传递的信使。

因此,存储类和存储微型端口驱动程序及其随附参考资料的一般文档中介绍了存储类驱动程序和 SCSI 端口之间的 SRB 接口的大多数方面。 有关与存储类驱动程序和 SCSI 端口微型端口驱动程序对之间的 SRB 接口相关的部分列表,请参阅 SCSI 端口的接口与 SCSI 端口微型端口驱动程序