функция обратного вызова PSHED_PI_ATTEMPT_ERROR_RECOVERY (ntddk.h)

Функция обратного вызова PSHED Пытался Восстановить обратного вызова пытается восстановиться после восстанавливаемой аппаратной ошибки.

Синтаксис

PSHED_PI_ATTEMPT_ERROR_RECOVERY PshedPiAttemptErrorRecovery;

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

Параметры

[in, out, optional] PluginContext

Указатель на область контекста, указанную в элементе WHEA_PSHED_PLUGIN_REGISTRATION_PACKET контекста контексте, когда подключаемый модуль PSHED вызывает функцию PshedRegisterPlugin для регистрации в PSHED.

[in] BufferLength

Размер записи об ошибке в байтах, на которую указывает параметр ErrorRecord.

[in] ErrorRecord

Указатель на структуру WHEA_ERROR_RECORD, описывающую запись об ошибке для восстанавливаемой аппаратной ошибки.

Возвращаемое значение

Функция обратного вызова PSHED AttemptRecovery возвращает один из следующих кодов NTSTATUS.

Возвращаемый код Описание
STATUS_SUCCESS Попытка восстановиться после ошибки оборудования была успешной.
STATUS_UNSUCCESSFUL Попытка восстановиться после ошибки оборудования была неудачной.

Замечания

Подключаемый модуль PSHED, который участвует в восстановлении ошибок, задает функцию обратного вызова .AttemptRecovery член структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET, чтобы указать на ее функцию обратного вызова AttemptRecovery, когда подключаемый модуль вызывает функцию PshedRegisterPlugin, чтобы зарегистрировать себя в PSHED. Подключаемый модуль PSHED также должен задать флаг PshedFAErrorRecover y в элементе FunctionalAreaMask структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

Ядро Windows пытается восстановиться после восстанавливаемой аппаратной ошибки во время обработки ошибки после того, как все данные об ошибках оборудования были помещены в запись об ошибке. Затем ядро Windows вызывает PSHED, чтобы предоставить ему возможность выполнять все необходимые операции восстановления. Если подключаемый модуль PSHED зарегистрирован для участия в восстановлении ошибок, PSHED вызывает функцию обратного вызова PSHED подключаемого модуля PSHED, чтобы попытаться исправить ошибку и /или выполнить любые дополнительные операции, необходимые для полного восстановления из условия ошибки.

Если ядро Windows или PSHED успешно восстанавливается после ошибки оборудования, оно обновляет структуру WHEA_ERROR_RECORD, описывающую ошибку перед вызовом функции обратного вызова модуля PSHED, обратного вызова:

  • Элемент Header.Severity изменяется с WheaErrSevRecoverable на WheaErrSevCorrected.

  • Установлен бит Header.Flags.Recovered.

Если подключаемый модуль PSHED успешно восстанавливается после ошибки оборудования, PSHED обновит структуру WHEA_ERROR_RECORD от имени подключаемого модуля PSHED после вызова функции обратного вызова PSHED. Функция обратного вызова модуля PSHED не должна изменять запись об ошибке.

PSHED вызывает функцию обратного вызова модуля PSHED в IR <QL = HIGH_LEVEL. Точное значение IRQL, при котором вызывается эта функция обратного вызова, зависит от конкретного типа ошибки оборудования, возниквшей.

Требования

Требование Ценность
целевая платформа Настольный
заголовка ntddk.h (include Ntddk.h)
IRQL IRQL >= DISPATCH_LEVEL

См. также

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET