функция обратного вызова PSHED_PI_INJECT_ERROR (ntddk.h)
Функция обратного вызова InjectError подключаемого модуля PSHED внедряет ошибку на аппаратную платформу.
Синтаксис
PSHED_PI_INJECT_ERROR PshedPiInjectError;
NTSTATUS PshedPiInjectError(
[in, out, optional] PVOID PluginContext,
[in] ULONGLONG ErrorType,
[in] ULONGLONG Parameter1,
[in] ULONGLONG Parameter2,
[in] ULONGLONG Parameter3,
[in] ULONGLONG Parameter4
)
{...}
Параметры
[in, out, optional] PluginContext
Указатель на область контекста, указанную в элементе ContextWHEA_PSHED_PLUGIN_REGISTRATION_PACKET структуры, когда подключаемый модуль PSHED вызвал функцию PshedRegisterPlugin для регистрации в PSHED.
[in] ErrorType
Тип ошибки, внедряемой в аппаратную платформу. Возможны следующие значения:
INJECT_ERRTYPE_PROCESSOR_CORRECTABLE
Исправляемая ошибка процессора.
INJECT_ERRTYPE_PROCESSOR_UNCORRECTABLENONFATAL
Неисправимая ошибка некритичного процессора.
INJECT_ERRTYPE_PROCESSOR_UNCORRECTABLEFATAL
Неустранимая неустранимая ошибка процессора.
INJECT_ERRTYPE_MEMORY_CORRECTABLE
Исправляемая ошибка памяти.
INJECT_ERRTYPE_MEMORY_UNCORRECTABLENONFATAL
Неисправимая ошибка нефатальной памяти.
INJECT_ERRTYPE_MEMORY_UNCORRECTABLEFATAL
Неустранимая неустранимая ошибка памяти.
INJECT_ERRTYPE_PCIEXPRESS_CORRECTABLE
Исправляемая ошибка PCI Express.
INJECT_ERRTYPE_PCIEXPRESS_UNCORRECTABLENONFATAL
Неуправляемая некритичная ошибка PCI Express.
INJECT_ERRTYPE_PCIEXPRESS_UNCORRECTABLEFATAL
Неустранимая неустранимая ошибка PCI Express.
INJECT_ERRTYPE_PLATFORM_CORRECTABLE
Исправляемая ошибка платформы.
INJECT_ERRTYPE_PLATFORM_UNCORRECTABLENONFATAL
Неисправимая ошибка платформы.
INJECT_ERRTYPE_PLATFORM_UNCORRECTABLEFATAL
Неустранимая неустранимая ошибка платформы.
[in] Parameter1
Универсальный параметр, содержащий дополнительные данные, передаваемые приложением управления WHEA, которое внедряет ошибку.
[in] Parameter2
Универсальный параметр, содержащий дополнительные данные, передаваемые приложением управления WHEA, которое внедряет ошибку.
[in] Parameter3
Универсальный параметр, содержащий дополнительные данные, передаваемые приложением управления WHEA, которое внедряет ошибку.
[in] Parameter4
Универсальный параметр, содержащий дополнительные данные, передаваемые приложением управления WHEA, которое внедряет ошибку.
Возвращаемое значение
Функция обратного вызова InjectError подключаемого модуля PSHED возвращает один из следующих кодов NTSTATUS:
Код возврата | Описание |
---|---|
STATUS_SUCCESS | Ошибка успешно внедрена в аппаратную платформу. |
STATUS_UNSUCCESSFUL | Произошла ошибка. Для внедренных ошибок, которые являются неустранимыми или иным образом неустранимыми, эта функция обратного вызова может не вернуться до того, как операционная система создаст проверка ошибок в ответ на ошибку. |
Комментарии
Подключаемый модуль PSHED, участвующий в внедрении ошибок, задает функции обратного вызова Callbacks.GetInjectionCapabilities и Callbacks.InjectErrorструктуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET , указывая на функции обратного вызова GetInjectionCapabilities и InjectError , когда подключаемый модуль вызывает функцию PshedRegisterPlugin для регистрации в PSHED. Подключаемый модуль PSHED также должен установить флаг PshedFAErrorInjection в элементе FunctionalAreaMask структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.
Когда приложение управления WHEA отправляет запрос на внедрение ошибки оборудования, ядро Windows вызывает PSHED, чтобы внедрить ошибку на аппаратную платформу. Если подключаемый модуль PSHED зарегистрирован для участия в внедрении ошибок, PSHED вызывает функцию обратного вызова InjectError подключаемого модуля PSHED для выполнения операции внедрения ошибок.
Приложение управления WHEA, которое внедряет ошибку, может передавать дополнительные данные, относящиеся к ошибкам, в функцию обратного вызова InjectError подключаемого модуля PSHED с помощью параметров Parameter1 – Parameter4. Например, в системах на основе Itanium для некоторых операций внедрения ошибок требуется сопутствующий адрес. В этом случае приложение управления WHEA может передать адрес функции обратного вызова InjectError подключаемого модуля PSHED, используя один из этих параметров.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в Windows Server 2008, Windows Vista с пакетом обновления 1 (SP1) и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ntddk.h (включая Ntddk.h) |
IRQL | IRQL = DISPATCH_LEVEL |