enumerazione SCSI_ADAPTER_CONTROL_TYPE (storport.h)

L'enumerazione SCSI_ADAPTER_CONTROL_TYPE contiene operazioni di controllo dell'adattatore, in cui ogni tipo di controllo avvia un'azione su un adattatore dal driver miniport. Storport specifica il tipo di controllo quando chiama la routine HwStorAdapterControl di un miniport.

Sintassi

typedef enum _SCSI_ADAPTER_CONTROL_TYPE {
  ScsiQuerySupportedControlTypes,
  ScsiStopAdapter,
  ScsiRestartAdapter,
  ScsiSetBootConfig,
  ScsiSetRunningConfig,
  ScsiPowerSettingNotification,
  ScsiAdapterPower,
  ScsiAdapterPoFxPowerRequired,
  ScsiAdapterPoFxPowerActive,
  ScsiAdapterPoFxPowerSetFState,
  ScsiAdapterPoFxPowerControl,
  ScsiAdapterPrepareForBusReScan,
  ScsiAdapterSystemPowerHints,
  ScsiAdapterFilterResourceRequirements,
  ScsiAdapterPoFxMaxOperationalPower,
  ScsiAdapterPoFxSetPerfState,
  ScsiAdapterSurpriseRemoval,
  ScsiAdapterSerialNumber,
  ScsiAdapterCryptoOperation,
  ScsiAdapterQueryFruId,
  ScsiAdapterSetEventLogging,
  ScsiAdapterReportInternalData,
  ScsiAdapterResetBusSynchronous,
  ScsiAdapterPostHwInitialize,
  ScsiAdapterPrepareEarlyDumpData,
  ScsiAdapterRestoreEarlyDumpData,
  ScsiAdapterControlMax,
  MakeAdapterControlTypeSizeOfUlong
} SCSI_ADAPTER_CONTROL_TYPE, *PSCSI_ADAPTER_CONTROL_TYPE;

Costanti

 
ScsiQuerySupportedControlTypes
Segnala le operazioni di controllo dell'adattatore implementate dal driver miniport. Un miniport deve supportare questo tipo di controllo.

Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura SCSI_SUPPORTED_CONTROL_TYPE_LIST dopo l'inizializzazione dell'HBA, ma prima del primo I/O.

Il driver miniport riempie la struttura SCSI_SUPPORTED_CONTROL_TYPE_LIST con le operazioni supportate. Dopo la restituzione di HwStorAdapterControl da questa chiamata, il driver Storport chiama il driver HwStorAdapterControl del driver miniport solo per le operazioni supportate dal miniport.
ScsiStopAdapter
Arresta l'HBA. Un miniport deve supportare questo tipo di controllo.

Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo (e Parametri impostati su NULL) quando l'HBA è stato rimosso dal sistema, arrestato per la riconfigurazione delle risorse, arrestato per il risparmio energia o altrimenti riconfigurato o disabilitato. Storport garantisce che non siano presenti richieste non completate ed esegherà una richiesta di SRB_FUNCTION_FLUSH al driver miniport prima di chiamare questa routine.

Il driver miniport disabilita le interruzioni nell'HBA, interrompe tutte le elaborazioni( inclusa l'elaborazione in background non soggetta a interruzioni o elaborazione di cui il driver Storport non è a conoscenza, ad esempio la ricostruzione dei volumi a tolleranza di errore), scarica tutti i dati memorizzati nella cache rimanenti nell'archiviazione permanente e inserisce l'HBA in uno stato da cui può essere reinizializzato o riavviato.

Il driver miniport non dovrebbe liberare le sue risorse quando si arresta la sua HBA. Se l'HBA è stata rimossa o arrestata per la riconfigurazione della risorsa PnP, il driver Storport rilascia le risorse per conto del driver miniport. Se l'HBA viene arrestata per il risparmio energia, le risorse del driver miniport vengono mantenute in modo che l'HBA possa essere riavviato.

Dopo la restituzione di HwStorAdapterControl dall'arresto dell'HBA, tutte le strutture di dati allocate per conto del driver miniport per l'HBA devono essere considerate non valide fino a quando non viene richiesto il riavvio del driver miniport.

Si noti che Storport potrebbe chiamare HwStorAdapterControl per arrestare l'adattatore dopo che l'HBA è già stato fisicamente rimosso dal sistema, quindi la routine HwStorAdapterControl del driver miniport non deve eseguire alcuna operazione che richieda la presenza fisica dell'HBA durante l'arresto dell'HBA.

Il driver miniport non viene chiamato di nuovo per l'HBA fino a quando il gestore PnP non richiede l'avvio dell'HBA, nel qual caso il driver Storport (di nuovo)inizializza chiamando le routine HwStorAdapterControl e HwStorInitialize o un HBA arrestato per il risparmio energia è alimentato, nel qual caso il driver Storport chiama la routine HwStorAdapterControl del driver miniport con ScsiRestartAdapter oppure, se il driver miniport non implementa tale tipo di controllo, ripete la sequenza di inizializzazione per l'HBA.
ScsiRestartAdapter
Reinizializza un HBA. Un miniport deve supportare questo tipo di controllo.

Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo (e Parametri impostati su NULL) per accendere un HBA che è stato arrestato per il risparmio energia. Tutte le risorse precedentemente assegnate al driver miniport sono ancora disponibili e l'estensione del dispositivo e le estensioni unità logiche, se presenti, sono intatte.

Il driver miniport esegue le stesse operazioni della routine HwStorInitialize , ad esempio la configurazione dei registri dell'HBA e il relativo stato iniziale, se presente.

Il driver miniport non deve chiamare routine che possono essere chiamate solo da HwStorFindAdapter o da HwStorAdapterControl quando il tipo di controllo è ScsiSetRunningConfig, ad esempio StorPortGetBusData e StorPortSetBusDataByOffset. Se il driver miniport deve chiamare tali routine per riavviare l'HBA, deve implementare anche ScsiSetRunningConfig.

Se il driver miniport non implementa ScsiRestartAdapter, il driver Storport chiama le routine HwStorFindAdapter e HwStorInitialize del driver miniport. Tuttavia, poiché tali routine potrebbero eseguire il rilevamento non necessario per riavviare l'HBA, tale driver miniport non accenderà l'HBA rapidamente come un driver miniport che implementa ScsiRestartAdapter.
ScsiSetBootConfig
Ripristina tutte le impostazioni in un HBA che potrebbe essere necessario riavviare il BIOS. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo (e Parametri impostati su NULL) dopo aver chiamato questa routine con ScsiStopAdapter.

Un driver miniport deve implementare ScsiSetBootConfig se deve chiamare StorPortGetBusData o StorPortSetBusDataByOffset prima che il sistema possa essere riavviato.
ScsiSetRunningConfig
Ripristina tutte le impostazioni in un HBA che il driver miniport potrebbe dover controllare l'HBA mentre il sistema è in esecuzione. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo (e Parametri impostati su NULL) prima di chiamare questa routine con ScsiRestartAdapter se il driver miniport implementa tale tipo di controllo.

L'interruzione dell'HBA non è ancora connessa quando il driver Storport effettua questa chiamata, quindi il driver miniport deve prestare attenzione a non generare un interrupt.

Un driver miniport deve implementare ScsiSetRunningConfig se deve chiamare StorPortGetBusData o StorPortSetBusDataByOffset per ripristinare la configurazione in esecuzione appropriata nell'HBA prima di poter essere riavviata.
ScsiPowerSettingNotification
Notifica per la modifica di un'impostazione di risparmio energia registrata. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_POWER_SETTING_INFO se si verifica una modifica delle impostazioni di alimentazione. I miniport si registrano per le notifiche di impostazione alimentazione chiamando StorPortSetPowerSettingNotificationGuids con un elenco di GUID che rappresentano gli eventi di modifica del potere di interesse. Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterPower
Segnala gli stati di accensione o spegnimento dell'adattatore. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_ADAPTER_CONTROL_POWER . Se il miniport supporta questo tipo di controllo, non riceverà un blocco di richiesta di archiviazione con SRB_FUNCTION_POWER e HwStorAdapterControl non viene chiamato con il tipo di controllo ScsiStopAdapter . Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterPoFxPowerRequired
Notifica al miniport se l'alimentazione è necessaria o meno per il componente adattatore. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a un valore BOOLEAN che è TRUE se il componente dell'adattatore richiede alimentazione; in caso contrario, FALSE. Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterPoFxPowerActive
Notifica al miniport se il componente dell'adattatore è attivo o inattiva. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_POFX_ACTIVE_CONTEXT . Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterPoFxPowerSetFState
Notifica al miniport di impostare il componente adattatore sullo stato F specificato. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una strutturaSTOR_POFX_FSTATE_CONTEXT . Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterPoFxPowerControl
Richiede che il miniport eseguo un'operazione di controllo alimentazione privata avviata per l'adattatore da un plug-in del motore di alimentazione (PEP). Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_POFX_POWER_CONTROL . Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterPrepareForBusReScan
Notifica al miniport di preparare l'adattatore per l'enumerazione del bus. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo (e Parametri impostati su NULL). Il miniport deve accendere l'adattatore e tutti i dispositivi connessi per consentire all'operazione di enumerazione del bus di trovare i dispositivi. Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterSystemPowerHints
Fornisce hint di alimentazione di sistema al miniport. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_SYSTEM_POWER_HINTS . Questo tipo di controllo è valido in Windows 8 e versioni successive.
ScsiAdapterFilterResourceRequirements
Filtra le risorse necessarie per l'adattatore. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo IRP_MN_FILTER_RESOURCE_REQUIREMENTS e Parametri che puntano a una struttura STOR_FILTER_RESOURCE_REQUIREMENTS quando Storport elabora la richiesta e il miniport ha il flag STOR_FEATURE_ADAPTER_CONTROL_PRE_FINDADAPTER impostato nel campo FeatureSupport di HW_INITIALIZATION_DATA. Si noti che l'oggetto DeviceExtension passato per questo tipo di controllo non verrà inizializzato.

Il driver miniport deve modificare o ridurre le risorse descritte nel buffer usando la struttura STOR_FILTER_RESOURCE_REQUIREMENTS . Questo tipo di controllo è valido in Windows 8.1 e versioni successive.
ScsiAdapterPoFxMaxOperationalPower
Comunica un valore massimo di potenza operativa al miniport. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_MAX_OPERATIONAL_POWER . Per ricevere questo controllo, il miniport deve avere precedentemente chiamato StorPortPoFxSetPerfState per registrare un set di prestazioni con PStateType = StorPoFxPerfStateTypeDiscrete e Count> 1.

Il campo Valore in ogni stato di alimentazione (P-State) deve rappresentare un livello di potenza massimo relativo in proporzione agli altri P-States e sarà compreso nell'intervallo di livelli di potenza massimi segnalati dai P-States del miniport, inclusi. Il miniport deve assicurarsi che scelga uno stato di alimentazione il cui consumo di energia massima è minore o uguale al valore specificato in questo parametro.
ScsiAdapterPoFxSetPerfState
Informa il miniport dello stato di una transizione P-State richiesta da una chiamata a StorPortPoFxSetPerfState. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_POFX_PERF_STATE_CONTEXT .

Se il miniport deve avviare una transizione fisica dello stato di alimentazione, deve attendere il callback HwStorAdapterControl prima di farlo. Ovvero, un miniport deve prima chiamare StorPortPoFxSetPerfState per segnalarne la finalità di eseguire una transizione P-State. Storport chiamerà quindi il callback HwStorAdapterControl del miniport, a quel punto il miniport può eseguire qualsiasi azione correlata alla transizione P-State (ad esempio la modifica dello stato di alimentazione fisica del dispositivo).
ScsiAdapterSurpriseRemoval
Notifica al miniport che l'unità è stata rimossa a sorpresa. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo (e Parametri impostati su NULL).
ScsiAdapterSerialNumber
Richiede che il miniport recuperi il numero di serie dell'adattatore. Il driver Storport chiama HwStorAdapterControl con questo tipo di controllo e Parametri che puntano a una struttura STOR_SERIAL_NUMBER .
ScsiAdapterCryptoOperation
Riservato per l'utilizzo nel sistema. Notifica al miniport di eseguire un'operazione di crittografia. Storport chiama HwStorAdapterControl con esso e Parametri che puntano a un STOR_CRYPTO_OPERATION.
ScsiAdapterQueryFruId
Disponibile a partire da Windows 10 versione 21H1. Esegue una query sull'ID di un'unità di sostituzione degli errori (FRU) dell'adattatore. Storport chiama HwStorAdapterControl con esso e Parameters che punta a una struttura di STOR_FRU_ID_DESCRIPTION durante la gestione di [IOCTL_STORAGE_QUERY_PROPERTY]ni-ntddstor-ioctl_storage_query_property.md) con un ID proprietà StorageFruIdProperty .

Storport invia questo controllo solo se in precedenza è stato chiamato anche StorPortSetFeatureList nella routine HwFindAdapter con StorportFeatureFruIdAdapterControl specificato.
ScsiAdapterSetEventLogging
Disponibile a partire da Windows 10 versione 21H1. Notifica al miniport se un canale eventi specifico è abilitato o disabilitato per un adattatore. Un miniport deve quindi chiamare un'API per registrare un evento per l'adattatore solo quando il canale corrispondente è abilitato. Se il miniport supporta questo tipo di controllo, Storport chiama HwStorAdapterControl con esso e Parametri che puntano a una struttura STOR_SET_EVENT_LOGGING .

Storport invia questo controllo solo se in precedenza è stato chiamato anche StorPortSetFeatureList nella routine HwFindAdapter con StorportFeatureFruIdAdapterControl specificato.
ScsiAdapterReportInternalData
Riservato per l'utilizzo nel sistema. Disponibile a partire da Windows 11 versione 22H2.

Storport invia questo controllo solo se un miniport ha anche chiamato StorPortSetFeatureList nella routine HwFindAdapter con SCSIAdapterReportInternalData specificato.
ScsiAdapterResetBusSynchronous
Disponibile a partire da Windows 11 versione 22H2. Storport invia questo controllo durante la gestione di un IOCTL_STORAGE_DEVICE_RESET. Il driver miniport deve gestire questo controllo simile a quello che fa nella routine di callback HwResetBus e deve restituire SCSI_ADAPTER_CONTROL_STATUS.

Storport invia questo controllo solo se un miniport ha anche chiamato StorPortSetFeatureList nella routine HwFindAdapter con StorportFeatureResetBusSynchronous specificato.
ScsiAdapterPostHwInitialize
Riservato per l'utilizzo nel sistema. Disponibile a partire da Windows 11 versione 22H2.

Storport invia questo controllo solo se un miniport ha anche chiamato StorPortSetFeatureList nella routine HwFindAdapter con StorportFeaturePostHwInitialize specificato.
ScsiAdapterPrepareEarlyDumpData
Riservato per l'utilizzo nel sistema. Disponibile a partire da Windows 11 versione 22H2.

Storport invia questo controllo solo se un miniport ha anche chiamato StorPortSetFeatureList nella routine HwFindAdapter con StorportFeaturePrepareEarlyDumpData specificato.
ScsiAdapterRestoreEarlyDumpData
Riservato per l'utilizzo nel sistema. Disponibile a partire da Windows 11 versione 22H2.

Storport invia questo controllo solo se un miniport ha anche chiamato StorPortSetFeatureList nella routine HwFindAdapter con StorportFeatureRestoreEarlyDumpData specificato.
ScsiAdapterControlMax
Valore massimo del tipo di controllo.
MakeAdapterControlTypeSizeOfUlong
Rende questa enumerazione le dimensioni di un ULONG.

Commenti

Un miniport segnala i tipi di controllo supportati quando Storport chiama la routine HwStorAdapterControl del miniport con un tipo di controllo SCSIQuerySupportedControlTypes. Per tali tipi di controllo supportati dal miniport, Storport chiama HwStorAdapterControl con un valore SCSI_ADAPTER_CONTROL_TYPE per indicare l'operazione di controllo che specifica l'operazione di controllo dell'adattatore da eseguire dal miniport.

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Intestazione Storport.h

Vedi anche

HwStorAdapterControl