Compartir a través de


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

Un complemento PSHED AttemptRecovery función de devolución de llamada 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 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

Un complemento PSHED AttemptRecovery función de devolución de llamada 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.

Observaciones

Un complemento PSHED que participa en la recuperación de errores establece la Callbacks.AttemptRecovery miembro 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 se hayan colocado todos los datos de error de hardware 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 al complemento PSHED AttemptRecovery función de devolución de llamada 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 al complemento PSHED AttemptRecovery función de devolución de llamada de la siguiente manera:

  • El miembro Header.Severity 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 al complemento PSHED AttemptRecovery devuelve. Un complemento PSHED AttemptRecovery función de devolución de llamada no debe modificar el registro de error.

PSHED llama a la función de devolución de llamada de un complemento PSHED AttemptRecovery 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 Valor
de la plataforma de destino de Escritorio
encabezado de ntddk.h (incluya Ntddk.h)
irQL IRQL >= DISPATCH_LEVEL

Consulte también

pshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET