1. A method for enabling inter-process communication between a first application and a second application, the first application running within a first virtual machine (VM) having a first guest memory in a host and the second application running within a second VM having a second guest memory in the host, the method comprising: receiving a request from the first application to create a shared memory region in physical memory of the host; as a response to the request from the first application, creating the shared memory region in physical memory of the host, a size of the shared memory region being agreed upon by the first and second applications, the shared memory region being associated with a handle and being mapped to a portion of the first guest memory of the first VM, the first guest memory of the first VM being virtualized memory of the physical memory of the host for the first VM; receiving a request to attach the shared region of memory to the second guest memory of the second VM, the second guest memory of the second VM being virtualized memory of the physical memory of the host for the second VM, the request being received by a framework from the second application, the request including the handle that uniquely identifies the shared region of memory and including an identification of the guest memory of the second VM, the framework being a component of a virtualization software in the host; identifying a list of one or more physical memory pages in the physical memory of the host as a first portion of the shared memory region that corresponds to the first guest memory of the first VM; identifying a second list of one or more physical memory pages in the physical memory of the host as a second portion of the shared memory region that corresponds to the second guest memory of the second VM; and mapping a portion of the guest memory of the second VM to the shared memory region in the physical memory of the host.