StorPortNotification-Funktion (storport.h)
Der Miniporttreiber verwendet die StorPortNotification-Routine , um den Storport-Treiber über bestimmte Ereignisse und Bedingungen zu benachrichtigen.
StorPortNotification akzeptiert abhängig vom angegebenen Benachrichtigungstyp eine variable Anzahl von Parametern.
Syntax
STORPORT_API VOID StorPortNotification(
SCSI_NOTIFICATION_TYPE NotificationType,
PVOID HwDeviceExtension,
...
);
Parameter
NotificationType
Gibt den Benachrichtigungstyp an, der einer der folgenden Werte sein kann.
Benachrichtigungstyp | BESCHREIBUNG |
---|---|
BufferOverrunDetected | Dieser Benachrichtigungstyp hat keine Argumente und gibt dem Miniporttreiber die Möglichkeit, das System zu überprüfen, wenn er eine Beschädigung erkennt. |
BusChangeDetected |
Gibt an, dass ein Zielgerät möglicherweise einem dynamischen Bus hinzugefügt oder daraus entfernt wurde. Um diesen Benachrichtigungstyp zu verwenden, schließen Sie einen optionalen PathId-Parameter ein, um den SCSI-Port oder Bus anzugeben, an dem die Änderung erkannt wurde.
|
IoTargetRequestServiceTime |
Gibt storport die Zeit an, die zum Verarbeiten einer angegebenen Anforderung erforderlich war.
Dauer [in] Die Dauer der für Srb erforderlichen Dienstzeit in 100 Nanosekundeneinheiten. Srb [in] Der Anforderungsblock, für den die Dienstzeit festgelegt werden soll. |
LinkDown | Gibt an, dass der Link ausgefallen ist und wahrscheinlich für einige Zeit ausgefallen ist. StorPort hält den Adapter als Reaktion auf diese Benachrichtigung an. |
Linkup | Gibt an, dass der Link wiederhergestellt wurde. StorPort startet den Adapter neu, damit er den Betrieb als Reaktion auf diese Benachrichtigung fortsetzen kann. Miniport-Treiber sollten diese Benachrichtigung nur senden, wenn der Link ausgefallen ist. |
QueryTickCount |
Dieser Benachrichtigungstyp gibt einen LARGE_INTEGER zurück, der den Wert von KeQueryTickCount enthält. Der in TickCount zurückgegebene Wert ist die Anzahl der Intervalltimerunterbrechungen, die seit dem Start des Systems aufgetreten sind.
|
RequestComplete |
Gibt an, dass der angegebene SRB abgeschlossen wurde. Nachdem diese Benachrichtigung gesendet wurde, besitzt der Porttreiber die Anforderung. Der Srb-Parameter stellt einen Zeiger auf den abgeschlossenen SCSI-Anforderungsblock dar. Der Miniporttreiber darf nicht versuchen, auf die Anforderung in Srb zuzugreifen, und er darf Srb nicht an eine andere Routine übergeben.
|
RequestTimerCall |
Gibt an, dass der Miniporttreiber den Porttreiber benötigt, um die HwStorTimer-Routine des Miniporttreibers in der angeforderten Anzahl von Mikrosekunden aufzurufen.
HwStorTimer [in] Ein Zeiger auf eine Zeitgeberroutine, die nach dem in MiniportTimerValue angegebenen Zeitintervall aufgerufen wird. MiniportTimerValue [in] Gibt das Intervall an, nach dem die Timerroutine aufgerufen wird, auf die HwStorTimer verweist. Dies ist ein positiver Wert, der in Mikrosekunden angegeben wird. Der Wert 0 bricht den Timer ab. Die Systemtimerauflösung beträgt ca. 10 Millisekunden. |
ResetDetected (Zurücksetzen erkannt) | Gibt an, dass der HBA eine Zurücksetzung für den Bus erkannt hat. Nachdem diese Benachrichtigung gesendet wurde, ist der Miniporttreiber weiterhin für das Abschließen aller aktiven Anforderungen verantwortlich. Der Porttreiber verwaltet alle erforderlichen Busrücksetzungsverzögerungen. |
WMIEvent |
Gibt an, dass der Miniporttreiber ein Ereignis erkannt hat, für das ein oder mehrere WMI-Datenconsumer registriert sind. Beachten Sie, dass der WmiEvent-Parameter auf maximal 128 Bytes beschränkt ist. Wenn WmiEvent größer als 128 Bytes ist, wird es ignoriert.
WMIEvent [in] Ein Zeiger auf Ereignisstrukturen, die Informationen zu einem WMI-Ereignis enthalten, das vom Miniporttreiber erkannt wird. PathId [in] Gibt den SCSI-Port oder Bus für die Anforderung an. Legen Sie diesen Parameter auf 0xff für ein Adaptergerät fest. Andernfalls legen Sie auf eine gültige Pfad-ID fest. TargetId [in, optional] Gibt den Zielcontroller oder das Zielgerät im Bus an. Dieser Parameter wird nicht verwendet, wenn das Ereignis für einen Adapter gilt. Lun [in, optional] Gibt die Nummer der logischen Einheit des Geräts an. Dieser Parameter wird nicht verwendet, wenn das Ereignis für einen Adapter gilt. |
WMIReregister |
Gibt an, dass der Miniporttreiber die Datenelemente oder die Anzahl der Instanzen eines bestimmten Datenblocks geändert hat, der zuvor durch Aufrufen von IoWMIRegistrationControl registriert wurde.
PathId [in] Gibt den SCSI-Port oder Bus für die Anforderung an. Legen Sie diesen Parameter auf 0xff für ein Adaptergerät fest. Andernfalls legen Sie auf eine gültige Pfad-ID fest. TargetId [in, optional] Gibt den Zielcontroller oder das Zielgerät im Bus an. Dieser Parameter wird nicht verwendet, wenn die Registrierung für einen Adapter erfolgt. Lun [in, optional] Gibt die Nummer der logischen Einheit des Geräts an. Dieser Parameter wird nicht verwendet, wenn die Registrierung für einen Adapter erfolgt. |
HwDeviceExtension
Ein Zeiger auf die Hardwaregeräteerweiterung. Dies ist ein HBA-Speicherbereich, den der Porttreiber im Namen des Miniporttreibers zuordnet und initialisiert. Miniport-Treiber speichern in dieser Erweiterung in der Regel HBA-spezifische Informationen, z. B. den Status des HBA und die zugeordneten Zugriffsbereiche für den HBA. Dieser Bereich steht dem Miniporttreiber unmittelbar nach dem Aufrufen von StorPortInitialize durch den Miniporttreiber zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt.
...
Zusätzliche Parameter.
Rückgabewert
Keine.
Hinweise
StorPortNotification ist eine polymorphe Funktion, die viele verschiedene Arten von Anforderungen verarbeitet, sodass es schwierig ist, Anmerkungen in einer Weise zu kommentieren, die alle möglichen Verwendungsmöglichkeiten abdeckt. Da StorPortNotification VOID zurückgibt, sollte die Scan-Engine davon ausgehen, dass lockHandle wie angefordert abgerufen wurde.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | storport.h (Storport.h einschließen) |
Bibliothek | Storport.lib |
DDI-Complianceregeln | StorPortNotification2(storport), StorPortStatusPending, StorPortTimer(storport) |