Condividi tramite


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.
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à 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
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 richiesta 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 di porta di chiamare il driver miniport HwStorTimer routine 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 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.
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 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.
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 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)

Vedere anche

StorPortInitialize