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:
