PSHED_PI_INJECT_ERROR回调函数 (ntddk.h)
PSHED 插件的 InjectError 回调函数将错误注入硬件平台。
语法
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
指向上下文区域的指针,当 PSHED 插件调用 PshedRegisterPlugin 函数以向 PSHED 注册自身时,在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 Context 成员中指定的上下文区域。
[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 管理应用程序传递的其他数据。
返回值
PSHED 插件的 InjectError 回调函数返回以下 NTSTATUS 代码之一:
返回代码 | 说明 |
---|---|
STATUS_SUCCESS | 错误已成功注入硬件平台。 |
STATUS_UNSUCCESSFUL | 出现了错误。 对于严重或无法恢复的注入错误,在操作系统生成 bug 检查响应错误条件之前,此回调函数可能不会返回。 |
注解
参与错误注入的 PSHED 插件将 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 Callbacks.GetInjectionCapabilities 和 Callbacks.InjectError 成员设置为在插件调用 PshedRegisterPlugin 函数以向 PSHED 注册自身时指向其 GetInjectionCapabilities 和 InjectError 回调函数。 PSHED 插件还必须在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 FunctionalAreaMask 成员中设置 PshedFAErrorInjection 标志。
当 WHEA 管理应用程序发出注入硬件错误的请求时,Windows 内核将调用 PSHED 以将错误注入硬件平台。 如果注册 PSHED 插件以参与错误注入,则 PSHED 会调用 PSHED 插件的 InjectError 回调函数来执行错误注入操作。
注入错误的 WHEA 管理应用程序可以使用参数 Parameter1 到 Parameter4 将其他特定于错误的数据传递到 PSHED 插件的 InjectError 回调函数。 例如,在基于 Itanium 的系统上,某些错误注入操作需要随附的地址。 在这种情况下,WHEA 管理应用程序可以使用以下参数之一将地址传递给 PSHED 插件的 InjectError 回调函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Server 2008、Windows Vista SP1 及更高版本的 Windows 中受支持。 |
目标平台 | 桌面 |
标头 | ntddk.h (包括 Ntddk.h) |
IRQL | IRQL = DISPATCH_LEVEL |