<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Hi Brad,</div><div><br></div><div>sorry for the late answer. For a start you can read up on PDM here:</div><div><a href="https://www.virtualbox.org/browser/vbox/trunk/src/VBox/VMM/VMMR3/PDM.cpp">https://www.virtualbox.org/browser/vbox/trunk/src/VBox/VMM/VMMR3/PDM.cpp</a></div><div><br></div><div>To see what your DLL has to provide look into <a href="https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Devices/build/VBoxDD.cpp">https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Devices/build/VBoxDD.cpp</a></div><div>Basically your DLL has to export a function called VBoxDevicesRegister to register new device emulations and VBoxDriversRegister</div><div>to register new drivers. To register new virtual USB devices it has to export VBoxUsbRegister.</div><div><br></div><div>To get the DLL loaded on VM startup you have to add special CFGM keys. For new device emulations you need something like</div><div>/PDM/Devices/<id>/Path <path/to/your/dll> where <id> is a unique identifier. Using the base name of the DLL is a good practice. </div><div>Registering new drivers is similar, just replace Devices with Drivers. To get a better idea of what you need you can just</div><div>open a VBox.log file and search for /PDM/Devices or /PDM/Drivers there.</div><div><br></div><div>Regards,</div><div>Alexander Eichner</div><br><div><div>On 07.01.2013 01:53, Brad Keifenheim wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div><div><div><div>Hello,<br><br></div>I'm evaluating creating a PCI device to emulate some custom hardware for a virtual machine. <br><br>My <a href="http://www.cs.montana.edu/%7Eandrew.hamilton/cs560/VirtualBox/Introduction.html" target="_blank">research</a> has led me to PDM: <br>

<br><i>PDM (Pluggable Device Manager), an abstract interface between
        the VMM and emulated devices which separates device implementations
        from VMM internals and makes it easy to add new emulated devices.
        Through PDM, third-party developers can add new virtual devices to
        VirtualBox without having to change VirtualBox itself.</i><br><br></div>Can someone point me to an example that shows how to setup a library that gets loaded at runtime and provides the required API? <br><br>Also, is there a def or header file somewhere that outlines how to setup the dll?<br>

<br></div>Thank you in advance for the help.<br><br></div>Brad</div>
_______________________________________________<br>vbox-dev mailing list<br><a href="mailto:vbox-dev@virtualbox.org">vbox-dev@virtualbox.org</a><br><a href="https://www.virtualbox.org/mailman/listinfo/vbox-dev">https://www.virtualbox.org/mailman/listinfo/vbox-dev</a><br></blockquote></div><br><div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">ORACLE Deutschland B.V. & Co. KG   Alexander Eichner<br>Werkstrasse 24                     Engineer, VirtualBox<br>71384 Weinstadt, Germany           <a href="mailto:frank.mehnert@oracle.com">mailto:alexander.eichner@oracle.com</a><br><br>Hauptverwaltung: Riesstr. 25, D-80992 München<br>Registergericht: Amtsgericht München, HRA 95603</div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Geschäftsführer: Jürgen Kunz<br><br>Komplementärin: ORACLE Deutschland Verwaltung B.V.<br>Rijnzathe 6, 3454PV De Meern, Niederlande<br>Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697<br>Geschäftsführer: Alexander van der Ven, Astrid Kepper, Val Maher</div>
</div>
<br></body></html>