MSR Intercept Message
An MSR intercept message is delivered by the hypervisor when a virtual processor executes a RDMSR or WRMSR instruction and the parent partition previously called the HvInstallIntercept hypercall function to install an intercept on the specified MSR.
The format of MSR intercept messages is shown in the following table. An HV_X64_MSR_INTERCEPT_MESSAGE structure is used to encode a MSR intercept message.
Message Header | |||||
0 |
MessageType (4 bytes) |
Rsvd (3 bytes) |
PayloadSize (1 byte) | ||
8 |
SourcePartition (8 bytes) | ||||
MSR Intercept Payload | |||||
16 |
VpIndex (4 bytes) |
InstLen (1 byte) |
AccessType (1 byte) |
ExecutionState (2 bytes) | |
24 |
CsSegment[0] (8 bytes) | ||||
32 |
CsSegment[1] (8 bytes) | ||||
40 |
Rip (8 bytes) | ||||
48 |
Rflags (8 bytes) | ||||
56 |
MsrNumber (4 bytes) |
Rsvd (4 bytes) | |||
64 |
Rdx (8 bytes) | ||||
72 |
Rax (8 bytes) |
The following list describes the fields of MSR intercept messages:
- MsrNumber
-
The value in the RCX register that indicates the index of the MSR being accessed.
- Rdx
-
The value in the RDX register. For writes, this value represents the top half of the value being written to the MSR.
- Rax
-
The value in the RAX register. For writes, this value represents the bottom half of the value being written to the MSR.
Send comments about this topic to Microsoft
Build date: 11/16/2013