WHEA_XPF_CONTEXT_INFO structure (ntddk.h)

The WHEA_XPF_CONTEXT_INFO structure describes processor context information for an x86 or x64 processor.

Syntax

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

Members

RegisterContextType

The type of processor context information described by the structure. Possible values are:

Value Description
XPF_CONTEXT_INFO_UNCLASSIFIEDDATA The buffer contains raw unformatted data. The number of bytes of data is specified in the RegisterDataSize member.
XPF_CONTEXT_INFO_MSRREGISTERS The buffer contains an array of 64-bit machine check and other machine-specific registers. The number of registers in the array is determined by dividing the size specified in the RegisterDataSize member by eight.
XPF_CONTEXT_INFO_32BITCONTEXT 32-bit execution context registers. The buffer contains a WHEA_X86_REGISTER_STATE structure.
XPF_CONTEXT_INFO_64BITCONTEXT 64-bit execution context registers. The buffer contains a WHEA_X64_REGISTER_STATE structure.
XPF_CONTEXT_INFO_FXSAVE The buffer contains the floating point registers as saved by the FXSAVE instruction. For more information about the FXSAVE instruction, see the Intel 64 and IA-32 Architectures Software Developer's Manual.
XPF_CONTEXT_INFO_32BITDEBUGREGS 32-bit debug registers. The buffer contains an array of eight 64-bit values that contain the 32-bit debug registers DR0-DR7. Each of the 32-bit debug registers are zero-extended to 64-bits.
XPF_CONTEXT_INFO_64BITDEBUGREGS 64-bit debug registers. The buffer contains an array of eight 64-bit values that contain the 64-bit debug registers DR0-DR7.
XPF_CONTEXT_INFO_MMREGISTERS The buffer contains an array of 64-bit memory mapped registers. The number of registers in the array is determined by dividing the size specified in the RegisterDataSize member by eight.

RegisterDataSize

The size, in bytes, of the register data that is contained in the RegisterData member.

MSRAddress

The starting address of the machine-specific registers. This member contains valid data only if the RegisterContextType member is set to either XPF_CONTEXT_INFO_UNCLASSIFIEDDATA or XPF_CONTEXT_INFO_MSRREGISTERS. For all other types of processor context information, this member should contain zero.

MmRegisterAddress

The starting memory address of the memory mapped registers. This member contains valid data only if the RegisterContextType member is set to XPF_CONTEXT_INFO_MMREGISTERS. For all other types of processor context information, this member should contain zero.

Remarks

The VariableInfo member of the WHEA_XPF_PROCESSOR_ERROR_SECTION structure contains zero or more WHEA_XPF_CONTEXT_INFO structures, each of which describes specific context information associated with the processor error that occurred. If the size of a particular WHEA_XPF_CONTEXT_INFO structure is not an even multiple of 16 bytes, the space that is allocated for the structure in the buffer will be padded with additional bytes that are set to zero to round the allocated space up to an even multiple of 16 bytes.

Requirements

Requirement Value
Header ntddk.h (include Ntddk.h)

See also

WHEA_X64_REGISTER_STATE

WHEA_X86_REGISTER_STATE

WHEA_XPF_PROCESSOR_ERROR_SECTION