I/O Port Accesses
The behavior of instructions that access I/O ports might differ from the behavior of the same instructions on a logical processor. This fact is the result of the hypervisor's processor intercept mechanism.
The following pseudo-code defines the different behaviors that can result from an access by a virtual processor to I/O ports (through the instructions IN, OUT, INS, or OUTS). Note that each of these instructions has an operand size of 1, 2, or 4 bytes. As such, one or more I/O ports are effectively accessed.
if any of the accessed ports is virtualized by the hypervisor for this access type { Access is emulated } else if the I/O Port intercept is installed { Suspend VP and send message to parent (I/O Port Intercept) } else if the partition is a non-root partition { Discard writes; return all bits set for reads } else { I/O port access proceeds normally }
Send comments about this topic to Microsoft
Build date: 11/16/2013
Show: