具有存储类驱动程序的 SCSI 端口的 SRB 接口

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

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

与其他端口驱动程序(例如 IDE/ATAPI 和 IEEE 1394 总线的系统提供的端口驱动程序)不同,SCSI 端口不必将它收到的命令描述符块(CDB)转换为不同的格式,然后再将其转发到基础适配器。 SCSI 端口仅将一些与目标相关的特定信息添加到 SRB,然后在保持 CDB 不变的情况下传递给微型端口驱动程序。 因此,SCSI 端口只是一个信使,传递包含 CDB 的 SRBs 下传至堆栈。

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