StorPortNotification-Funktion (storport.h)
Der Miniporttreiber verwendet die StorPortNotification Routine, um den Storport-Treiber über bestimmte Ereignisse und Bedingungen zu benachrichtigen.
StorPortNotification verwendet 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, bei dem es sich um einen der folgenden Werte handeln kann.
Benachrichtigungstyp | Beschreibung |
---|---|
BufferOverrunDetected | Dieser Benachrichtigungstyp hat keine Argumente und gibt dem Miniporttreiber die Möglichkeit, das System zu überprüfen, wenn es eine Beschädigung erkennt. |
BusChangeDetected |
Gibt an, dass ein Zielgerät möglicherweise zu 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 an, dass Storport die Zeitspanne angibt, die zum Verarbeiten einer angegebenen Anforderung erforderlich war.
Dauer [in] Die Dauer der Dienstzeit, die für Srb in 100 Nanosekundeneinheiten erforderlich ist. Srb [in] Der Anforderungsblock zum Festlegen der Dienstzeit. |
LinkDown | Gibt an, dass der Link abläuft und wahrscheinlich einige Zeit nach unten ist. StorPort hält den Adapter als Reaktion auf diese Benachrichtigung an. |
Verbindung | Gibt an, dass die Verknüpfung wiederhergestellt wurde. StorPort startet den Adapter neu, damit er den Vorgang als Reaktion auf diese Benachrichtigung fortsetzen kann. Miniport-Treiber sollten diese Benachrichtigung nur senden, wenn der Link deaktiviert ist. |
QueryTickCount |
Dieser Benachrichtigungstyp gibt einen LARGE_INTEGER zurück, der den Wert aus KeQueryTickCountenthä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 ist. 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 von HwStorTimer aufgerufen wird. Dies ist ein positiver Wert, der in Mikrosekunden angegeben ist. Der Timer wird durch einen Wert von 0 abgebrochen. Die Systemzeitgeberauflösung beträgt ca. 10 Millisekunden. |
ResetDetected | Gibt an, dass die HBA eine Zurücksetzung auf dem Bus erkannt hat. Nachdem diese Benachrichtigung gesendet wurde, ist der Miniporttreiber weiterhin für die Durchführung aktiver Anforderungen verantwortlich. Der Porttreiber verwaltet alle erforderlichen Buszurücksetzungsverzögerungen. |
WMIEvent |
Gibt an, dass der Miniporttreiber ein Ereignis erkannt hat, für das mindestens ein WMI-Datenverbraucher registriert ist. Beachten Sie, dass der WmiEvent Parameter auf maximal 128 Bytes beschränkt ist. Wenn WmiEvent- größer als 128 Byte ist, wird sie 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. Legen Sie andernfalls eine gültige Pfad-ID fest. TargetId [in, optional] Gibt den Zielcontroller oder das Gerät auf dem Bus an. Dieser Parameter wird nicht verwendet, wenn das Ereignis für einen Adapter verwendet wird. Lun [in, optional] Gibt die logische Einheitennummer des Geräts an. Dieser Parameter wird nicht verwendet, wenn das Ereignis für einen Adapter verwendet wird. |
WMIReregister |
Gibt an, dass der Miniporttreiber die Datenelemente oder die Anzahl der Instanzen eines bestimmten Datenblocks geändert hat, der zuvor durch Aufrufen von IoWMIRegistrationControlregistriert 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. Legen Sie andernfalls eine gültige Pfad-ID fest. TargetId [in, optional] Gibt den Zielcontroller oder das Gerät auf dem Bus an. Dieser Parameter wird nicht verwendet, wenn die Registrierung für einen Adapter erfolgt. Lun [in, optional] Gibt die logische Einheitennummer 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 zuweist und initialisiert. Miniporttreiber speichern in der Regel HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand der HBA und die zugeordneten Zugriffsbereiche für die HBA. Dieser Bereich steht dem Miniporttreiber unmittelbar nach dem Aufruf StorPortInitializezur Verfügung. Der Porttreiber gibt diesen Speicher frei, wenn es das Gerät entfernt.
...
Zusätzliche Parameter.
Rückgabewert
Nichts.
Bemerkungen
StorPortNotification ist eine polymorphe Funktion, die viele verschiedene Arten von Anforderungen verarbeitet, was es schwierig macht, in einer Weise zu kommentieren, die alle möglichen Verwendungen abdecken würde. Da StorPortNotification VOID zurückgibt, sollte das Scanmodul davon ausgehen, dass LockHandle wie gefragt erworben wurde.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | storport.h (include Storport.h) |
Library | Storport.lib |
DDI-Complianceregeln | StorPortNotification2(storport), StorPortStatusPending, StorPortTimer(storport) |