必需的和可选的 SCSI 微型端口驱动程序例程

微型端口驱动程序的 HwScsiXxx 例程可以具有驱动程序编写器选择的任何名称。 DriverEntry 是必填名称。

每个 SCSI 微型端口驱动程序必须至少具有以下系统定义的例程:

必需的例程 说明
DriverEntry 初始化微型端口驱动程序
HwScsiFindAdapter 确定如何在计算机中配置 (或) 驱动程序支持的主机总线适配器 () (HBA)
HwScsiInitialize 初始化支持的 HBA ()
HwScsiStartIo 针对传入请求启动微型端口 HBA () 的操作
HwScsiResetBus 处理总线重置请求

根据每个 HBA 和驱动程序设计器,SCSI 微型端口驱动程序还具有以下系统定义的部分或全部例程:

例程所返回的值 说明
HwScsiInterrupt 处理 HBA 生成的中断,仅当 HBA 未生成中断时,该中断是可选的,因此微型端口驱动程序通过轮询管理其 HBA 上的所有 I/O 操作。 但是,仅使用轮询会对微型端口驱动程序的性能及其 HBA 的 I/O 吞吐量产生不利影响。 此类微型端口驱动程序还应具有 HwScsiTimer 例程。
HwScsiDisableInterruptsCallbackHwScsiEnableInterruptsCallback 如果中断驱动的 I/O 操作需要很长时间,则处理延迟 I/O 处理。
HwScsiTimer 在 HBA 上需要长时间延迟或出于驱动程序设计器确定的任何其他目的执行操作的时间。 如果微型端口驱动程序没有 HwScsiInterrupt 例程,则应具有 HwScsiTimer 例程,以便可以使用 HwScsiTimer 例程来高效轮询其 HBA。
HwScsiDmaStarted 如果 HBA 使用系统 DMA 控制器,则必须在端口驱动程序对系统 DMA 控制器进行编程后设置 HBA 传输。
HwScsiAdapterState 仅当 HBA 没有 BIOS 或 x86-real-mode 驱动程序和/或永远不会在仅限 x86 的 Microsoft Windows 系统中运行时才可选。
HwScsiAdapterControl 如果微型端口驱动程序支持即插即用,则为必需。
HwScsiWmiExecuteMethod 执行与数据块关联的方法。 此例程是可选的。
HwScsiWmiFunctionControl 启用或禁用事件通知,还启用或禁用微型端口驱动程序指定为成本高昂的数据块的数据收集。 可选。
HwScsiWmiQueryDataBlock 获取数据块的单个实例或所有实例。 必需。
HwScsiWmiQueryReginfo 获取有关 SCSI 端口驱动程序代表微型端口驱动程序注册的数据块和事件块的信息。 必需。
HwScsiWmiSetDataBlock 更改数据块的单个实例中的所有数据项。 可选。
HwScsiWmiSetDataItem 更改数据块实例中的单个数据项。 可选。

上述每个微型端口驱动程序例程( DriverEntry 除外)都有一个名称来描述其功能。 除了 DriverEntry(每个微型端口驱动程序的初始入口点的必需名称)之外,微型端口驱动程序例程的名称可以是驱动程序编写器选择的任何名称。

SCSI 微型端口驱动程序中的错误处理 描述了 SCSI 微型端口驱动程序的错误处理要求。