Patent ID: 8839237

Claim:
A method of communicating data in a virtualization enabled platform, the method comprising: allocating a first communication page to a first component executing in a first virtual machine (VM) of the platform, wherein an integrity measure module (IMM) of a Virtual Machine Monitor (VMM) verifies that a memory region of the first communication page is accessible by only the first component and the VMM, wherein the VMM provides virtualization hardware support for the platform, wherein allocating the first communication page to the first component includes the VMM creating a request object associated with the first communication page, the request object indicating a permissibility of a use of the first communication page, wherein allocating the first communication page to the first component is based on an authentication of the first component by the IMM, the authentication including: verification of a location in memory of a code image of the first component, the verification based on an expected location of the code image; or validation of an integrity of the code image; allocating a second communication page to a second component of the platform, the second component executing in a second VM of the platform, wherein the second communication page is accessible by both the second component and the VMM; detecting a VM exit initiated by the first component in order to cause a transition of control from the first VM to the VMM; in response to detecting the VM exit, the VMM detecting for a page fault error based on the request object to determine whether a requested access of the first communication page is to be allowed; and where the requested access of the first communication page is determined to be allowed, with the VMM: automatically accessing information stored in the memory region of the first communication page by the first component; and transferring data through a communication channel between the first component and the second component, including the VMM providing to the second communication page a copy of the information stored in the memory region of the first communication page by the first component.