
On Tue, 2016-10-11 at 10:58 -0400, Dawid Zamirski wrote:
On Tue, 2016-10-11 at 16:22 +0200, Martin Kletzander wrote:
On Wed, Sep 28, 2016 at 01:41:35PM -0400, Dawid Zamirski wrote:
I don't understand how vbox works, but if initializing g_pVBoxGlobalData does not make any connection, and ISession does (which would make sense), we could keep the global data around and add ISession for each connection. I guess that's something you're talking about below.
Neither I'm super familiar with vbox internals, but your suggestion sounds reasonable, so I'll dive into that code in vbox source to find out.
So after a quick glance at vbox initalization code, it seems that both IVirtualBox and ISession are reference counted global instances (g_VirtualBox and g_Session [1]) and both are allocated and released in pfnComInitialize [2] and pfnComUninitialize [3] implementation calls. As such I won't be able to separate out ISession instances to be per- connection while keeping global IVirtualBox reference. [1] https://github.com/mdaniel/virtualbox-org-svn-vbox-trunk/blob/maste r/src/VBox/Main/cbinding/VBoxCAPI.cpp#L46-L49 [2] https://github.com/mdaniel/virtualbox-org-svn-vbox-trunk/blob/maste r/src/VBox/Main/cbinding/VBoxCAPI.cpp#L480-L481 [3] https://github.com/mdaniel/virtualbox-org-svn-vbox-trunk/blob/maste r/src/VBox/Main/cbinding/VBoxCAPI.cpp#L493-L502