Hello Jaeyong, On 24/04/14 15:18, Jaeyong Yoo wrote: > While I'm reading the source, I found the following sequence of > function call: > > [In xpdm directory] VBoxMPHGSMIDpc () --> > VBoxHGSMIProcessHostQueue () --> > hgsmiHostCommandQueryProcess() --> > hgsmiHostCmdProcess () --> > HGSMIBufferProcess () --> > hgsmiBufferProcess () --> > HGSMIChannelHandlerCall () --> > pfnHandler() == > [Host side] vbvaChannelHandler > > It looks like a guest-side function (in VGA driver) VBoxMPHGSMIDpc > calls the host-side function (in VGA emulator) vbvaChannelHandler. > How is this possible since host and guest are in different address > space (if we are using nested paging table)? Or, I'm feeling like I > miss something.
I'm not too familiar with that code, but what makes you think that pfnHandler points to vbvaChannelHandler() inside the guest driver? See line 626 of src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPInternal.cpp: rc = HGSMIChannelRegister(&pCommon->hostCtx.channels, u8Channel, "VGA Miniport HGSMI channel", VBoxVbvaChannelGenericHandlerCB, pContexts, &s_OldHandler); So I would guess that VBoxVbvaChannelGenericHandlerCB() is what is being called. In any case there should be no direct calls from the guest to the host address space. Regards, Michael -- ORACLE Deutschland B.V. & Co. KG Michael Thayer Werkstrasse 24 VirtualBox engineering 71384 Weinstadt, Germany mailto:michael.tha...@oracle.com Hauptverwaltung: Riesstr. 25, D-80992 München Registergericht: Amtsgericht München, HRA 95603 Geschäftsführer: Jürgen Kunz Komplementärin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Geschäftsführer: Alexander van der Ven, Astrid Kepper, Val Maher _______________________________________________ vbox-dev mailing list vbox-dev@virtualbox.org https://www.virtualbox.org/mailman/listinfo/vbox-dev