Condividi tramite


PSHED_PI_ATTEMPT_ERROR_RECOVERY funzione di callback (ntddk.h)

Una funzione di callback del plug-in PSHED tenta di ripristinare da un errore hardware recuperabile.

Sintassi

PSHED_PI_ATTEMPT_ERROR_RECOVERY PshedPiAttemptErrorRecovery;

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

Parametri

[in, out, optional] PluginContext

Puntatore all'area di contesto specificata nel membro Contesto della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET quando il plug-in PSHED ha chiamato la funzione PshedRegisterPlugin per registrarsi con PSHED.

[in] BufferLength

Dimensioni, in byte, del record di errore a cui fa riferimento il parametro ErrorRecord .

[in] ErrorRecord

Puntatore a una struttura WHEA_ERROR_RECORD che descrive un record di errore per un errore hardware recuperabile.

Valore restituito

Una funzione di callback del plug-in PSHED restituisce uno dei codici NTSTATUS seguenti.

Codice restituito Descrizione
STATUS_SUCCESS Il tentativo di ripristino dall'errore hardware ha avuto esito positivo.
STATUS_UNSUCCESSFUL Il tentativo di ripristino dall'errore hardware non è riuscito.

Commenti

Un plug-in PSHED che partecipa al ripristino degli errori imposta il membro Callbacks.AttemptRecovery della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET per puntare alla funzione di callback Di tentativo quando il plug-in chiama la funzione PshedRegisterPlugin per registrarsi con PSHED. Il plug-in PSHED deve anche impostare il flag PshedFAErrorRecovery nel membro FunctionalAreaMask della struttura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

Il kernel di Windows tenta di eseguire il ripristino da un errore hardware ripristinabile mentre elabora l'errore dopo che tutti i dati degli errori hardware sono stati inseriti nel record di errore. Il kernel di Windows chiama quindi psHED per dare la possibilità di eseguire tutte le operazioni di ripristino necessarie. Se un plug-in PSHED è registrato per partecipare al ripristino degli errori, il PSHED chiama la funzione di callback del plug-in PSHED in modo che possa tentare di correggere l'errore e/o eseguire eventuali operazioni aggiuntive necessarie per ripristinare completamente la condizione di errore.

Se il kernel di Windows o PSHED recupera correttamente dall'errore hardware, aggiorna la struttura di WHEA_ERROR_RECORD che descrive l'errore prima di chiamare la funzione di callback del plug-in PSHED AttemptRecovery come indicato di seguito:

  • Il membro Header.Gravità viene modificato da WheaErrSevRecoverable a WheaErrSevCorrected.

  • Il bit Header.Flags.Recovered è impostato.

Se il plug-in PSHED recupera correttamente l'errore hardware, PSHED aggiornerà la struttura di WHEA_ERROR_RECORD per conto del plug-in PSHED dopo la chiamata alla funzione di callback del plug-in PSHED. La funzione di callback Di tentativo di ripristino di PSHED non deve modificare il record di errore.

IL PSHED chiama una funzione di callback Di tentativo di ripristino di PSHED in IRQL <= HIGH_LEVEL. L'esatto IRQL in cui viene chiamata questa funzione di callback dipende dal tipo specifico di errore hardware che si è verificato.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione ntddk.h (include Ntddk.h)
IRQL IRQL >= DISPATCH_LEVEL

Vedi anche

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET