PSHED_PI_ATTEMPT_ERROR_RECOVERY função de retorno de chamada (ntddk.h)

A função de retorno de chamada AttemptRecovery de um plug-in PSHED tenta se recuperar de um erro de hardware recuperável.

Sintaxe

PSHED_PI_ATTEMPT_ERROR_RECOVERY PshedPiAttemptErrorRecovery;

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

Parâmetros

[in, out, optional] PluginContext

Um ponteiro para a área de contexto especificada no membro Context da estrutura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET quando o plug-in PSHED chamou a função PshedRegisterPlugin para se registrar no PSHED.

[in] BufferLength

O tamanho, em bytes, do registro de erro apontado pelo parâmetro ErrorRecord .

[in] ErrorRecord

Um ponteiro para uma estrutura WHEA_ERROR_RECORD que descreve um registro de erro para um erro de hardware recuperável.

Retornar valor

A função de retorno de chamada AttemptRecovery de um plug-in PSHED retorna um dos seguintes códigos NTSTATUS.

Código de retorno Descrição
STATUS_SUCCESS A tentativa de recuperação do erro de hardware foi bem-sucedida.
STATUS_UNSUCCESSFUL A tentativa de recuperação do erro de hardware não foi bem-sucedida.

Comentários

Um plug-in PSHED que participa da recuperação de erros define o membro Callbacks.AttemptRecovery da estrutura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET para apontar para sua função de retorno de chamada AttemptRecovery quando o plug-in chama a função PshedRegisterPlugin para se registrar no PSHED. O plug-in PSHED também deve definir o sinalizador PshedFAErrorRecovery no membro FunctionalAreaMask da estrutura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

O kernel do Windows tenta se recuperar de um erro de hardware recuperável enquanto processa o erro depois que todos os dados de erro de hardware são colocados no registro de erro. Em seguida, o kernel do Windows chama o PSHED para dar a ele uma oportunidade de executar todas as operações de recuperação necessárias. Se um plug-in PSHED estiver registrado para participar da recuperação de erros, o PSHED chamará a função de retorno de chamada AttemptRecovery do plug-in PSHED para que ele possa tentar corrigir o erro e/ou executar quaisquer operações adicionais necessárias para se recuperar totalmente da condição de erro.

Se o kernel do Windows ou o PSHED se recuperar com êxito do erro de hardware, ele atualizará a estrutura WHEA_ERROR_RECORD que descreve o erro antes de chamar a função de retorno de chamada AttemptRecovery do plug-in PSHED da seguinte maneira:

  • O membro Header.Severity é alterado de WheaErrSevRecoverable para WheaErrSevCorrected.

  • O bit Header.Flags.Recovered está definido.

Se o plug-in PSHED se recuperar com êxito do erro de hardware, o PSHED atualizará a estrutura WHEA_ERROR_RECORD em nome do plug-in PSHED após a chamada à função de retorno de chamada AttemptRecovery do plug-in PSHED. A função de retorno de chamada AttemptRecovery de um plug-in PSHED não deve modificar o registro de erro.

O PSHED chama a função de retorno de chamada AttemptRecovery de um plug-in PSHED em IRQL <= HIGH_LEVEL. O IRQL exato no qual essa função de retorno de chamada é chamada depende do tipo específico de erro de hardware que ocorreu.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho ntddk.h (inclua Ntddk.h)
IRQL IRQL >= DISPATCH_LEVEL

Confira também

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET