CPUID Intercept Message
A CPUID intercept message is delivered by the hypervisor when a virtual processor executes a CPUID instruction and the parent partition previously called the HvInstallIntercept hypercall function to install an intercept on such instructions.
The format of CPUID intercept messages is shown in the following table. An HV_X64_CPUID_INTERCEPT_MESSAGE structure is used to encode a CPUID intercept message.
Message Header | |||||
0 |
MessageType (4 bytes) |
Rsvd (3 bytes) |
PayloadSize (1 byte) | ||
8 |
SourcePartition (8 bytes) | ||||
CPUID Intercept Payload | |||||
16 |
VpIndex (4 bytes) |
InstLen (1 byte) |
(1 byte) |
ExecutionState (2 bytes) | |
24 |
CsSegment[0] (8 bytes) | ||||
32 |
CsSegment[1] (8 bytes) | ||||
40 |
Rip (8 bytes) | ||||
48 |
Rflags (8 bytes) | ||||
56 |
Rax (8 bytes) | ||||
64 |
Rcx (8 bytes) | ||||
72 |
Rdx (8 bytes) | ||||
80 |
Rbx (8 bytes) | ||||
88 |
DefaultResultRax (8 bytes) | ||||
96 |
DefaultResultRcx (8 bytes) | ||||
104 |
DefaultResultRdx (8 bytes) | ||||
112 |
DefaultResultRbx (8 bytes) |
The following list describes the fields of CPUID intercept messages:
- Rax-Rbx
-
The values in the corresponding registers when the CPUID instruction is executed.
- DefaultResultRax-DefaultResultRbx
-
The default return values that the hypervisor would have returned in response to the CPUID instruction if the intercept had not been requested. The intercept handler is free to override these default values.
Send comments about this topic to Microsoft
Build date: 11/16/2013