Condividi tramite


Routine miniport driver Storport

Un driver miniport che funziona con il driver Storport deve contenere implementazioni delle descrizioni di routine elencate in questa sezione e deve esporle tramite una struttura HW_INITIALIZATION_DATA durante la fase di inizializzazione del driver miniport.

Le routine del driver miniport Storport sono nella maggior parte dei casi equivalenti alle controparti della porta SCSI. Esistono tuttavia differenze importanti tra la progettazione del driver di porta SCSI e quella del driver Storport e le routine miniport devono contenere tali differenze.

Ad esempio:

  • Un driver miniport Storport deve essere sempre pronto a ricevere un'altra richiesta di I/O dopo il completamento della routine HwStorStartIo.
  • Un driver miniport SCSI non ha questo requisito. Non riceve una nuova richiesta di I/O finché non segnala in modo esplicito il driver di porta quando può gestire un'altra richiesta chiamando StorPortNotification.

Se il driver miniport Storport non è in grado di gestire immediatamente una richiesta inviata, dispone di un set di funzioni di gestione delle code che lo consentono di gestire l'overload. Queste funzioni di gestione delle code non sono disponibili per il driver miniport SCSI. Come il driver miniport SCSI, il driver miniport Storport completa la richiesta con SRB_STATUS_BUSY. Tuttavia, a differenza della versione della porta SCSI, può anche contrassegnare la coda del dispositivo come occupato usando la routine StorPortDeviceBusy. Funzioni simili consentono al driver miniport Storport di sospendere e riprendere l'elaborazione a livello di adattatore.

Per altre informazioni sulle routine di supporto fornite dal driver Storport, vedere Routine di supporto dei driver Storport.

Per altre informazioni sul driver Storport, vedere Driver delle porte di archiviazione.

Elenco delle routine del driver miniport Storport

Ciclo Descrizione
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE Gestisce un interrupt segnalato dal messaggio .MSI.
HW_ADAPTER_CONTROL Esegue operazioni sincrone per controllare lo stato o il comportamento di una scheda, ad esempio arrestare o riavviare l'HBA per il risparmio energia.
HW_BUILDIO Elabora SRB con accesso non sincronizzato alle strutture di dati di sistema condivise prima di passarlo a HwStorStartIo.
HW_DPC_ROUTINE Routine posticipata per l'esecuzione in DISPATCH IRQL con il meccanismo DPC (Deferred Procedure Call).
HW_FIND_ADAPTER Usa la configurazione fornita per determinare se un HBA specifico è supportato e, in caso affermativo, per restituire informazioni di configurazione su tale adattatore.
HW_INITIALIZE Inizializza il driver miniport dopo un riavvio del sistema o un guasto di alimentazione.
HW_INTERRUPT Il driver Storport chiama la routine HwStorInterrupt dopo che l'HBA genera una richiesta di interrupt.
HW_PASSIVE_INITIALIZE_ROUTINE Chiamato dopo la routine HwStorInitialize quando il runtime di integrazione corrente si trova in PASSIVE_LEVEL.
HW_RESET_BUS Chiamato dal driver della porta per cancellare le condizioni di errore.
HW_STARTIO Il driver Storport chiama la routine HwStorStartIo una volta per ogni richiesta di I/O in ingresso.
HW_TIMER Chiamato dopo l'intervallo specificato quando il driver miniport denominato StorPortNotification con il valore RequestTimerCall NotificationType .
HW_TRACING_ENABLED Consente a Storport di notificare a un miniport che la traccia eventi è abilitata.
HW_UNIT_CONTROL Chiamato per eseguire operazioni sincrone per controllare lo stato del dispositivo di unità di archiviazione. Il driver miniport riceve una notifica per avviare un'unità o gestire una transizione dello stato di alimentazione per un dispositivo unità.
HW_WORKITEM Funzione di callback fornita da miniport per l'elaborazione di una richiesta di un elemento di lavoro Storport.