pub struct XSTATE_CONFIG_FEATURE_MSC_INFO {
    pub size_of_info: u32,
    pub context_size: u32,
    pub enabled_features: u64,
    pub features: [XSTATE_FEATURE; 64],
}
Expand description

A descriptor of the XSAVE context, which extends a normal x86/x64 context.

The sections of this context are dumps of some of the CPUs registers (e.g. one section might contain the contents of the SSE registers).

Intel documents its XSAVE entries in Volume 1, Chapter 13 of the “Intel 64 and IA-32 Architectures Software Developer’s Manual”.

The XSTATE Format in Minidumps

This format is slightly messed up in the context of minidumps because it’s grafted onto Microsoft’s own formats. Here’s what’s important to know:

  • The “Cpu Context” and the “XSAVE context” are in fact the same regions of memory.

  • Whether XSTATE is present or not, the classic layouts of CONTEXT_X86 and CONTEXT_AMD64 both apply – xstate will only add stuff after or refine your understanding of memory in the existing layout. So you can safely ignore the existence of XSTATE, but you might be missing new info.

  • AMD64 doesn’t have a standard way to save general purpose registers, so the first 256 bytes of CONTEXT_AMD64 are just however microsoft decided to save the registers, and will not be referred to by the XSTATE.

!!! THIS PART IS IMPORTANT !!!

Fields

size_of_info: u32

The size of this struct.

context_size: u32

The size of the XSAVE context.

enabled_features: u64

The bit enabled_features[i] indicates that features[i] contains valid data.

features: [XSTATE_FEATURE; 64]

The offset and size of each XSAVE entry inside the XSAVE context.

Implementations

Gets an iterator of all the enabled features.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.