将 Storport 与适配器配合使用的要求
为了提高性能和增强稳定性,Storport 不为某些类型的设备提供支持, (大多数是功能集有限的旧设备) 。 除了降低性能外,对这些设备的支持还会使端口驱动程序复杂化,从而降低微型端口驱动程序的开发和测试速度。
以下列表详细介绍了设备、适配器和微型端口驱动程序必须全部支持才能在 Storport 中运行的功能:
总线主控 DMA。 Storport 不支持编程的 I/O 或从属模式 DMA。
散点/收集 I/O。 微型端口驱动程序在其散点/收集列表实现中必须至少支持 16 个物理中断。 使用 Storport 的微型端口驱动程序应能够以与 SCSI 端口微型端口驱动程序相同的方式支持最多 255 次物理中断。
SCSI 标记的队列。 Storport 驱动程序将发出每个逻辑单元最多 254 个请求。 SCSI 端口微型端口驱动程序利用 SCSI 端口从未为每个适配器发出的超过 254 个请求这一事实,必须修改以接受大量请求。
SCSI 自动请求感知。 不支持禁用。
支持更大的感知缓冲区。 使用 Storport 的微型端口驱动程序不得在视图中使用固定大小的感知缓冲区进行设计。 微型端口驱动程序必须使用 SRB 中传递的大小。
即插即用。 由于必须使用 Storport 的微型端口驱动程序启用即插即用,因此端口驱动程序负责所有共享资源获取和管理。
多层重置。 适配器必须支持分层重置。 有关详细信息,请参阅 Storport 中的多层重置。
需要公开虚拟逻辑单元的 RAID 适配器来支持 SCSI 查询重要产品数据页面 00h、80h 和 83h。 例如,基于主机的 RAID 适配器必须响应 SCSI 查询命令,并且以下页面的重要产品数据页设置为 0 小时:0 (支持的重要产品数据页) ,80h (单位序列号页) ,83 小时 (设备标识页) 。 这些命令可以通过适配器的固件处理,也可以在微型端口驱动程序中合成。