Freigeben über


StorPortLogSystemEvent-Funktion (storport.h)

Die StorPortLogSystemEvent-Routine bietet Miniporttreibern vollen Zugriff auf die Funktionen der Windows-Kernelereigniseinrichtung, sodass Miniporttreiber Ereignisprotokolleinträge erstellen können, die bei der Behandlung von Speicherproblemen wirklich nützlich sind. Es bietet eine bessere Alternative zur vorhandenen Miniport-Treiberereignisprotokollierungsfunktion, StorPortLogError.

Syntax

ULONG StorPortLogSystemEvent(
  [in]      PVOID                   HwDeviceExtension,
  [in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
  [in, out] PULONG                  MaximumSize
);

Parameter

[in] 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 Miniport unmittelbar nach dem Aufruf des Miniporttreibers StorPortInitializezur Verfügung. Der Porttreiber gibt diesen Speicher frei, wenn es das Gerät entfernt.

[in, out] LogDetails

Eine STOR_LOG_EVENT_DETAILS Struktur, die Informationen enthält, die im Systemereignisprotokolleintrag angezeigt werden sollen.

[in, out] MaximumSize

Variable zum Empfangen der maximalen kombinierten Größe der Miniport-Speicherabbilddaten und -Zeichenfolgen. Wird nur zurückgegeben, wenn die Funktion fehlschlägt und einen STOR_STATUS_INVALID_BUFFER_SIZE Wert zurückgibt. Dieser Parameter ist optional.

Rückgabewert

Rückgabecode Beschreibung
STOR_STATUS_NOT_IMPLEMENTED
Diese Funktion ist nicht auf dem aktiven Betriebssystem implementiert.
STOR_STATUS_INVALID_PARAMETER
Ein ungültiger Parameter wurde übergeben.
STOR_STATUS_INVALID_IRQL
Der Anruf wurde bei IRQL-> DISPATCH_LEVEL getätigt.
STOR_STATUS_INSUFFICIENT_RESOURCES
Es waren unzureichende Systemressourcen vorhanden, um die Anforderung abzuschließen.
STOR_STATUS_UNSUPPORTED_VERSION:
Es wurde eine nicht unterstützte (z. B. aktuellere) Version der STOR_LOG_EVENT_DETAILS-Struktur angegeben. Wenn dies zurückgegeben wird, wird LogDetails->InterfaceRevision auf die neueste unterstützte Version festgelegt.
STOR_STATUS_INVALID_BUFFER_SIZE
Die an die Funktion übergebenen Puffer waren zu groß. Wenn dieser Wert zurückgegeben wird, wird MaximumSize auf die maximale kombinierte Größe der Dumpdaten und Zeichenfolgen des Miniports festgelegt.
STOR_STATUS_SUCCESS
Der Protokollvorgang wurde erfolgreich abgeschlossen.

Bemerkungen

Informationen dazu, wie Sie benutzerdefinierte Fehlercodes am besten nutzen können, finden Sie unter Storport Error Log Extensions. Die StorPortLogSystemEvent-Routine muss bei IRQL <= DISPATCH_LEVEL aufgerufen werden. Wenn Sie eine neuere Version von STOR_LOG_EVENT_DETAILS übergeben, als diese von diesem Build unterstützt wird, ändert diese Funktion das InterfaceRevision-Feld in die neueste unterstützte Version und gibt STOR_STATUS_UNSUPPORTED_VERSION zurück. Das InterfaceRevision-Feld von STOR_LOG_EVENT_DETAILS ist ein 32-Bit-Wert. Zur Überprüfung werden jedoch nur die drei wichtigsten Bytes verwendet. Das niedrige Byte ist reserviert, um zwischen kompatiblen, geringfügigen Variationen einer bestimmten Version zu unterscheiden. Beispielsweise ist eine Überarbeitung 0x00000101 Struktur mit einem Storport kompatibel, der Revision 0x00000100 der Schnittstelle implementiert, obwohl es möglich ist, dass einige kleinere, nicht kritische Funktionen verlorengehen können. Wenn Sie eine kombinierte Größe von Dumpdaten und Zeichenfolgen angeben, die die maximal zulässige Ereignisprotokolleingabegröße überschreitet, wird die ganze Zahl, auf die von MaximumSize verwiesen wird, auf die maximale zulässige Größe von Miniportabbilddaten und -Zeichenfolgen festgelegt, und STOR_INVALID_BUFFER_SIZE zurückgegeben wird. Obwohl diese Funktion ULONG-Werte für pfad-, Ziel- und LUN-Adressbezeichner akzeptiert, werden die Werte in UCHAR-Werte abgeschnitten, da Storport intern nur 8-Bit-Werte für diese Bezeichner unterstützt.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- storport.h (include Storport.h)
DDI-Complianceregeln StorPortIrql(storport)

Siehe auch

StorPortLogError-