HW_UNIT_CONTROL回调函数 (storport.h)

调用微型端口驱动程序的 HwStorUnitControl 例程以执行同步操作来控制存储设备设备的状态。

语法

HW_UNIT_CONTROL HwUnitControl;

SCSI_UNIT_CONTROL_STATUS HwUnitControl(
  [in] PVOID DeviceExtension,
  [in] SCSI_UNIT_CONTROL_TYPE ControlType,
  [in] PVOID Parameters
)
{...}

参数

[in] DeviceExtension

指向微型端口驱动程序的每单位存储区域的指针。

[in] ControlType

一个 SCSI_UNIT_CONTROL_TYPE值,该值指定单元控件操作,其中每个控件类型都由微型端口驱动程序启动一个操作。 有关详细信息 ,请参阅SCSI_UNIT_CONTROL_TYPE

[in] Parameters

指向包含与 ControlType 相关的信息的 结构或值的指针。 所有结构都是调用方分配的。 有关详细信息 ,请参阅SCSI_UNIT_CONTROL_TYPE

地址

为其指定控制操作的单元的地址。

返回值

根据控件类型, HwStorUnitControl 返回以下 SCSI_UNIT_CONTROL_STATUS 值之一:

返回代码 说明
ScsiUnitControlSuccess 微型端口驱动程序成功完成了请求的操作。
ScsiUnitControlUnsuccessful 单元控制操作未成功。

注解

在初始化 HBA 之后,但在第一个 I/O 之前,Storport 使用 ScsiQuerySupportedControlTypes 控件类型调用微型端口的 HwStorUnitControl。 微型端口驱动程序使用它支持的操作填充参数中的SCSI_SUPPORTED_CONTROL_TYPE_LIST结构。 HwStorUnitControl 从此调用返回后,Storport 驱动程序仅为微型端口支持的操作调用微型端口驱动程序的 HwStorAdapterControl 回调。

Storport 调用 HwStorUnitControl 以通知微型端口驱动程序对 由 Address 标识的单元设备所做的更改,或者微型端口应对该单元执行查询或设置操作,例如启动单元或处理单元的电源控制操作。

下表列出了发出控件类型时获取的当前 IRQL 和旋转锁。

控件类型 IRQL 旋转锁
ScsiQuerySupportedControlTypes PASSIVE_LEVEL
ScsiUnitUsage PASSIVE_LEVEL
ScsiUnitStart PASSIVE_LEVEL
ScsiUnitPower DISPATCH_LEVEL
ScsiUnitPoFxPowerInfo PASSIVE_LEVEL
ScsiUnitPoFxPowerRequired DISPATCH_LEVEL
ScsiUnitPoFxPowerActive DISPATCH_LEVEL
ScsiUnitPoFxPowerSetFState DISPATCH_LEVEL
ScsiUnitPoFxPowerControl DISPATCH_LEVEL
ScsiUnitRemove PASSIVE_LEVEL
ScsiUnitSurpriseRemoval PASSIVE_LEVEL
ScsiUnitRichDescription PASSIVE_LEVEL
ScsiUnitQueryBusType PASSIVE_LEVEL
ScsiUnitQueryFruId PASSIVE_LEVEL

名称 HwStorUnitControl 只是占位符。 此例程的实际原型在 storport.h 中定义,如下所示:

typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
  _In_ PVOID  DeviceExtension,
  _In_ SCSI_UNIT_CONTROL_TYPE  ControlType,
  _In_ PVOID  Parameters
  );

要求

要求
最低受支持的客户端 Windows 8
目标平台 通用
标头 storport.h (包括 Storport.h)
IRQL 请参阅“备注”。

另请参阅

HwStorAdapterControl

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE