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. |