ExtPack.h revision d6835eb59b58420b98d9adf7b7f1f8f5ef6187bc
* VirtualBox - Extension Pack Interface. * Copyright (C) 2010 Oracle Corporation * This file is part of VirtualBox Open Source Edition (OSE), as * you can redistribute it and/or modify it under the terms of the GNU * General Public License (GPL) as published by the Free Software * Foundation, in version 2 as it comes in the "COPYING" file of the * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * The contents of this file may alternatively be used under the terms * of the Common Development and Distribution License Version 1.0 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the * VirtualBox OSE distribution, in which case the provisions of the * CDDL are applicable instead of those of the GPL. * You may elect to license modified versions of this file under the * terms and conditions of either the GPL or the CDDL or both. /** Pointer to const helpers passed to the VBoxExtPackRegister() call. */ * Extension pack helpers passed to VBoxExtPackRegister(). * This will be valid until the module is unloaded. * This is set to VBOXEXTPACKHLP_VERSION. */ /** The VirtualBox full version (see VBOX_FULL_VERSION). */ /** The VirtualBox subversion tree revision. */ /** Explicit alignment padding, must be zero. */ /** Pointer to the version string (read-only). */ * Finds a module belonging to this extension pack. * @returns VBox status code. * @param pHlp Pointer to this helper structure. * @param pszName The module base name. * @param pszExt The extension. If NULL the default ring-3 * library extension will be used. * @param pszFound Where to return the path to the module on * @param cbFound The size of the buffer @a pszFound points to. /** End of structure marker (VBOXEXTPACKHLP_VERSION). */ /** Current version of the VBOXEXTPACKHLP structure. */ /** Pointer to the extension pack callback table. */ * Callback table returned by VBoxExtPackRegister. * This must be valid until the extension pack main module is unloaded. * This is set to VBOXEXTPACKREG_VERSION. */ * Hook for doing setups after the extension pack was installed. * This is called in the context of the per-user service (VBoxSVC). * @param pThis Pointer to this structure. * Hook for cleaning up before the extension pack is uninstalled. * This is called in the context of the per-user service (VBoxSVC). * @returns VBox status code. * @param pThis Pointer to this structure. * Hook for doing work before unloading. * This is called both in the context of the per-user service (VBoxSVC) and * in context of the VM process (VBoxC). * @param pThis Pointer to this structure. * @remarks The helpers are not available at this point in time. * @remarks This is not called on uninstall, then pfnUninstall will be the * Hook for changing the default VM configuration upon creation. * This is called in the context of the per-user service (VBoxSVC). * @returns VBox status code. * @param pThis Pointer to this structure. * @param pMachine The machine interface. * Hook for configuring the VMM for a VM. * This is called in the context of the VM process (VBoxC). * @returns VBox status code. * @param pThis Pointer to this structure. * @param pConsole The console interface. * @param pVM The VM handle. * Hook for doing work right before powering on the VM. * This is called in the context of the VM process (VBoxC). * @returns VBox status code. * @param pThis Pointer to this structure. * @param pConsole The console interface. * @param pVM The VM handle. * Hook for doing work after powering on the VM. * This is called in the context of the VM process (VBoxC). * @param pThis Pointer to this structure. * @param pConsole The console interface. * @param pVM The VM handle. Can be NULL. /** End of structure marker (VBOXEXTPACKREG_VERSION). */ /** Current version of the VBOXEXTPACKREG structure. */ * The VBoxExtPackRegister callback function. * PDM will invoke this function after loading a driver module and letting * the module decide which drivers to register and how to handle conflicts. * @returns VBox status code. * @param pHlp Pointer to the extension pack helper function * table. This is valid until the module is unloaded. * @param ppReg Where to return the pointer to the registration * structure containing all the hooks. This structure * be valid and unchanged until the module is unloaded * (i.e. use some static const data for it). * @param pszErr Error message buffer for explaining any failure. * @param cbErr The size of the error message buffer. /** Pointer to a FNVBOXEXTPACKREGISTER. */ /** The name of the main module entry point. */