Compartir a través de


PSHED_PI_ATTEMPT_ERROR_RECOVERY función de devolución de llamada (ntddk.h)

Una función de devolución de llamada AttemptRecovery del complemento PSHED intenta recuperarse de un error de hardware recuperable.

Sintaxis

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

Puntero al área de contexto que se especificó en el miembro Context de la estructura de WHEA_PSHED_PLUGIN_REGISTRATION_PACKET cuando el complemento PSHED llamó a la función PshedRegisterPlugin para registrarse en el PSHED.

[in] BufferLength

Tamaño, en bytes, del registro de error al que apunta el parámetro ErrorRecord .

[in] ErrorRecord

Puntero a una estructura de WHEA_ERROR_RECORD que describe un registro de error para un error de hardware recuperable.

Valor devuelto

Una función de devolución de llamada AttemptRecovery del complemento PSHED devuelve uno de los siguientes códigos NTSTATUS.

Código devuelto Descripción
STATUS_SUCCESS El intento de recuperarse del error de hardware se realizó correctamente.
STATUS_UNSUCCESSFUL El intento de recuperarse del error de hardware no se realizó correctamente.

Comentarios

Un complemento PSHED que participa en la recuperación de errores establece el miembro Callbacks.AttemptRecovery de la estructura de WHEA_PSHED_PLUGIN_REGISTRATION_PACKET para que apunte a su función de devolución de llamada AttemptRecovery cuando el complemento llama a la función PshedRegisterPlugin para registrarse en el PSHED. El complemento PSHED también debe establecer la marca PshedFAErrorRecovery en el miembro FunctionalAreaMask de la estructura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

El kernel de Windows intenta recuperarse de un error de hardware recuperable mientras procesa el error después de que todos los datos de error de hardware se hayan colocado en el registro de errores. A continuación, el kernel de Windows llama al PSHED para darle la oportunidad de realizar las operaciones de recuperación necesarias. Si se registra un complemento PSHED para participar en la recuperación de errores, PSHED llama a la función de devolución de llamada AttemptRecovery del complemento PSHED para que pueda intentar corregir el error o realizar cualquier operación adicional necesaria para recuperarse completamente de la condición de error.

Si el kernel de Windows o el PSHED se recuperan correctamente del error de hardware, actualiza la estructura de WHEA_ERROR_RECORD que describe el error antes de llamar a la función de devolución de llamada AttemptRecovery del complemento PSHED de la siguiente manera:

  • El miembro Header.Severity se cambia de WheaErrSevRecoverable a WheaErrSevCorrected.

  • Se establece el bit Header.Flags.Recovered .

Si el complemento PSHED se recupera correctamente del error de hardware, el PSHED actualizará la estructura de WHEA_ERROR_RECORD en nombre del complemento PSHED después de la llamada a la función de devolución de llamada AttemptRecovery del complemento PSHED. Una función de devolución de llamada AttemptRecovery del complemento PSHED no debe modificar el registro de error.

El PSHED llama a la función de devolución de llamada AttemptRecovery de un complemento PSHED en IRQL <= HIGH_LEVEL. El IRQL exacto en el que se llama a esta función de devolución de llamada depende del tipo específico de error de hardware que se produjo.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ntddk.h (incluya Ntddk.h)
IRQL IRQL >= DISPATCH_LEVEL

Consulte también

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET