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 | 请参阅“备注”。 |