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 |