PSHED_PI_FINALIZE_ERROR_RECORD Rückruffunktion (ntddk.h)

Die Rückruffunktion FinalizeErrorRecord eines PSHED-Plug-Ins fügt einem Fehlerdatensatz zusätzliche Abschnitte hinzu, die die Fehlerbedingung ausführlicher beschreiben.

Syntax

PSHED_PI_FINALIZE_ERROR_RECORD PshedPiFinalizeErrorRecord;

NTSTATUS PshedPiFinalizeErrorRecord(
  [in, out, optional] PVOID PluginContext,
  [in]                PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
  [in]                ULONG BufferLength,
  [in, out]           PWHEA_ERROR_RECORD ErrorRecord
)
{...}

Parameter

[in, out, optional] PluginContext

Ein Zeiger auf den Kontextbereich, der im Kontextelement der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur angegeben wurde, als das PSHED-Plug-In die PshedRegisterPlugin-Funktion aufgerufen hat, um sich beim PSHED zu registrieren.

[in] ErrorSource

Ein Zeiger auf eine WHEA_ERROR_SOURCE_DESCRIPTOR Struktur, die die Fehlerquelle beschreibt, die den Hardwarefehler gemeldet hat.

[in] BufferLength

Die Größe des Puffers in Bytes, auf die der ErrorRecord-Parameter verweist.

[in, out] ErrorRecord

Ein Zeiger auf eine WHEA_ERROR_RECORD-Struktur , die den Fehlerdatensatz beschreibt, der mit zusätzlichen Fehlerdatensatzabschnitten aktualisiert wird.

Rückgabewert

Die Rückruffunktion FinalizeErrorRecord eines PSHED-Plug-Ins gibt einen der folgenden NTSTATUS-Codes zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS Der Fehlerdatensatz wurde erfolgreich mit allen zusätzlichen Abschnitten des Fehlerdatensatzes aktualisiert.
STATUS_BUFFER_TOO_SMALL Die Größe des Puffers, auf den der ErrorRecord-Parameter verweist, wie im BufferLength-Parameter angegeben, ist zu klein, um den Fehlerdatensatz zu enthalten, wenn er mit den abschnitten zusätzlichen Fehlerdatensätzen aktualisiert wird.
STATUS_NOT_SUPPORTED Das PSHED-Plug-In unterstützt die angegebene Fehlerquelle nicht.
STATUS_UNSUCCESSFUL Ein Fehler ist aufgetreten.

Hinweise

Ein PSHED-Plug-In, das am Abrufen von Fehlerinformationen beteiligt ist, legt die Rückruffunktionen Callbacks.RetrieveErrorInfo, Callbacks.FinalizeErrorRecord und Callbacks.ClearErrorStatus der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur so fest, dass sie auf die Rückruffunktionen RetrieveErrorInfo, FinalizeErrorRecord und ClearErrorStatus verweisen, wenn das Plug-In die PshedRegisterPlugin-Funktion aufruft, um sich beim PSHED zu registrieren. Das PSHED-Plug-In muss auch das PshedFAErrorInfoRetrieval-Flag im FunctionalAreaMask-Element der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur festlegen.

Der Windows-Kernel ruft den PSHED auf, sodass er zusätzliche Fehlerdatensätzeabschnitte zu einem Fehlerdatensatz hinzufügen kann. Wenn ein PSHED-Plug-In für die Teilnahme am Abrufen von Fehlerinformationen registriert ist, ruft das PSHED-Plug-In die Rückruffunktion FinalizeErrorRecord des PSHED-Plug-Ins auf, sodass das PSHED-Plug-In dem Fehlerdatensatz alle zusätzlichen Fehlerdatensätze-Abschnitte hinzufügen kann, die die Fehlerbedingung ausführlicher beschreiben.

Ein PSHED-Plug-In muss sicherstellen, dass keine zusätzlichen Fehlerdatensatzabschnitte über das Ende des Fehlerdatensatzes hinaus hinzugefügt werden. Die Menge an Arbeitsspeicher, die der Windows-Kernel einem Puffer zuweist, der einen bestimmten Fehlerdatensatz enthält, wird aus den Elementen MaxRawDataLength und MaxSectionsPerRecord der WHEA_ERROR_SOURCE_DESCRIPTOR-Struktur berechnet, die die Fehlerquelle beschreibt, die den Hardwarefehler gemeldet hat. Wenn ein PSHED-Plug-In zusätzlichen Pufferspeicher benötigt, um die zusätzlichen Fehlerdatensatzabschnitte zu enthalten, die dem Fehlerdatensatz hinzugefügt werden, muss es an der Fehlerquellenermittlung teilnehmen und den Wert im MaxSectionsPerRecord-Member der WHEA_ERROR_SOURCE_DESCRIPTOR-Struktur für jede Fehlerquelle entsprechend erhöhen, um zusätzliche Fehlerdatensatzabschnitte zu berücksichtigen.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile ntddk.h (include Ntddk.h)
IRQL IRQL >= DISPATCH_LEVEL

Weitere Informationen

ClearErrorStatus

PshedRegisterPlugin

RetrieveErrorInfo

WHEA_ERROR_RECORD

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET