2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync/* $Id$ */
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync/** @file
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync * Windows Driver Manipulation API.
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync */
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync/*
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync * Copyright (C) 2011-2012 Oracle Corporation
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync *
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync * available from http://www.virtualbox.org. This file is free software;
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync * you can redistribute it and/or modify it under the terms of the GNU
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync * General Public License (GPL) as published by the Free Software
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync *
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync * The contents of this file may alternatively be used under the terms
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync * of the Common Development and Distribution License Version 1.0
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync * VirtualBox OSE distribution, in which case the provisions of the
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync * CDDL are applicable instead of those of the GPL.
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync *
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync * You may elect to license modified versions of this file under the
0676b680fdd14ac2801fd13d186dbba0ee597882vboxsync * terms and conditions of either the GPL or the CDDL or both.
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync */
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync#ifndef ___VBox_VBoxDrvCfg_win_h
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync#define ___VBox_VBoxDrvCfg_win_h
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync#include <Windows.h>
deb1c55807b6a2e1f2837dacd9c5f9b3d0bedaabvboxsync#include <VBox/cdefs.h>
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsyncRT_C_DECLS_BEGIN
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync#if 0
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync/* enable this in case we include this in a dll*/
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync# ifdef IN_VBOXDRVCFG
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync# define VBOXDRVCFG_DECL(a_Type) DECLEXPORT(a_Type)
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync# else
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync# define VBOXDRVCFG_DECL(a_Type) DECLIMPORT(a_Type)
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync# endif
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync#else
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync/*enable this in case we include this in a static lib*/
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync# define VBOXDRVCFG_DECL(a_Type) a_Type VBOXCALL
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync#endif
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsynctypedef enum
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync{
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync VBOXDRVCFG_LOG_SEVERITY_FLOW = 1,
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync VBOXDRVCFG_LOG_SEVERITY_REGULAR,
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync VBOXDRVCFG_LOG_SEVERITY_REL
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync} VBOXDRVCFG_LOG_SEVERITY;
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsynctypedef DECLCALLBACK(void) FNVBOXDRVCFG_LOG(VBOXDRVCFG_LOG_SEVERITY enmSeverity, char *pszMsg, void *pvContext);
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsynctypedef FNVBOXDRVCFG_LOG *PFNVBOXDRVCFG_LOG;
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsyncVBOXDRVCFG_DECL(void) VBoxDrvCfgLoggerSet(PFNVBOXDRVCFG_LOG pfnLog, void *pvLog);
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsynctypedef DECLCALLBACK(void) FNVBOXDRVCFG_PANIC(void * pvPanic);
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsynctypedef FNVBOXDRVCFG_PANIC *PFNVBOXDRVCFG_PANIC;
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsyncVBOXDRVCFG_DECL(void) VBoxDrvCfgPanicSet(PFNVBOXDRVCFG_PANIC pfnPanic, void *pvPanic);
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync/* Driver package API*/
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsyncVBOXDRVCFG_DECL(HRESULT) VBoxDrvCfgInfInstall(IN LPCWSTR lpszInfPath);
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsyncVBOXDRVCFG_DECL(HRESULT) VBoxDrvCfgInfUninstall(IN LPCWSTR lpszInfPath, IN DWORD fFlags);
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsyncVBOXDRVCFG_DECL(HRESULT) VBoxDrvCfgInfUninstallAllSetupDi(IN const GUID * pGuidClass, IN LPCWSTR lpszClassName, IN LPCWSTR lpszPnPId, IN DWORD fFlags);
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsyncVBOXDRVCFG_DECL(HRESULT) VBoxDrvCfgInfUninstallAllF(IN LPCWSTR lpszClassName, IN LPCWSTR lpszPnPId, IN DWORD fFlags);
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync/* Service API */
df294ff29aab74013667896ef2d4f5bd1f782143vboxsyncVBOXDRVCFG_DECL(HRESULT) VBoxDrvCfgSvcStart(LPCWSTR lpszSvcName);
df294ff29aab74013667896ef2d4f5bd1f782143vboxsync
7c63dd76442a4896af6ce9c65d87461d3e7fe82bvboxsyncHRESULT VBoxDrvCfgDrvUpdate(LPCWSTR pcszwHwId, LPCWSTR pcsxwInf, BOOL *pbRebootRequired);
7c63dd76442a4896af6ce9c65d87461d3e7fe82bvboxsync
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsyncRT_C_DECLS_END
2c1bf6cd6da9bd87528c7858f08dff60e7f1f424vboxsync
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync#endif
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync