Thanks for the reply! 

I tried using PGMPhysGCPtr2GCPhys, but the returned value always seems to yield 
an error i.e. RT_SUCCESS(rc) never holds. I do not see what I am doing wrong.

Also, I tried using PGMR3DbgWriteGCPtr and I also have the same problem. 
Perhaps its because of the flags I am passing. Which flags should I pass to 
this function?

Could you please provide a working example if possible on how to properly call 
these functions?

Thanks for your helpful advice!

On Sat, Feb 13, 2010 at 3:25 PM, Knut St. Osmundsen <b...@sun.com> wrote:
> On Feb 13, 2010, at 5:46 AM, mgofm...@binghamton.edu wrote:
>
>> Greetings,
>>
>> I have a question regarding how to translate between different types of 
>> memory addresses in VirtualBox. I am looking for ways to translate from:
>>
>> * Guest Virtual Address ---> Guest Physical Address
> -> PGMPhysGCPtr2GCPhys
>
>> * Guest Physical ---> Guest Virtual
> -> No API for this.
>
> The simple implementation of this translation would be to scan all known 
> guest page tables, which would probably be extremely slow. We could maybe 
> speed it up a bit by first checking the shadowed page table backrefs for the 
> guest physical page, but the shadowed page tables lack information about 
> their relation to virtual addresses (they can be mapped into several paging 
> hierarchies) and the information we find there might easily be outdated or 
> for a different memory context. This

_______________________________________________
vbox-dev mailing list
vbox-dev@virtualbox.org
http://vbox.innotek.de/mailman/listinfo/vbox-dev

Reply via email to