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 |