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.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_opt_ UCHAR                  PathId
);
IoTargetRequestServiceTime Indica a Storport la quantità di tempo necessaria per elaborare una richiesta specificata.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ ULONGLONG              Duration,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);

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
VOID StorPortNotification(
  _In_    SCSI_NOTIFICATION_TYPE NotificationType,
  _In_    PVOID                  HwDeviceExtension,
  _Inout_ PLARGE_INTEGER         TickCount
);
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.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);
RequestTimerCall Indica che il driver miniport richiede al driver della porta di chiamare la routine HwStorTimer del driver miniport nel numero di microsecondi richiesto.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PHW_TIMER              HwStorTimer,
  _In_ ULONG                  MiniportTimerValue
);

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.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     PWNODE_EVENT_ITEM      WMIEvent,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

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.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

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)

Vedi anche

StorPortInitialize