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

指向在 WHEA_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 管理应用程序传递的其他数据。

返回值

PSHED 插件的 InjectError 回调函数返回以下 NTSTATUS 代码之一:

返回代码 描述
STATUS_SUCCESS 错误已成功注入硬件平台。
STATUS_UNSUCCESSFUL 发生错误。 对于致命或不可恢复的注入错误,在作系统生成错误检查以响应错误条件之前,此回调函数可能不会返回。

言论

参与错误注入的 PSHED 插件将 Callbacks.GetInjectionCapabilitiesCallbacks.InjectErrorWHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的成员指向其 当插件调用 PshedRegisterPlugin 函数以向 PSHED 注册自身时,GetInjectionCapabilitiesInjectError 回调函数。 PSHED 插件还必须在WHEA_PSHED_PLUGIN_REGISTRATION_PACKET结构的 FunctionalAreaMask 成员中设置 PshedFAErrorInjection 标志。

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

注入错误的 WHEA 管理应用程序可以通过通过 Parameter4的参数将特定于错误的附加数据传递给 PSHED 插件的 InjectError 回调函数 Parameter1。 例如,在基于 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