I/O operations between a virtual machine (VM) and a device external to the
VM are monitored by a virtual machine monitor (VMM). Data passing between
the VM and the external device is transformed by the VMM, in some cases
only when a predetermined filtering or triggering condition is met.
Because the VMM, and thus the transformation operation, is transparent to
the VM, the transformation cannot be prevented or undone or even affected
by any action by a user of the VM. Examples of the non-defeatable
transformation of I/O data include generating display overlays such as
banners, masking out portions of a display, encryption, compression and
network shaping such as bandwidth limiting.