SCSI_UNIT_CONTROL_TYPE enumeration (storport.h)
The SCSI_UNIT_CONTROL_TYPE enumeration contains unit control operations, where each control type initiates an action on a unit by the miniport driver. Storport specifies the control type when it calls a miniport's HwStorUnitControl routine.
Syntax
typedef enum _SCSI_UNIT_CONTROL_TYPE {
ScsiQuerySupportedUnitControlTypes,
ScsiUnitUsage,
ScsiUnitStart,
ScsiUnitPower,
ScsiUnitPoFxPowerInfo,
ScsiUnitPoFxPowerRequired,
ScsiUnitPoFxPowerActive,
ScsiUnitPoFxPowerSetFState,
ScsiUnitPoFxPowerControl,
ScsiUnitRemove,
ScsiUnitSurpriseRemoval,
ScsiUnitRichDescription,
ScsiUnitQueryBusType,
ScsiUnitQueryFruId,
ScsiUnitReportInternalData,
ScsiUnitControlMax,
MakeUnitControlTypeSizeOfUlong
} SCSI_UNIT_CONTROL_TYPE, *PSCSI_UNIT_CONTROL_TYPE;
Constants
ScsiQuerySupportedUnitControlTypes Reports the unit-control operations implemented by the miniport driver. A miniport must support this control type. The Storport driver calls HwStorUnitControl with this control type and Parameters pointing to a SCSI_SUPPORTED_CONTROL_TYPE_LIST structure after the HBA has been initialized but before the first I/O. The miniport driver fills in the SCSI_SUPPORTED_CONTROL_TYPE_LIST structure with the operations that it supports. After HwStorUnitControl returns from this call, the Storport driver calls the miniport driver's HwStorUnitControl only for operations supported by the miniport. |
ScsiUnitUsage Notifies the miniport whether the logical unit is used for any supported usage types. Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_UC_DEVICE_USAGE structure. Storport will call HwStorUnitControl separately for each usage type supported. |
ScsiUnitStart Notifies the miniport to start a unit device. Storport calls HwStorUnitControl with this control type and Parameters pointing to the STOR_ADDR_BTL8 address of the unit to start. |
ScsiUnitPower Reports the unit power on or power off states. Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_UNIT_CONTROL_POWER structure. If the miniport supports this control type, it will not receive a storage request block with SRB_FUNCTION_POWER. |
ScsiUnitPoFxPowerInfo Notifies the miniport if idle power management is enabled or disabled on the unit component. Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_POFX_UNIT_POWER_INFO structure. The miniport should call StorPortInitializePoFxPower within this unit control if idle power management was enabled and if it supports runtime power management for the unit device. |
ScsiUnitPoFxPowerRequired Notifies the miniport whether power is required for the unit component. Storport calls HwStorUnitControl with this control type and Parameters pointing to aSTOR_POFX_POWER_REQUIRED_CONTEXT structure. |
ScsiUnitPoFxPowerActive Notifies the miniport that the unit component is either active or idle. Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_POFX_ACTIVE_CONTEXT structure. |
ScsiUnitPoFxPowerSetFState Notifies the miniport to set the unit component to the given functional power state (F-state). Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_POFX_FSTATE_CONTEXT structure. The miniport must support this control type if is specifies more than one F-state in the call to StorPortInitializePoFxPower. |
ScsiUnitPoFxPowerControl Requests that the miniport execute a private power control operation that was initiated for the unit by a power engine plug-in (PEP). Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_POFX_POWER_CONTROL structure. |
ScsiUnitRemove Notifies the miniport that the unit has been removed. Storport calls HwStorUnitControl with this control type and Parameters pointing to the STOR_ADDR_BTL8 address of the unit that was removed. |
ScsiUnitSurpriseRemoval Notifies the miniport that the unit has been surprise-removed. Storport calls HwStorUnitControl with this control type and Parameters pointing to the STOR_ADDR_BTL8 address of the unit that was surprise-removed. |
ScsiUnitRichDescription The miniport can choose to support this if the device reports a longer vendor ID, model number, or firmware revision than is defined in the SCSI spec. Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_RICH_DEVICE_DESCRIPTION structure. |
ScsiUnitQueryBusType Queries whether the miniport wants to specify a bus type for a given logical unit (LUN). Typically the bus type of a LUN and controller have the same bus type, but not always. Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_UNIT_CONTROL_QUERY_BUS_TYPE structure. Available in Windows 10 version 2004 and later. NOTE In Windows 10 version 21H1 and later, Storport sends this control only if a miniport has also previously called StorPortSetFeatureList in its HwFindAdapter routine with StorportFeatureBusTypeUnitControl specified. |
ScsiUnitQueryFruId Queries the ID of a fault replacement unit (FRU). If the miniport supports this control type, Storport calls HwStorUnitControl with this control type and Parameters pointing to a STOR_FRU_ID_DESCRIPTION structure. Available in Windows 10 version 21H1 and later. NOTE Storport sends this control only if a miniport has also previously called StorPortSetFeatureList in its HwFindAdapter routine with StorportFeatureFruIdUnitControl specified. |
ScsiUnitReportInternalData Reserved for system use. Available starting in Windows 11, version 22H2. |
ScsiUnitControlMax Maximum control type value. |
MakeUnitControlTypeSizeOfUlong Makes this enumeration the size of a ULONG. |
Remarks
A miniport reports which control types it supports when Storport calls the miniport's HwStorUnitControl routine with a control type of ScsiQuerySupportedControlTypes. For those control types that the miniport supports, Storport calls HwStorUnitControl with a SCSI_UNIT_CONTROL_TYPE value that specifies the unit control operation to be performed by the miniport.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 8 |
Header | storport.h |
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for