Expand Minimize

HV_X64_CONTEXT structure

The HV_X64_CONTEXT structure describes a context.

Syntax


typedef struct _HV_X64_CONTEXT {
  UINT64                  InitialApicId;
  UINT64                  Rax;
  UINT64                  Rbx;
  UINT64                  Rcx;
  UINT64                  Rdx;
  UINT64                  Rsi;
  UINT64                  Rdi;
  UINT64                  Rbp;
  UINT64                  Rsp;
  UINT64                  R8;
  UINT64                  R9;
  UINT64                  R10;
  UINT64                  R11;
  UINT64                  R12;
  UINT64                  R13;
  UINT64                  R14;
  UINT64                  R15;
  UINT64                  Rip;
  UINT64                  Rflags;
  UINT64                  Cr0;
  UINT64                  Cr2;
  UINT64                  Cr3;
  UINT64                  Cr4;
  UINT64                  Cr8;
  UINT64                  Efer;
  UINT64                  Xfem;
  UINT64                  Dr0;
  UINT64                  Dr1;
  UINT64                  Dr2;
  UINT64                  Dr3;
  UINT64                  Dr6;
  UINT64                  Dr7;
  HV_X64_TABLE_REGISTER   Idtr;
  HV_X64_TABLE_REGISTER   Gdtr;
  HV_X64_SEGMENT_REGISTER Cs;
  HV_X64_SEGMENT_REGISTER Ds;
  HV_X64_SEGMENT_REGISTER Es;
  HV_X64_SEGMENT_REGISTER Fs;
  HV_X64_SEGMENT_REGISTER Gs;
  HV_X64_SEGMENT_REGISTER Ss;
  HV_X64_SEGMENT_REGISTER Tr;
  HV_X64_SEGMENT_REGISTER Ldtr;
  UINT64                  KernelGsBase;
  UINT64                  Star;
  UINT64                  Lstar;
  UINT64                  Cstar;
  UINT64                  Sfmask;
  UINT64                  SysenterCs;
  UINT64                  SysenterEip;
  UINT64                  SysenterEsp;
  UINT64                  MsrCrPat;
  UINT64                  MsrMtrrCap;
  UINT64                  MsrMtrrDefType;
  UINT64                  MsrMtrrFixed[11];
  UINT64                  MsrMtrrVariableBase[8];
  UINT64                  MsrMtrrVariableMask[8];
  UINT32                  LocalApicId;
  UINT32                  LocalApicVersion;
  UINT32                  LocalApicLdr;
  UINT32                  LocalApicDfr;
  UINT32                  LocalApicSpurious;
  UINT32                  LocalApicIcrLow;
  UINT32                  LocalApicIcrHigh;
  UINT32                  LocalApicIsr[8];
  UINT32                  LocalApicTmr[8];
  UINT32                  LocalApicLvtTimer;
  UINT32                  LocalApicLvtPerfmon;
  UINT32                  LocalApicLvtLint0;
  UINT32                  LocalApicLvtLint1;
  UINT32                  LocalApicCurrentCount;
  UINT32                  LocalApicInitialCount;
  UINT32                  LocalApicDivider;
  UINT64                  LocalApicBaseMsr;
  union {
    HV_X64_FX_REGISTERS FxRegisters;
    HV_X64_X_REGISTERS  XRegisters;
  };
} HV_X64_CONTEXT, *PHV_X64_CONTEXT;

Members

InitialApicId

The initial APIC identifier pseudo register. This value is returned by CPUID.

Rax

The value for the virtual processor's 64-bit RAX general-purpose register.

Rbx

The value for the virtual processor's 64-bit RBX general-purpose register.

Rcx

The value for the virtual processor's 64-bit RCX general-purpose register.

Rdx

The value for the virtual processor's 64-bit RDX general-purpose register.

Rsi

The value for the virtual processor's 64-bit RSI general-purpose register.

Rdi

The value for the virtual processor's 64-bit RDI general-purpose register.

Rbp

The value for the virtual processor's 64-bit RBP general-purpose register.

Rsp

The value for the virtual processor's 64-bit RSP general-purpose register.

R8

The value for the virtual processor's 64-bit R8 general-purpose register.

R9

The value for the virtual processor's 64-bit R9 general-purpose register.

R10

The value for the virtual processor's 64-bit R10 general-purpose register.

R11

The value for the virtual processor's 64-bit R11 general-purpose register.

R12

The value for the virtual processor's 64-bit R12 general-purpose register.

R13

The value for the virtual processor's 64-bit R13 general-purpose register.

R14

The value for the virtual processor's 64-bit R14 general-purpose register.

R15

The value for the virtual processor's 64-bit R15 general-purpose register.

Rip

The value for the virtual processor's 64-bit instruction pointer.

Rflags

The value for the virtual processor's 64-bit flags.

Cr0

The value for the CR0 control register.

Cr2

The value for the CR2 control register.

Cr3

The value for the CR3 control register.

Cr4

The value for the CR4 control register.

Cr8

The value for the CR8 control register. CR8 is only valid on 64-bit operating systems.

Efer

The value for the EFER virtualized model-specific register (MSR). EFER is an MSR, but it acts as an extension to CR4 and as such is treated as a processor register.

Xfem

The value for the XSAVE control register, which is only on platforms that support the XSAVE and XRSTOR feature. XCR0 is XFEM, which is the XSAVE feature enabled mask.

Dr0

The value for the DR0 debug register.

Dr1

The value for the DR1 debug register.

Dr2

The value for the DR2 debug register.

Dr3

The value for the DR3 debug register.

Dr6

The value for the DR6 debug register.

Dr7

The value for the DR7 debug register.

Idtr

An HV_X64_TABLE_REGISTER structure that describes an interrupt descriptor table.

Gdtr

An HV_X64_TABLE_REGISTER structure that describes a global descriptor table.

Cs

An HV_X64_SEGMENT_REGISTER structure that describes a CS segment selector register.

Ds

An HV_X64_SEGMENT_REGISTER structure that describes a DS segment selector register.

Es

An HV_X64_SEGMENT_REGISTER structure that describes an ES segment selector register.

Fs

An HV_X64_SEGMENT_REGISTER structure that describes an FS segment selector register.

Gs

The value for the virtual processor's 64-bit flags.

Ss

An HV_X64_SEGMENT_REGISTER structure that describes an SS segment selector register.

Tr

An HV_X64_TABLE_REGISTER structure that describes an interrupt descriptor table.

Ldtr

An HV_X64_SEGMENT_REGISTER structure that describes an LDTR segment selector register.

KernelGsBase

The value for the GSBASE virtualized model-specific register (MSR).

Star

The value for the STAR virtualized MSR.

Lstar

The value for the LSTAR virtualized MSR.

Cstar

The value for the CSTAR virtualized MSR.

Sfmask

The value for the SFMASK virtualized MSR.

SysenterCs

The value for the SYSENTERCS virtualized MSR.

SysenterEip

The value for the SYSENTEREIP virtualized MSR.

SysenterEsp

The value for the SYSENTERESP virtualized MSR.

MsrCrPat

The value for the MSRCRPAT virtualized MSR.

MsrMtrrCap

The value for the MSRMTRRCAP virtualized MSR.

MsrMtrrDefType

The value for the MSRMTRRDEFTYPE virtualized MSR.

MsrMtrrFixed

The value for the MSRMTRRFIXED virtualized MSR.

MsrMtrrVariableBase

The value for the MSRMTRRVARIABLEBASE virtualized MSR.

MsrMtrrVariableMask

The value for the MSRMTRRVARIABLEMASK virtualized MSR.

LocalApicId

The identifier value for the local APIC state.

LocalApicVersion

The version value for the local APIC state.

LocalApicLdr

The LDR value for the local APIC state.

LocalApicDfr

The DFR value for the local APIC state.

LocalApicSpurious

The spurious value for the local APIC state.

LocalApicIcrLow

The ICR low value for the local APIC state.

LocalApicIcrHigh

The ICR high value for the local APIC state.

LocalApicIsr

An array of eight ISR values for the local APIC state.

LocalApicTmr

An array of eight TMR values for the local APIC state.

LocalApicLvtTimer

The LVT timer value for the local APIC state.

LocalApicLvtPerfmon

The LVT perfmon value for the local APIC state.

LocalApicLvtLint0

The LVTLINT0 value for the local APIC state.

LocalApicLvtLint1

The LVTLINT1 value for the local APIC state.

LocalApicCurrentCount

The current count for the local APIC state.

LocalApicInitialCount

The initial count for the local APIC state.

LocalApicDivider

The divider value for the local APIC state.

LocalApicBaseMsr

The base MSR value for the local APIC state.

( unnamed union )
FXSAVE/FXSTOR.
FxRegisters

An HV_X64_FX_REGISTERS union that describes floating-point, MMX, and XMM registers that are formatted by FXSAVE and FXRSTOR.

XRegisters

An HV_X64_FX_REGISTERS union that describes floating-point, MMX, and XMM registers that are formatted by FXSAVE and FXRSTOR.

Remarks

Requirements

Header

Hvgdk.h (include Hvgdk.h)

See also

HV_X64_FX_REGISTERS
HV_X64_SEGMENT_REGISTER
HV_X64_TABLE_REGISTER
HV_X64_X_REGISTERS

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.