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 |