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 | 单元控制作未成功。 |
言论
Storport 调用微型端口的 HwStorUnitControl,该 ScsiQuerySupportedControlTypes HBA 初始化后,但在第一个 I/O 之前。 微型端口驱动程序在 参数 填充 SCSI_SUPPORTED_CONTROL_TYPE_LIST 结构,其中包含它支持的作。 HwStorUnitControl 从此调用返回后,Storport 驱动程序将调用微型端口驱动程序的 HwStorAdapterControl 回调,仅针对微型端口支持的作。
Storport 调用 HwStorUnitControl,以通知微型端口驱动程序对 地址标识的单元设备的更改,或者微型端口应在该单元上执行查询或设置作,例如启动单元或处理单元的电源控制作。
下表列出了发出控件类型时获取的当前 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 | 请参阅“备注”。 |