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 |
|
---|
See also
Send comments about this topic to Microsoft
Build date: 11/16/2013