Storport 驱动程序微型端口例程

适用于 Storport 驱动程序的微型端口驱动程序必须包含本节中列出的例程说明的实现,并且必须在微型端口驱动程序初始化阶段通过 HW_INITIALIZATION_DATA 结构公开它们。

Storport 微型端口驱动程序例程在大多数情况下等效于其 SCSI 端口对应项(有关详细信息,请参阅 SCSI 微型端口驱动程序例程 )。 但是,SCSI 端口驱动程序的设计与 Storport 驱动程序的设计之间存在重要差异,这些例程必须适应这些差异。

例如,使用 Storport 驱动程序的微型端口驱动程序必须始终准备好在 HwStorStartIo 例程完成后接收另一个 I/O 请求。 使用 SCSI 端口的微型端口驱动程序不需要执行此操作。 在 SCSI 端口版本使用 StorPortNotification 函数显式向端口驱动程序发出信号之前,它不会收到新的 I/O 请求,它准备处理另一个请求。

如果微型端口驱动程序的 Storport 版本在提交时无法处理请求,则它具有一组队列管理功能(不适用于 SCSI 端口版本),允许它处理重载。 与 SCSI 端口版本一样,微型端口驱动程序的 Storport 版本使用 SRB_STATUS_BUSY 完成请求,但与 SCSI 端口版本不同,它还可以使用 StorPortDeviceBusy 例程将设备队列标记为忙碌。 类似的功能允许微型端口驱动程序在适配器范围内暂停和恢复处理。

有关 Storport 驱动程序提供的支持例程的详细信息,请参阅 Storport 驱动程序支持例程

有关 Storport 驱动程序的详细信息,请参阅 存储端口驱动程序

以下是微型端口驱动程序例程:

例程 说明
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE 处理消息信号中断(MSI)。
HW_ADAPTER_CONTROL 执行同步操作来控制适配器的状态或行为,例如停止或重启 HBA 进行电源管理。
HW_BUILDIO 在将共享系统数据结构传递给 HwStorStartIo 之前,先处理 SRB,对共享系统数据结构进行非同步访问。
HW_DPC_ROUTINE 通过延迟的过程调用 (DPC) 机制在 DISPATCH IRQL 中延迟执行的例程。
HW_FIND_ADAPTER 使用提供的配置来确定是否支持特定的 HBA,如果是,则返回有关该适配器的配置信息。
HW_INITIALIZE 在系统重新启动或电源故障后初始化微型端口驱动程序。
HW_INTERRUPT Storport 驱动程序在 HBA 生成中断请求后调用 HwStorInterrupt 例程。
HW_PASSIVE_INITIALIZE_ROUTINE 当当前 IRQL 处于PASSIVE_LEVEL时, 在 HwStorInitialize 例程后调用。
HW_RESET_BUS 端口驱动程序调用以清除错误条件。
HW_STARTIO Storport 驱动程序为每个传入的 I/O 请求调用 HwStorStartIo 例程一次。
HW_TIMER 在微型端口驱动程序使用 RequestTimerCall NotificationType 值调用 StorPortNotification 时指定的时间间隔后调用。
HW_TRACING_ENABLED 启用 Storport 以通知已启用事件跟踪的微型端口。
HW_UNIT_CONTROL 调用以执行同步操作来控制存储设备的状态。 微型端口驱动程序将收到启动单元或处理单元设备电源状态转换的通知。
HW_WORKITEM 用于处理 Storport 工作项请求的微型端口提供的回调函数。
STORPORT_TELEMETRY_EVENT 介绍微型端口遥测数据有效负载。
StorPortLogTelemetry 记录微型端口遥测事件,以帮助诊断或收集任何有用的信息。 微型端口可以记录 8 个常规用途名称值对和最大长度为 4KB 的缓冲区,以及结构STORPORT_TELEMETRY_EVENT中定义的多个事件相关字段。