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 |