WHEA_XPF_CONTEXT_INFO 结构 (ntddk.h)

WHEA_XPF_CONTEXT_INFO 结构描述 x86 或 x64 处理器的处理器上下文信息。

语法

typedef struct _WHEA_XPF_CONTEXT_INFO {
  USHORT    RegisterContextType;
  USHORT    RegisterDataSize;
  ULONG     MSRAddress;
  ULONGLONG MmRegisterAddress;
} WHEA_XPF_CONTEXT_INFO, *PWHEA_XPF_CONTEXT_INFO;

成员

RegisterContextType

结构描述的处理器上下文信息的类型。 可能的值为:

说明
XPF_CONTEXT_INFO_UNCLASSIFIEDDATA 缓冲区包含原始的未格式化数据。 在 RegisterDataSize 成员中指定数据字节数。
XPF_CONTEXT_INFO_MSRREGISTERS 缓冲区包含一个由 64 位计算机检查和其他特定于计算机的寄存器的数组。 数组中的寄存器数通过将 RegisterDataSize 成员中指定的大小除以 8 来确定。
XPF_CONTEXT_INFO_32BITCONTEXT 32 位执行上下文寄存器。 缓冲区包含WHEA_X86_REGISTER_STATE结构。
XPF_CONTEXT_INFO_64BITCONTEXT 64 位执行上下文寄存器。 缓冲区包含WHEA_X64_REGISTER_STATE结构。
XPF_CONTEXT_INFO_FXSAVE 缓冲区包含 FXSAVE 指令保存的浮点寄存器。 有关 FXSAVE 指令的详细信息,请参阅 Intel 64 和 IA-32 体系结构软件开发人员手册
XPF_CONTEXT_INFO_32BITDEBUGREGS 32 位调试寄存器。 缓冲区包含包含 8 个 64 位值的数组,这些值包含 32 位调试寄存器 DR0-DR7。 每个 32 位调试寄存器都从零扩展到 64 位。
XPF_CONTEXT_INFO_64BITDEBUGREGS 64 位调试寄存器。 缓冲区包含包含 8 个 64 位值的数组,这些值包含 64 位调试寄存器 DR0-DR7。
XPF_CONTEXT_INFO_MMREGISTERS 缓冲区包含一个由 64 位内存映射寄存器的数组。 数组中的寄存器数通过将 RegisterDataSize 成员中指定的大小除以 8 来确定。

RegisterDataSize

RegisterData 成员中包含的寄存器数据的大小(以字节为单位)。

MSRAddress

计算机特定寄存器的起始地址。 仅当 RegisterContextType 成员设置为 XPF_CONTEXT_INFO_UNCLASSIFIEDDATA 或 XPF_CONTEXT_INFO_MSRREGISTERS 时,此成员才包含有效数据。 对于所有其他类型的处理器上下文信息,此成员应包含零。

MmRegisterAddress

内存映射寄存器的起始内存地址。 仅当 RegisterContextType 成员设置为 XPF_CONTEXT_INFO_MMREGISTERS 时,此成员才包含有效数据。 对于所有其他类型的处理器上下文信息,此成员应包含零。

注解

WHEA_XPF_PROCESSOR_ERROR_SECTION 结构的 VariableInfo 成员包含零个或多个WHEA_XPF_CONTEXT_INFO结构,其中每个结构都描述与发生的处理器错误相关的特定上下文信息。 如果特定WHEA_XPF_CONTEXT_INFO结构的大小不是 16 字节的偶数倍数,则缓冲区中为结构分配的空间将填充设置为零的其他字节,以将分配的空间舍入为 16 个字节的偶数倍。

要求

要求
Header ntddk.h (包括 Ntddk.h)

另请参阅

WHEA_X64_REGISTER_STATE

WHEA_X86_REGISTER_STATE

WHEA_XPF_PROCESSOR_ERROR_SECTION