PSHED_PI_ATTEMPT_ERROR_RECOVERY Rückruffunktion (ntddk.h)

Die Rückruffunktion "AttemptRecovery " eines PSHED-Plug-Ins versucht, nach einem 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 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] BufferLength

Die Größe des Fehlerdatensatzes in Bytes, auf die 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 Rückruffunktion AttemptRecovery eines PSHED-Plug-Ins gibt einen der folgenden NTSTATUS-Codes zurück.

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

Hinweise

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

Der Windows-Kernel versucht, nach einem 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 für die Teilnahme an der Fehlerwiederherstellung registriert ist, ruft das PSHED die Rückruffunktion AttemptRecovery des PSHED-Plug-Ins auf, damit es versuchen kann, den Fehler zu beheben und/oder zusätzliche Vorgänge auszuführen, die erforderlich sind, um die Fehlerbedingung vollständig wiederherzustellen.

Wenn der Windows-Kernel oder der PSHED erfolgreich nach dem Hardwarefehler wiederhergestellt wurde, aktualisiert er die WHEA_ERROR_RECORD-Struktur , die den Fehler beschreibt, bevor die Rückruffunktion AttemptRecovery des PSHED-Plug-Ins wie folgt aufgerufen wird:

  • Das Header.Severity-Element wird von WheaErrSevRecoverable in WheaErrSevCorrected geändert.

  • Das Header.Flags.Recovered-Bit ist festgelegt.

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

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

Anforderungen

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

Weitere Informationen

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET