Freigeben über


PSHED_PI_ATTEMPT_ERROR_RECOVERY Rückruffunktion (ntddk.h)

Die AttemptRecovery eines PSHED-Plug-Ins Rückruffunktion versucht, einen wiederherstellbaren Hardwarefehler wiederherzustellen.

Syntax

PSHED_PI_ATTEMPT_ERROR_RECOVERY PshedPiAttemptErrorRecovery;

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

Parameter

[in, out, optional] PluginContext

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

[in] BufferLength

Die Größe des Fehlerdatensatzes in Byte, auf den der ErrorRecord-Parameter verweist.

[in] ErrorRecord

Ein Zeiger auf eine WHEA_ERROR_RECORD-Struktur, die einen Fehlerdatensatz für einen wiederherstellbaren Hardwarefehler beschreibt.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS Der Versuch, den Hardwarefehler wiederherzustellen, war erfolgreich.
STATUS_UNSUCCESSFUL Der Versuch, den Hardwarefehler wiederherzustellen, war nicht erfolgreich.

Bemerkungen

Ein PSHED-Plug-In, das an der Fehlerwiederherstellung teilnimmt, legt die Callbacks.AttemptRecovery Mitglied der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET Struktur fest, um auf seine AttemptRecovery- Rückruffunktion zu verweisen, wenn das Plug-In die PshedRegisterPlugin-Funktion aufruft, um sich bei der PSHED-Funktion zu registrieren. Das PSHED-Plug-In muss auch das PshedFAErrorRecovery- Flag im FunctionalAreaMask Member der WHEA_PSHED_PLUGIN_REGISTRATION_PACKET-Struktur festlegen.

Der Windows-Kernel versucht, einen wiederherstellbaren Hardwarefehler wiederherzustellen, während er den Fehler verarbeitet, nachdem alle Hardwarefehlerdaten in den Fehlerdatensatz eingefügt wurden. Der Windows-Kernel ruft dann den PSHED auf, um ihm die Möglichkeit zu geben, alle erforderlichen Wiederherstellungsvorgänge auszuführen. Wenn ein PSHED-Plug-In registriert ist, um an der Fehlerwiederherstellung teilzunehmen, ruft das PSHED-Plug-In die AttemptRecovery- Rückruffunktion auf, sodass versucht werden kann, den Fehler zu korrigieren und/oder weitere Vorgänge auszuführen, die erforderlich sind, um die Fehlerbedingung vollständig wiederherzustellen.

Wenn der Windows-Kernel oder der PSHED erfolgreich vom Hardwarefehler wiederhergestellt werden, wird die WHEA_ERROR_RECORD Struktur aktualisiert, die den Fehler beschreibt, bevor das PSHED-Plug-In AttemptRecovery Rückruffunktion wie folgt aufgerufen wird:

  • Das Header.Severity Member wird von WheaErrSevRecoverable in WheaErrSevCorrectedgeändert.

  • Das Header.Flags.Wiederhergestellt Bit festgelegt ist.

Wenn das PSHED-Plug-In erfolgreich vom Hardwarefehler wiederhergestellt wird, aktualisiert PSHED die WHEA_ERROR_RECORD Struktur im Namen des PSHED-Plug-Ins, nachdem der Aufruf des PSHED-Plug-Ins AttemptRecovery Rückruffunktion zurückgegeben wird. Die AttemptRecovery-Funktion eines PSHED-Plug-Ins Rückruffunktion sollte den Fehlerdatensatz nicht ändern.

Die PSHED ruft die AttemptRecovery-Funktion eines PSHED-Plug-Ins Rückruffunktion bei IRQL <= HIGH_LEVEL auf. Die genaue IRQL, bei der diese Rückruffunktion aufgerufen wird, hängt vom jeweiligen Typ des aufgetretenen Hardwarefehlers ab.

Anforderungen

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

Siehe auch

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET