Hypercall Atomicity and Ordering
Except where noted, the action that a hypercall performs is atomic both with respect to all other guest operating system operations (for example, instructions that are executed within a guest operating system) and all other hypercalls that are being executed on the system. A simple hypercall performs a single atomic action. A rep hypercall performs multiple, independent atomic actions.
Simple hypercalls that use hypercall continuation can involve multiple internal states that are externally visible. Such calls comprise multiple atomic operations.
Each hypercall action can read input parameters and possibly write results. The inputs to each action can be read at any granularity and at any time after the hypercall is made and before the action is executed. The results (that is, the output parameters) that are associated with each action can be written at any granularity and at any time after the action is executed and before the hypercall returns.
The guest operating system must avoid the examination and manipulation of any input or output parameters that are related to an executing hypercall. While a virtual processor that executes a hypercall will be incapable of doing so (as its guest operating system execution is suspended until the hypercall returns), there is nothing to prevent other virtual processors from doing so. Guest operating systems that behave this way might crash or cause corruption in their partition.
Send comments about this topic to Microsoft
Build date: 11/16/2013