Condividi tramite


HW_UNIT_CONTROL funzione di callback (storport.h)

Una routine HwStorUnitControl del driver miniport viene chiamata per eseguire operazioni sincrone per controllare lo stato del dispositivo unità di archiviazione.

Sintassi

HW_UNIT_CONTROL HwUnitControl;

SCSI_UNIT_CONTROL_STATUS HwUnitControl(
  [in] PVOID DeviceExtension,
  [in] SCSI_UNIT_CONTROL_TYPE ControlType,
  [in] PVOID Parameters
)
{...}

Parametri

[in] DeviceExtension

Puntatore all'area di archiviazione per unità del driver miniport.

[in] ControlType

Valore SCSI_UNIT_CONTROL_TYPE che specifica un'operazione di controllo unità, in cui ogni tipo di controllo avvia un'azione dal driver miniport. Per informazioni dettagliate, vedere SCSI_UNIT_CONTROL_TYPE .

[in] Parameters

Puntatore a una struttura o a un valore che contiene informazioni correlate al ControlType. Tutte le strutture sono allocate dal chiamante. Per informazioni dettagliate, vedere SCSI_UNIT_CONTROL_TYPE .

Indirizzo

L'indirizzo dell'unità per cui viene specificata l'operazione di controllo.

Valore restituito

A seconda del tipo di controllo, HwStorUnitControl restituisce uno dei valori di SCSI_UNIT_CONTROL_STATUS seguenti:

Codice restituito Descrizione
SCSIUnitControlSuccesss Il driver miniport ha completato correttamente l'operazione richiesta.
SCSIUnitControlUnsuccessful L'operazione di controllo unità non ha avuto esito positivo.

Commenti

Storport chiama HwStorUnitControl di un miniport con un tipo di controllo SCSIQuerySupportedControlTypes dopo l'inizializzazione dell'HBA, ma prima del primo I/O. Il driver miniport riempie la struttura SCSI_SUPPORTED_CONTROL_TYPE_LIST in Parametri con le operazioni supportate. Dopo aver restituito HwStorUnitControl da questa chiamata, il driver Storport chiama il callback HwStorAdapterControl del driver miniport solo per le operazioni supportate dal miniport.

Storport chiama HwStorUnitControl per inviare una notifica al driver miniport di una modifica al dispositivo di unità identificato da Address oppure che il miniport deve eseguire una query o impostare un'operazione su tale unità, ad esempio l'avvio di un'unità o la gestione di un'operazione di controllo della potenza per un'unità.

La tabella seguente elenca l'oggetto IRQL corrente e lo spinlock acquisito al momento dell'emissione del tipo di controllo.

Tipo di controllo IRQL Blocco di rotazione
SCSIQuerySupportedControlTypes PASSIVE_LEVEL Nessuno
SCSIUnitUsage PASSIVE_LEVEL Nessuno
SCSIUnitStart PASSIVE_LEVEL Nessuno
SCSIUnitPower DISPATCH_LEVEL Nessuno
SCSIUnitPoFxPowerInfo PASSIVE_LEVEL Nessuno
ScsiUnitPoFxPowerRequired DISPATCH_LEVEL Nessuno
SCSIUnitPoFxPowerActive DISPATCH_LEVEL Nessuno
SCSIUnitPoFxPowerSetFState DISPATCH_LEVEL Nessuno
SCSIUnitPoFxPowerControl DISPATCH_LEVEL Nessuno
SCSIUnitRemove PASSIVE_LEVEL Nessuno
SCSIUnitSurpriseRemoval PASSIVE_LEVEL Nessuno
SCSIUnitRichDescription PASSIVE_LEVEL Nessuno
SCSIUnitQueryBusType PASSIVE_LEVEL Nessuno
SCSIUnitQueryFruId PASSIVE_LEVEL Nessuno

Il nome HwStorUnitControl è solo un segnaposto. Il prototipo effettivo di questa routine è definito in storport.h come segue:

typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
  _In_ PVOID  DeviceExtension,
  _In_ SCSI_UNIT_CONTROL_TYPE  ControlType,
  _In_ PVOID  Parameters
  );

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Piattaforma di destinazione Universale
Intestazione Storport.h (include Storport.h)
IRQL Vedere la sezione Osservazioni.

Vedi anche

HwStorAdapterControl

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE