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 |