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