1. In a computer system comprising a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM) having a first application and a guest operating system (OS) running therein, a method of providing the VMM with access to virtual memory comprising: the VMM receiving a hypercall from the first application running in the VM; the VMM determining if it has access to a first virtual memory address identified in the hypercall; if the VMM determines that it does not have access to the first virtual memory address identified in the hypercall, the VMM returning a first message to the first application with an identification of the first virtual memory address to which the VMM does not have access; the first application receiving the first message returned from the VMM and implementing an operation to cause the identified first virtual memory address to be accessible by the VMM; and the first application re-invoking the hypercall to the VMM.