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 wirklich nützlich sind, um Speicherprobleme zu beheben. Es bietet eine bessere Alternative zur vorhandenen Miniporttreiberereignisprotokollierungsfunktion 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. Hierbei handelt es sich um einen HBA-Speicherbereich, den der Porttreiber im Auftrag des Miniporttreibers ordnet und initialisiert. Miniporttreiber speichern normalerweise HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand des HBA und die zugeordneten Zugriffsbereiche für den HBA. Dieser Bereich steht dem Miniport unmittelbar nach dem Aufruf des Miniporttreibers StorPortInitialize zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er 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, um die maximale kombinierte Größe der Miniport-Dumpdaten und -zeichenfolgen zu erhalten. 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 auf dem aktiven Betriebssystem nicht implementiert.
STOR_STATUS_INVALID_PARAMETER
Ein ungültiger Parameter wurde übergeben.
STOR_STATUS_INVALID_IRQL
Der Anruf wurde bei IRQL > DISPATCH_LEVEL.
STOR_STATUS_INSUFFICIENT_RESOURCES
Es waren nicht genügend 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 Puffer, die an die Funktion übergeben wurden, 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.

Hinweise

Informationen dazu, wie Sie benutzerdefinierte Fehlercodes optimal nutzen können, finden Sie unter Storport-Fehlerprotokollerweiterungen. Die StorPortLogSystemEvent-Routine muss unter IRQL <= DISPATCH_LEVEL aufgerufen werden. Wenn Sie eine neuere Version von STOR_LOG_EVENT_DETAILS übergeben, als von diesem Build unterstützt wird, ändert diese Funktion das Feld InterfaceRevision in die neueste unterstützte Version und gibt STOR_STATUS_UNSUPPORTED_VERSION zurück. Das Feld InterfaceRevision von STOR_LOG_EVENT_DETAILS ist ein 32-Bit-Wert. Für die Validierung werden jedoch nur die drei wichtigsten Bytes verwendet. Das niedrige Byte ist reserviert, um zwischen kompatiblen, geringfügigen Variationen einer bestimmten Version zu unterscheiden. Für instance ist eine Revision 0x00000101-Struktur mit einem Storport kompatibel, der revision 0x00000100 der Schnittstelle implementiert, obwohl es möglich ist, dass einige kleinere, nicht kritische Funktionen verloren geht. Wenn Sie eine kombinierte Größe von Dumpdaten und Zeichenfolgen angeben, die die maximal zulässige Ereignisprotokolleintragsgröße überschreitet, wird die ganze Zahl, auf die von MaximumSize verwiesen wird, auf die maximal zulässige Größe von Miniportabbilddaten und -zeichenfolgen festgelegt, und STOR_INVALID_BUFFER_SIZE wird zurückgegeben. Obwohl diese Funktion ULONG-Werte für die 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 Universell
Header storport.h (einschließlich Storport.h)
DDI-Complianceregeln StorPortIrql(storport)

Weitere Informationen

StorPortLogError