Funzione StorPortNotification (storport.h)
Il driver miniport usa la routine StorPortNotification per notificare al driver Storport determinati eventi e condizioni.
StorPortNotification accetta un numero variabile di parametri a seconda del tipo di notifica specificato.
Sintassi
STORPORT_API VOID StorPortNotification(
SCSI_NOTIFICATION_TYPE NotificationType,
PVOID HwDeviceExtension,
...
);
Parametri
NotificationType
Specifica il tipo di notifica, che può essere uno dei valori seguenti.
Tipo di notifica | Descrizione |
---|---|
BufferOverrunDetected | Questo tipo di notifica non ha argomenti e offre al driver miniport la possibilità di controllare il sistema se rileva un danneggiamento. |
BusChangeDetected |
Indica che un dispositivo di destinazione potrebbe essere stato aggiunto o rimosso da un bus dinamico. Per usare questo tipo di notifica, includere un parametro PathId facoltativo per indicare la porta SCSI o il bus in cui è stata rilevata la modifica.
|
IoTargetRequestServiceTime |
Indica a Storport la quantità di tempo necessaria per elaborare una richiesta specificata.
Durata [in] Durata del tempo di servizio necessario per Srb in unità da 100 nanosecondi. Srb [in] Blocco della richiesta per cui impostare l'ora del servizio. |
LinkDown | Indica che il collegamento è inattivo e probabilmente sarà inattivo per qualche tempo. StorPort sospende l'adapter in risposta a questa notifica. |
Collegamento | Indica che il collegamento è stato ripristinato. StorPort riavvia l'adapter in modo che possa riprendere l'operazione in risposta a questa notifica. I driver miniport non devono inviare questa notifica a meno che il collegamento non sia inattivo. |
QueryTickCount |
Questo tipo di notifica restituisce un LARGE_INTEGER che contiene il valore di KeQueryTickCount. Il valore restituito in TickCount è il conteggio degli interrupt timer intervallo che si sono verificati dopo l'avvio del sistema
|
RequestComplete |
Indica che il valore SRB specificato è terminato. Dopo l'invio di questa notifica, il driver della porta è proprietario della richiesta. Il parametro Srb rappresenta un puntatore al blocco di richiesta SCSI completato. Il driver miniport non deve tentare di accedere alla richiesta in Srb e non deve passare Srb a un'altra routine.
|
RequestTimerCall |
Indica che il driver miniport richiede al driver di porta di chiamare il driver miniport HwStorTimer routine nel numero di microsecondi richiesto.
HwStorTimer [in] Puntatore a una routine timer chiamata dopo l'intervallo di tempo specificato in MiniportTimerValue. MiniportTimerValue [in] Indica l'intervallo dopo il quale viene chiamata la routine timer a cui punta HwStorTimer. Si tratta di un valore positivo specificato in microsecondi. Il valore 0 annulla il timer. La risoluzione del timer di sistema è di circa 10 millisecondi. |
ResetDetected | Indica che l'HBA ha rilevato una reimpostazione del bus. Dopo l'invio di questa notifica, il driver miniport è comunque responsabile del completamento di eventuali richieste attive. Il driver della porta gestirà tutti i ritardi necessari per la reimpostazione del bus. |
WMIEvent |
Indica che il driver miniport ha rilevato un evento per il quale vengono registrati uno o più consumer di dati WMI. Si noti che il parametro WmiEvent è limitato a un massimo di 128 byte. Se WmiEvent è maggiore di 128 byte, verrà ignorato.
WMIEvent [in] Puntatore alle strutture di eventi con informazioni su un evento WMI rilevato dal driver miniport. PathId [in] Indica la porta o il bus SCSI per la richiesta. Impostare questo parametro su 0xff per un dispositivo adattatore. In caso contrario, impostare su un ID percorso valido. TargetId [in, facoltativo] Indica il controller o il dispositivo di destinazione nel bus. Questo parametro non viene utilizzato quando l'evento è per un adattatore. Lun [in, facoltativo] Indica il numero di unità logica del dispositivo. Questo parametro non viene utilizzato quando l'evento è per un adattatore. |
WMIReregister |
Indica che il driver miniport ha modificato gli elementi di dati o il numero di istanze di un determinato blocco di dati registrato in precedenza chiamando IoWMIRegistrationControl.
PathId [in] Indica la porta o il bus SCSI per la richiesta. Impostare questo parametro su 0xff per un dispositivo adattatore. In caso contrario, impostare su un ID percorso valido. TargetId [in, facoltativo] Indica il controller o il dispositivo di destinazione nel bus. Questo parametro non viene utilizzato quando la registrazione è per un adattatore. Lun [in, facoltativo] Indica il numero di unità logica del dispositivo. Questo parametro non viene utilizzato quando la registrazione è per un adattatore. |
HwDeviceExtension
Puntatore all'estensione del dispositivo hardware. Si tratta di un'area di archiviazione per hba che il driver di porta alloca e inizializza per conto del driver miniport. I driver Miniport archivia in genere informazioni specifiche di HBA in questa estensione, ad esempio lo stato dell'HBA e gli intervalli di accesso mappati per l'HBA. Questa area è disponibile per il driver miniport subito dopo che il driver miniport chiama StorPortInitialize. Il driver della porta libera questa memoria quando rimuove il dispositivo.
...
Parametri aggiuntivi.
Valore restituito
Nessuno.
Osservazioni
StorPortNotification è una funzione polimorfica che gestisce molti tipi diversi di richieste, rendendo difficile annotare in modo da coprire tutti gli usi possibili. Poiché StorPortNotification restituisce VOID, il motore di analisi deve presupporre che LockHandle sia stato acquisito come richiesto.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | storport.h (include Storport.h) |
libreria | Storport.lib |
regole di conformità DDI | StorPortNotification2(storport), StorPortStatusPending, StorPortTimer(storport) |