Funzione StorPortNotification (storport.h)
Il driver miniport usa la routine StorPortNotification per notificare al driver Storport alcuni 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 l'opportunità 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à di 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 un certo periodo di tempo. StorPort sospende l'adattatore in risposta a questa notifica. |
Collegamento | Indica che il collegamento è stato ripristinato. StorPort riavvia l'adattatore 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 del timer di 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 richieste 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 della porta di chiamare la routine HwStorTimer del driver miniport 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 sul 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 che contengono 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 di destinazione o il dispositivo 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. |
WMIRegister |
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 di destinazione o il dispositivo nel bus. Questo parametro non viene usato quando la registrazione è per un adattatore. Lun [in, facoltativo] Indica il numero di unità logica del dispositivo. Questo parametro non viene usato quando la registrazione è per un adattatore. |
HwDeviceExtension
Puntatore all'estensione del dispositivo hardware. Si tratta di un'area di archiviazione hbA per ogni area di archiviazione che il driver di porta alloca e inizializza per conto del driver miniport. I driver Miniport archivia in genere informazioni specifiche dell'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
No.
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.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | storport.h (include Storport.h) |
Libreria | Storport.lib |
Regole di conformità DDI | StorPortNotification2(storport), StorPortStatusPending, StorPortTimer(storport) |