HostNetworkInterfaceImpl.cpp revision 79207ebc7bef44216ecdbe520de76317c713ada6
af062818b47340eef15700d2f0211576ba3506eevboxsync * VirtualBox COM class implementation
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2006-2014 Oracle Corporation
af062818b47340eef15700d2f0211576ba3506eevboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
af062818b47340eef15700d2f0211576ba3506eevboxsync * available from http://www.virtualbox.org. This file is free software;
af062818b47340eef15700d2f0211576ba3506eevboxsync * you can redistribute it and/or modify it under the terms of the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * General Public License (GPL) as published by the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
af062818b47340eef15700d2f0211576ba3506eevboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
af062818b47340eef15700d2f0211576ba3506eevboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* RT_OS_FREEBSD */
af062818b47340eef15700d2f0211576ba3506eevboxsync// constructor / destructor
af062818b47340eef15700d2f0211576ba3506eevboxsync/////////////////////////////////////////////////////////////////////////////
af062818b47340eef15700d2f0211576ba3506eevboxsync// public initializer/uninitializer for internal purposes only
af062818b47340eef15700d2f0211576ba3506eevboxsync/////////////////////////////////////////////////////////////////////////////
af062818b47340eef15700d2f0211576ba3506eevboxsync * Initializes the host object.
af062818b47340eef15700d2f0211576ba3506eevboxsync * @returns COM result indicator
af062818b47340eef15700d2f0211576ba3506eevboxsync * @param aInterfaceName name of the network interface
af062818b47340eef15700d2f0211576ba3506eevboxsync * @param aGuid GUID of the host network interface
af062818b47340eef15700d2f0211576ba3506eevboxsyncHRESULT HostNetworkInterface::init(Bstr aInterfaceName, Bstr aShortName, Guid aGuid, HostNetworkInterfaceType_T ifType)
af062818b47340eef15700d2f0211576ba3506eevboxsync LogFlowThisFunc(("aInterfaceName={%ls}, aGuid={%s}\n",
af062818b47340eef15700d2f0211576ba3506eevboxsync ComAssertRet(!aInterfaceName.isEmpty(), E_INVALIDARG);
af062818b47340eef15700d2f0211576ba3506eevboxsync /* Enclose the state transition NotReady->InInit->Ready */
return S_OK;
#ifdef VBOX_WITH_RESOURCE_USAGE_API
void HostNetworkInterface::i_registerMetrics(PerformanceCollector *aCollector, ComPtr<IUnknown> objptr)
void HostNetworkInterface::i_unregisterMetrics(PerformanceCollector *aCollector, ComPtr<IUnknown> objptr)
#ifdef VBOX_WITH_HOSTNETIF_API
m.realIPV6PrefixLength = m.IPV6NetworkMaskPrefixLength = composeIPv6PrefixLenghFromAddress(&info.IPv6NetMask);
#ifdef RT_OS_WINDOWS
return S_OK;
HRESULT HostNetworkInterface::init(Bstr aInterfaceName, HostNetworkInterfaceType_T ifType, PNETIFINFO pIf)
// aInterfaceName.raw(), aGuid.toString().raw()));
m.realIPV6PrefixLength = m.IPV6NetworkMaskPrefixLength = composeIPv6PrefixLenghFromAddress(&pIf->IPv6NetMask);
#ifdef RT_OS_WINDOWS
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
#if defined(RT_OS_WINDOWS)
if (addr)
return S_OK;
return E_FAIL;
#if defined(RT_OS_WINDOWS)
if (addr)
return S_OK;
return E_FAIL;
#if defined(RT_OS_WINDOWS)
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
#ifndef VBOX_WITH_HOSTNETIF_API
return E_NOTIMPL;
if (m.IPAddress)
m.realIPAddress = 0;
return E_FAIL;
return E_FAIL;
return S_OK;
return S_OK;
return S_OK;
return E_FAIL;
return E_FAIL;
return S_OK;
return E_FAIL;
#ifndef VBOX_WITH_HOSTNETIF_API
return E_NOTIMPL;
return E_INVALIDARG;
if (aIPV6NetworkMaskPrefixLength == 0)
return E_FAIL;
return E_FAIL;
return S_OK;
#ifndef VBOX_WITH_HOSTNETIF_API
return E_NOTIMPL;
return S_OK;
#ifndef VBOX_WITH_HOSTNETIF_API
return E_NOTIMPL;
return S_OK;
#if !defined(RT_OS_WINDOWS)
return S_OK;