HW_UNIT_CONTROL função de retorno de chamada (storport.h)
A rotina de HwStorUnitControl de um driver de miniporto é chamada para executar operações síncronas para controlar o estado do dispositivo de unidade de armazenamento.
Sintaxe
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
Um ponteiro para a área de armazenamento por unidade do driver de miniport.
[in] ControlType
Um valor SCSI_UNIT_CONTROL_TYPE que especifica uma operação de controle de unidade, em que cada tipo de controle inicia uma ação pelo driver de miniporto. Consulte SCSI_UNIT_CONTROL_TYPE para obter detalhes.
[in] Parameters
Ponteiro para uma estrutura ou valor que contém informações relacionadas ao ControlType. Todas as estruturas são alocadas por chamador. Consulte SCSI_UNIT_CONTROL_TYPE para obter detalhes.
Endereço
O endereço da unidade para a qual a operação de controle é especificada.
Valor de retorno
Dependendo do tipo de controle, HwStorUnitControl retorna um dos seguintes valores de SCSI_UNIT_CONTROL_STATUS:
Código de retorno | Descrição |
---|---|
ScsiUnitControlSuccess | O driver de miniporto concluiu a operação solicitada com êxito. |
ScsiUnitControlUnsuccessful | A operação de controle de unidade não foi bem-sucedida. |
Observações
O Storport chama o HwStorUnitControl de um miniporto com um scsiQuerySupportedControlTypes tipo de controle após o HBA ter sido inicializado, mas antes da primeira E/S. O driver de miniporto preenche a estrutura de SCSI_SUPPORTED_CONTROL_TYPE_LIST em Parameters com as operações compatíveis. Depois que HwStorUnitControl retorna dessa chamada, o driver Storport chama o do driver de miniporto HwStorAdapterControl retorno de chamada somente para operações compatíveis com o miniporto.
O Storport chama HwStorUnitControl para notificar o driver de miniporto de uma alteração no dispositivo de unidade identificado pelo Addressou que o miniporto deve executar uma consulta ou definir uma operação nessa unidade, como iniciar uma unidade ou manipular uma operação de controle de energia para uma unidade.
A tabela a seguir lista o IRQL atual e o spinlock adquiridos quando o tipo de controle é emitido.
Tipo de controle | IRQL | Bloqueio de rotação |
---|---|---|
ScsiQuerySupportedControlTypes | PASSIVE_LEVEL | Nenhum |
ScsiUnitUsage | PASSIVE_LEVEL | Nenhum |
ScsiUnitStart | PASSIVE_LEVEL | Nenhum |
ScsiUnitPower | DISPATCH_LEVEL | Nenhum |
ScsiUnitPoFxPowerInfo | PASSIVE_LEVEL | Nenhum |
ScsiUnitPoFxPowerRequired | DISPATCH_LEVEL | Nenhum |
ScsiUnitPoFxPowerActive | DISPATCH_LEVEL | Nenhum |
scsiUnitPoFxPowerSetFState | DISPATCH_LEVEL | Nenhum |
ScsiUnitPoFxPowerControl | DISPATCH_LEVEL | Nenhum |
ScsiUnitRemove | PASSIVE_LEVEL | Nenhum |
ScsiUnitSurpriseRemoval | PASSIVE_LEVEL | Nenhum |
ScsiUnitRichDescription | PASSIVE_LEVEL | Nenhum |
ScsiUnitQueryBusType | PASSIVE_LEVEL | Nenhum |
scsiUnitQueryFruId | PASSIVE_LEVEL | Nenhum |
O nome HwStorUnitControl é apenas um espaço reservado. O protótipo real dessa rotina é definido em storport.h da seguinte maneira:
typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
_In_ PVOID DeviceExtension,
_In_ SCSI_UNIT_CONTROL_TYPE ControlType,
_In_ PVOID Parameters
);
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 8 |
da Plataforma de Destino | Universal |
cabeçalho | storport.h (inclua Storport.h) |
IRQL | Consulte Comentários. |