PSHED_PI_WRITE_ERROR_RECORD回调函数 (ntddk.h)

PSHED 插件的 WriteErrorRecord 回调函数将错误记录写入系统的持久性数据存储。

语法

PSHED_PI_WRITE_ERROR_RECORD PshedPiWriteErrorRecord;

NTSTATUS PshedPiWriteErrorRecord(
  [in, out, optional] PVOID PluginContext,
  [in]                ULONG Flags,
  [in]                ULONG RecordLength,
  [in]                PWHEA_ERROR_RECORD ErrorRecord
)
{...}

参数

[in, out, optional] PluginContext

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

[in] Flags

影响写入操作的标志的按位 OR 组合。 可能的标志是:

WHEA_WRITE_FLAG_DUMMY

写入操作是虚拟写入操作。 不会将任何数据写入系统的永久性数据存储。

[in] RecordLength

ErrorRecord 参数指向的错误记录的大小(以字节为单位)。

[in] ErrorRecord

指向 WHEA_ERROR_RECORD 结构的指针,该结构描述要写入系统永久性数据存储的错误记录。

返回值

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

返回代码 说明
STATUS_SUCCESS 错误记录已成功写入系统的永久性数据存储。
STATUS_UNSUCCESSFUL 出现了错误。

注解

参与错误记录持久性的 PSHED 插件设置 Callbacks.WriteErrorRecord, 当插件调用 PshedRegisterPlugin 函数以向 PSHED 注册自身时,WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 Callbacks.ReadErrorRecord 和 Callbacks.ClearErrorRecord 成员指向WriteErrorRecord、ReadErrorRecordClearErrorRecord 回调函数。 PSHED 插件还必须在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的 FunctionalAreaMask 成员中设置 PshedFAErrorRecordPersistence 标志。

每当存在致命错误或其他无法恢复的错误情况时,Windows 内核会调用 PSHED,将错误记录写入系统的持久性数据存储,以便在系统重启时保留错误记录。 如果注册 PSHED 插件以参与错误记录持久性,则 PSHED 会调用 PSHED 插件的 WriteErrorRecord 回调函数来执行写入操作。 用于将错误记录写入系统永久性数据存储的机制是特定于平台的。

要求

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

另请参阅

ClearErrorRecord

PshedRegisterPlugin

ReadErrorRecord

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET