1. A method to share memory resources between first and second virtual machines, the method comprising: enabling sharing of a memory page of a source domain executing on a first virtual machine with a destination domain executing on a second virtual machine; allocating a virtual address mapping region for the memory page of the source domain in a virtual address space of the destination domain by allocating a memory range in the virtual address space, the memory range mapped to a base virtual address of the source domain, and the base virtual address received in an initialization request from the destination domain; adding an address translation entry for the memory page in a table; operating a hypervisor to service a grant request from the source domain to provide the destination domain and a hardware device with access to the memory page of the source domain; and maintaining the allocated virtual address mapping region in the virtual address space until a revoke request is received at the hypervisor from the source domain, the revoke request including a translation table handle field and a page handle field to deny attempts to access the memory page when it is unshared.