diff options
| author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2012-10-26 16:25:44 +0000 |
|---|---|---|
| committer | <> | 2012-11-12 12:15:52 +0000 |
| commit | 58ed4748338f9466599adfc8a9171280ed99e23f (patch) | |
| tree | 02027d99ded4fb56a64aa9489ac2eb487e7858ab /src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp | |
| download | VirtualBox-58ed4748338f9466599adfc8a9171280ed99e23f.tar.gz | |
Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.2.4.tar.bz2.VirtualBox-4.2.4
Diffstat (limited to 'src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp')
| -rw-r--r-- | src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp b/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp new file mode 100644 index 00000000..f5b1b780 --- /dev/null +++ b/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp @@ -0,0 +1,74 @@ +/* $Id: VBoxNetAdpUninstall.cpp $ */ +/** @file + * NetAdpUninstall - VBoxNetAdp uninstaller command line tool + */ + +/* + * Copyright (C) 2009 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * 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. + */ + +#include <VBox/VBoxNetCfg-win.h> +#include <VBox/VBoxDrvCfg-win.h> +#include <stdio.h> + +#include <devguid.h> + + +static VOID winNetCfgLogger (LPCSTR szString) +{ + printf("%s", szString); +} + +static int VBoxNetAdpUninstall() +{ + int r = 1; + VBoxNetCfgWinSetLogging(winNetCfgLogger); + + printf("uninstalling all Host-Only interfaces..\n"); + + HRESULT hr = CoInitialize(NULL); + if(hr == S_OK) + { + hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(L"sun_VBoxNetAdp"); + if(hr == S_OK) + { + hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, L"Net", L"sun_VBoxNetAdp", 0/* could be SUOI_FORCEDELETE */); + if(hr == S_OK) + { + printf("uninstalled successfully\n"); + } + else + { + printf("uninstalled successfully, but failed to remove infs\n"); + } + r = 0; + } + else + { + printf("uninstall failed, hr = 0x%x\n", hr); + } + + CoUninitialize(); + } + else + { + wprintf(L"Error initializing COM (0x%x)\n", hr); + } + + VBoxNetCfgWinSetLogging(NULL); + + return r; +} + +int __cdecl main(int argc, char **argv) +{ + return VBoxNetAdpUninstall(); +} |
