Storport 驱动程序微型端口例程
适用于 Storport 驱动程序的微型端口驱动程序必须包含本节中列出的例程说明的实现,并且必须在微型端口驱动程序初始化阶段通过 HW_INITIALIZATION_DATA 结构公开它们。
Storport 微型端口驱动程序例程在大多数情况下等效于其 SCSI 端口对应项。 但是,SCSI 端口驱动程序的设计与 Storport 驱动程序的设计之间存在重要差异,微型端口例程必须适应这些差异。
例如:
- Storport 微型端口驱动程序必须始终准备好在 HwStorStartIo 例程完成后接收另一个 I/O 请求。
- SCSI 微型端口驱动程序没有此要求。 它不会收到新的 I/O 请求,直到它明确地向端口驱动程序发出信号,表明它可以通过调用 StorPortNotification 来处理另一个请求。
如果 Storport 微型端口驱动程序无法立即处理提交的请求,则它具有一组队列管理功能,允许它处理重载。 SCSI 微型端口驱动程序无法使用这些队列管理功能。 与 SCSI 微型端口驱动程序一样,Storport 微型端口驱动程序使用 SRB_STATUS_BUSY 完成请求。 但与 SCSI 端口版本不同,它还可以使用 StorPortDeviceBusy 例程将设备队列标记为繁忙。 类似的功能允许 Storport 微型端口驱动程序在适配器范围内暂停和恢复处理。
有关 Storport 驱动程序提供的支持例程的详细信息,请参阅 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 | HBA 生成中断请求后,Storport 驱动程序调用 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 工作项请求。 |