HW_UNIT_CONTROL función de devolución de llamada (storport.h)
Se llama a la rutina HwStorUnitControl de un controlador de miniporte para realizar operaciones sincrónicas para controlar el estado del dispositivo de unidad de almacenamiento.
Sintaxis
HW_UNIT_CONTROL HwUnitControl;
SCSI_UNIT_CONTROL_STATUS HwUnitControl(
[in] PVOID DeviceExtension,
[in] SCSI_UNIT_CONTROL_TYPE ControlType,
[in] PVOID Parameters
)
{...}
Parámetros
[in] DeviceExtension
Puntero al área de almacenamiento por unidad del controlador de minipuerto.
[in] ControlType
Valor de SCSI_UNIT_CONTROL_TYPE que especifica una operación de control de unidad, donde cada tipo de control inicia una acción mediante el controlador de minipuerto. Consulte SCSI_UNIT_CONTROL_TYPE para obtener más información.
[in] Parameters
Puntero a una estructura o valor que contiene información relacionada con controlType. Todas las estructuras están asignadas por el autor de la llamada. Consulte SCSI_UNIT_CONTROL_TYPE para obtener más información.
Dirección
Dirección de la unidad para la que se especifica la operación de control.
Valor devuelto
Según el tipo de control, HwStorUnitControl devuelve uno de los siguientes valores de SCSI_UNIT_CONTROL_STATUS :
Código devuelto | Descripción |
---|---|
ScsiUnitControlSuccess | El controlador de minipuerto completó correctamente la operación solicitada. |
ScsiUnitControlUnsuccessful | La operación de control de unidad no se realizó correctamente. |
Comentarios
Storport llama al HwStorUnitControl de un miniporte con un tipo de control ScsiQuerySupportedControlTypes después de inicializar el HBA, pero antes de la primera E/S. El controlador de minipuerto rellena la estructura SCSI_SUPPORTED_CONTROL_TYPE_LIST en Parámetros con las operaciones que admite. Después de que HwStorUnitControl vuelva de esta llamada, el controlador storport llama a la devolución de llamada HwStorAdapterControl del controlador de miniport solo para las operaciones compatibles con la minipuerta.
Storport llama a HwStorUnitControl para notificar al controlador de minipuerto un cambio en el dispositivo de unidad identificado por Address, o que el miniporte debe realizar una consulta o establecer una operación en esa unidad, como iniciar una unidad o controlar una operación de control de energía para una unidad.
En la tabla siguiente se enumeran los IRQL actuales y el bloqueo por subproceso adquirido cuando se emite el tipo de control.
Tipo de control | IRQL | Bloqueo de número |
---|---|---|
ScsiQuerySupportedControlTypes | PASSIVE_LEVEL | None |
ScsiUnitUsage | PASSIVE_LEVEL | None |
ScsiUnitStart | PASSIVE_LEVEL | None |
ScsiUnitPower | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerInfo | PASSIVE_LEVEL | None |
ScsiUnitPoFxPowerRequired | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerActive | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerSetFState | DISPATCH_LEVEL | None |
ScsiUnitPoFxPowerControl | DISPATCH_LEVEL | None |
ScsiUnitRemove | PASSIVE_LEVEL | None |
ScsiUnitSurpriseRemoval | PASSIVE_LEVEL | None |
ScsiUnitRichDescription | PASSIVE_LEVEL | None |
ScsiUnitQueryBusType | PASSIVE_LEVEL | None |
ScsiUnitQueryFruId | PASSIVE_LEVEL | None |
El nombre HwStorUnitControl es simplemente un marcador de posición. El prototipo real de esta rutina se define en storport.h de la siguiente manera:
typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
_In_ PVOID DeviceExtension,
_In_ SCSI_UNIT_CONTROL_TYPE ControlType,
_In_ PVOID Parameters
);
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 |
Plataforma de destino | Universal |
Encabezado | storport.h (incluya Storport.h) |
IRQL | Vea la sección Comentarios. |