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.GetInjectionCapabilitiesCallbacks.InjectError 成员设置为在插件调用 PshedRegisterPlugin 函数以向 PSHED 注册自身时指向其 GetInjectionCapabilitiesInjectError 回调函数。 PSHED 插件还必须在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 FunctionalAreaMask 成员中设置 PshedFAErrorInjection 标志。

当 WHEA 管理应用程序发出注入硬件错误的请求时,Windows 内核将调用 PSHED 以将错误注入硬件平台。 如果注册 PSHED 插件以参与错误注入,则 PSHED 会调用 PSHED 插件的 InjectError 回调函数来执行错误注入操作。

注入错误的 WHEA 管理应用程序可以使用参数 Parameter1Parameter4 将其他特定于错误的数据传递到 PSHED 插件的 InjectError 回调函数。 例如,在基于 Itanium 的系统上,某些错误注入操作需要随附的地址。 在这种情况下,WHEA 管理应用程序可以使用以下参数之一将地址传递给 PSHED 插件的 InjectError 回调函数。

要求

要求
最低受支持的客户端 在 Windows Server 2008、Windows Vista SP1 及更高版本的 Windows 中受支持。
目标平台 桌面
标头 ntddk.h (包括 Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

另请参阅

GetInjectionCapabilities

PshedRegisterPlugin

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET