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) in a host and the second application running within a second VM 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, the shared memory region being associated with a handle and being mapped to guest memory of the first VM; receiving a request to attach the shared region of memory to guest memory of 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 defining the shared region that corresponds to the handle; and mapping the guest memory of the second VM to the shared memory region in physical memory.