<div dir="ltr">Hi Klaus,<div><br></div><div>Thank you for your organized answer. Basically I am planning to write a VM introspection module for LibVMI. LibVMI does it for XEN. XEN by default has some exposed API to take advantage of VM introspection. I was looking into that source code of LibVMI and was exploring if something similar can be done for Virtual Box. As a start point, I started looking into VBoxVMM and some of the functions seemed to be analogous to the API's from XEN which made me believe I could use similar approach for VBox too.</div><div><br></div><div>Having said that, I would like to know if there is any support from VBox for VM introspection and which part of the source code should I look into in case I've to add the support from scratch.</div><div><br></div><div>Thanks</div><div>Azizul Hakim<br><br>------------------------------<br><br>Message: 6<br>Date: Wed, 19 Apr 2017 19:52:06 +0200<br>From: Klaus Espenlaub <<a href="mailto:klaus.espenlaub@oracle.com">klaus.espenlaub@oracle.com</a>><br>To: <a href="mailto:vbox-dev@virtualbox.org">vbox-dev@virtualbox.org</a><br>Subject: Re: [vbox-dev] How to Initialize PUVM object from VM<br>        UUID/name<br>Message-ID: <<a href="mailto:6a980edb-fc3d-c037-9467-4f056f425cf3@oracle.com">6a980edb-fc3d-c037-9467-<wbr>4f056f425cf3@oracle.com</a>><br>Content-Type: text/plain; charset=windows-1252; format=flowed<br><br>Hello Azizul,<br><br>On 19.04.2017 15:32, Azizul Hakim wrote:<br>> I'm doing some research on VirtualBox VMM. I'm trying to call some VMM<br>> functions from my library. Basically I was trying to call VMR3Suspend<br>> function and it takes an instance of PUVM. PUVM is only initialized<br>> during the creation of a VM. Which means I can't suspend a VM unless I<br>> created it. I was just wondering if there is some function which will<br>> initialize an instance of PUVM given its UUID/name.<br><br>There must be another way (it doesn't have to be calling the official<br>C++ API which offers a method to pause a VM, which internally calls<br>VMR3Suspend). Your code must be located in the VM process anyway, so it<br>should have some starting point (and no, there's no function call to<br>calculate PUVM from the VM UUID/name).<br><br>Who's calling your code? You should be able to get what you need...<br><br>> Because of the type of my work, I can not do it using other VBox tools.<br>> I've to do it through the VMM. Any guideline is much appreciated.<br><br>Too little information to help, I'm afraid.<br><br>Klaus<br><br>> Best<br>> Azizul Hakim<br></div></div>