PSHED_PI_CLEAR_ERROR_STATUS回调函数 (ntddk.h)

PSHED 插件的 ClearErrorStatus 回调函数可清除任何平台特定的错误状态寄存器,以用于更正硬件错误条件。

语法

PSHED_PI_CLEAR_ERROR_STATUS PshedPiClearErrorStatus;

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

参数

[in, out, optional] PluginContext

指向当 PSHED 插件调用 PshedRegisterPlugin 函数以向 PSHED 注册自身时,在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 Context 成员中指定的上下文区域的指针。

[in] ErrorSource

指向 WHEA_ERROR_SOURCE_DESCRIPTOR 结构的指针,该结构描述报告硬件错误的错误源。

[in] BufferLength

ErrorRecord 参数指向的缓冲区的大小(以字节为单位)。

[in] ErrorRecord

指向描述错误记录 的WHEA_ERROR_RECORD 结构的指针。 错误记录描述了清除特定于平台的错误状态寄存器的已更正硬件错误条件。

返回值

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

返回代码 说明
STATUS_SUCCESS 已成功清除更正的硬件错误条件的特定于平台的错误状态寄存器。
STATUS_NOT_SUPPORTED PSHED 插件不支持指定的错误源。
STATUS_UNSUCCESSFUL 出现了错误。

注解

参与错误信息检索的 PSHED 插件设置 Callbacks.RetrieveErrorInfo插件调用 PshedRegisterPlugin 函数以向 PSHED 注册自身时,WHEA_PSHED_PLUGIN_REGISTRATION_PACKET结构的 Callbacks.FinalizeErrorRecordCallbacks.ClearErrorStatus 成员指向其 RetrieveErrorInfoFinalizeErrorRecordClearErrorStatus 回调函数。 PSHED 插件还必须在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 FunctionalAreaMask 成员中设置 PshedFAErrorInfoRetrieval 标志。

对于更正的硬件错误条件,Windows 内核会调用 PSHED 以清除错误源的错误状态寄存器,这是处理错误的最后一步。 如果注册 PSHED 插件以参与错误信息检索,则 PSHED 会调用 PSHED 插件的 ClearErrorStatus 回调函数,以便 PSHED 插件可以清除任何其他特定于平台的错误状态寄存器。

要求

要求
目标平台 桌面
标头 ntddk.h (包括 Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

另请参阅

FinalizeErrorRecord

PshedRegisterPlugin

RetrieveErrorInfo

WHEA_ERROR_RECORD

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET