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:
© 2014 Microsoft. All rights reserved.