Expand Minimize

HV_X64_MEMORY_INTERCEPT_MESSAGE structure

The HV_X64_MEMORY_INTERCEPT_MESSAGE structure describes a memory access message.

Syntax


typedef struct _HV_X64_MEMORY_INTERCEPT_MESSAGE {
  HV_X64_INTERCEPT_MESSAGE_HEADER Header;
  HV_CACHE_TYPE                   CacheType;
  UINT8                           InstructionByteCount;
  HV_X64_MEMORY_ACCESS_INFO       MemoryAccessInfo;
  UINT16                          Reserved1;
  UINT64                          GuestVirtualAddress;
  UINT64                          GuestPhysicalAddress;
  UINT8                           InstructionBytes[16];
  HV_X64_SEGMENT_REGISTER         DsSegment;
  HV_X64_SEGMENT_REGISTER         SsSegment;
  UINT64                          Rax;
  UINT64                          Rcx;
  UINT64                          Rdx;
  UINT64                          Rbx;
  UINT64                          Rsp;
  UINT64                          Rbp;
  UINT64                          Rsi;
  UINT64                          Rdi;
  UINT64                          R8;
  UINT64                          R9;
  UINT64                          R10;
  UINT64                          R11;
  UINT64                          R12;
  UINT64                          R13;
  UINT64                          R14;
  UINT64                          R15;
} HV_X64_MEMORY_INTERCEPT_MESSAGE, *PHV_X64_MEMORY_INTERCEPT_MESSAGE;

Members

Header

An HV_X64_INTERCEPT_MESSAGE_HEADER structure that describes the header for the memory access message.

CacheType

An HV_CACHE_TYPE-typed value that identifies the cache type of the memory access message.

InstructionByteCount

An 8-bit value that specifies the number of instruction bytes that are provided in the InstructionBytes member.

MemoryAccessInfo

An HV_X64_MEMORY_ACCESS_INFO union that provides information about the memory access message.

Reserved1

Reserved. Do not use.

GuestVirtualAddress

A 64-bit value that specifies the guest virtual address of the access that was intercepted. This member is valid if the GvaValid flag is set in the MemoryAccessInfo member.

GuestPhysicalAddress

A 64-bit value that specifies the guest physical address of the access that was intercepted.

InstructionBytes

An array of bytes that make up the instruction stream for the memory access message. The number of valid bytes is specified by the InstructionByteCount member.

DsSegment

An HV_X64_SEGMENT_REGISTER structure that describes the current data segment (DS) for the memory access message.

SsSegment

An HV_X64_SEGMENT_REGISTER structure that describes the current stack segment (SS) for the memory access message.

Rax

The value for the virtual processor's 64-bit RAX 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.

Rbx

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

Rsp

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

Rbp

The value for the virtual processor's 64-bit RBP 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.

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.

Remarks

HV_X64_MEMORY_INTERCEPT_MESSAGE is used for memory intercepts, GPA-not-present intercepts, and SPA-access-violation intercepts.

For more information about how memory access messages are encoded, see Memory Access Messages.

Requirements

Header

Hvgdk.h (include Hvgdk.h)

See also

HV_CACHE_TYPE
HV_X64_INTERCEPT_MESSAGE_HEADER
HV_X64_MEMORY_ACCESS_INFO
HV_X64_SEGMENT_REGISTER

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.