VirtualBox

Changeset 52592 in vbox


Ignore:
Timestamp:
Sep 3, 2014 8:23:24 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
95866
Message:

NetFlt/win: NDIS6: fixes, enable disconnect interface, PM support for NetAdp6, installer helper functions

Location:
trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxNetCfg-win.h

    r51480 r52592  
    7171                                                                        OUT GUID *pGuid, OUT BSTR *lppszName,
    7272                                                                        OUT BSTR *pErrMsg);
    73 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinUpdateHostOnlyNetworkInterface(LPCWSTR pcsxwInf, BOOL *pbRebootRequired);
     73VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinUpdateHostOnlyNetworkInterface(LPCWSTR pcsxwInf, BOOL *pbRebootRequired, LPCWSTR pcsxwId);
    7474VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinRemoveHostOnlyNetworkInterface(IN const GUID *pGUID, OUT BSTR *pErrMsg);
    7575VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinRemoveAllNetDevicesOfId(IN LPCWSTR lpszPnPId);
  • trunk/include/VBox/intnet.h

    r52394 r52592  
    576576    DECLR0CALLBACKMEMBER(void, pfnReportNoPreemptDsts,(PINTNETTRUNKSWPORT pSwitchPort, uint32_t fNoPreemptDsts));
    577577
    578 #ifdef VBOX_WITH_INTNET_DISCONNECT
    579578    /**
    580579     * OS triggered trunk disconnect.
     
    598597    DECLR0CALLBACKMEMBER(void, pfnDisconnect,(PINTNETTRUNKSWPORT pSwitchPort, PINTNETTRUNKIFPORT pIfPort,
    599598                                              PFNINTNETTRUNKIFPORTRELEASEBUSY pfnReleaseBusy));
    600 #endif /* VBOX_WITH_INTNET_DISCONNECT */
    601599
    602600    /** Structure version number. (INTNETTRUNKSWPORT_VERSION) */
     
    605603
    606604/** Version number for the INTNETTRUNKIFPORT::u32Version and INTNETTRUNKIFPORT::u32VersionEnd fields. */
    607 #ifdef VBOX_WITH_INTNET_DISCONNECT
    608605# define INTNETTRUNKSWPORT_VERSION   UINT32_C(0xA2CDf003)
    609 #else
    610 # define INTNETTRUNKSWPORT_VERSION   UINT32_C(0xA2CDf001)
    611 #endif
    612606
    613607
  • trunk/src/VBox/Devices/Network/SrvIntNetR0.cpp

    r52544 r52592  
    51045104
    51055105
    5106 #ifdef VBOX_WITH_INTNET_DISCONNECT
    51075106/** @copydoc INTNETTRUNKSWPORT::pfnDisconnect */
    51085107static DECLCALLBACK(void) intnetR0TrunkIfPortDisconnect(PINTNETTRUNKSWPORT pSwitchPort, PINTNETTRUNKIFPORT pIfPort,
     
    51625161        pfnReleaseBusy(pIfPort);
    51635162}
    5164 #endif /* VBOX_WITH_INTNET_DISCONNECT */
    51655163
    51665164
     
    55245522        pTrunk->SwitchPort.pfnReportGsoCapabilities   = intnetR0TrunkIfPortReportGsoCapabilities;
    55255523        pTrunk->SwitchPort.pfnReportNoPreemptDsts     = intnetR0TrunkIfPortReportNoPreemptDsts;
    5526 #ifdef VBOX_WITH_INTNET_DISCONNECT
    55275524        pTrunk->SwitchPort.pfnDisconnect              = intnetR0TrunkIfPortDisconnect;
    5528 #endif /* VBOX_WITH_INTNET_DISCONNECT */
    55295525        pTrunk->SwitchPort.u32VersionEnd              = INTNETTRUNKSWPORT_VERSION;
    55305526        //pTrunk->pIfPort                 = NULL;
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk

    r52134 r52592  
    306306
    307307 #
     308 # NetAdp6Uninstall
     309 #
     310 PROGRAMS.win  += NetAdp6Uninstall
     311 NetAdp6Uninstall_TEMPLATE = VBOXR3STATIC
     312 NetAdp6Uninstall_SDKS     = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
     313 NetAdp6Uninstall_SOURCES  = win/tools/VBoxNetAdpUninstall.cpp
     314 NetAdp6Uninstall_DEFS    += NDIS60=1
     315 NetAdp6Uninstall_LIBS     = \
     316        $(WinNetConfig_1_TARGET) \
     317        $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
     318        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib \
     319        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
     320        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib
     321
     322 #
    308323 # NetLwfInstall
    309324 #
     
    437452 endif #  ifdef VBOX_SIGNING_MODE
    438453
    439  ifdef VBOX_WITH_NDIS6
    440454 #
    441455 # VBoxNetAdp6.sys - The VirtualBox Adapter miniport driver.
     
    494508
    495509 endif #  ifdef VBOX_SIGNING_MODE
    496 
    497  endif #  ifdef VBOX_WITH_NDIS6
    498510
    499511endif #ifeq ($(KBUILD_TARGET), win)
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/win/cfg/VBoxNetCfg.cpp

    r51908 r52592  
    23902390
    23912391#define DRIVERHWID _T("sun_VBoxNetAdp")
     2392#define DRIVERHWID_NDIS6 _T("sun_VBoxNetAdp6")
    23922393
    23932394#define SetErrBreak(strAndArgs) \
     
    25462547                     t += _tcslen (t) + 1)
    25472548                {
    2548                     if (!_tcsicmp (DRIVERHWID, t))
     2549                    if (!_tcsicmp (DRIVERHWID, t) || !_tcsicmp (DRIVERHWID_NDIS6, t))
    25492550                    {
    25502551                          /* get the device instance ID */
     
    26032604}
    26042605
    2605 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinUpdateHostOnlyNetworkInterface(LPCWSTR pcsxwInf, BOOL *pbRebootRequired)
    2606 {
    2607     return VBoxDrvCfgDrvUpdate(DRIVERHWID, pcsxwInf, pbRebootRequired);
     2606VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinUpdateHostOnlyNetworkInterface(LPCWSTR pcsxwInf, BOOL *pbRebootRequired, LPCWSTR pcsxwId)
     2607{
     2608    return VBoxDrvCfgDrvUpdate(pcsxwId, pcsxwInf, pbRebootRequired);
    26082609}
    26092610
     
    27662767                while (t && *t && t < (TCHAR *) &detailBuf [RT_ELEMENTS(detailBuf)])
    27672768                {
    2768                     if (!_tcsicmp(t, DRIVERHWID))
     2769                    if (!_tcsicmp(t, DRIVERHWID) || !_tcsicmp(t, DRIVERHWID_NDIS6))
    27692770                        break;
    27702771
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/win/nobj/VBoxNetFltNobj.cpp

    r38738 r52592  
    201201    if (hr == S_OK)
    202202    {
    203         if (!_wcsnicmp(pDevId, L"sun_VBoxNetAdp", sizeof(L"sun_VBoxNetAdp")/2))
     203        if (!_wcsnicmp(pDevId, L"sun_VBoxNetAdp", sizeof(L"sun_VBoxNetAdp")/2) ||
     204            !_wcsnicmp(pDevId, L"sun_VBoxNetAdp6", sizeof(L"sun_VBoxNetAdp6")/2))
    204205        {
    205206            *pbShouldBind = false;
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpInstall.cpp

    r52183 r52592  
    2424#ifdef NDIS60
    2525#define VBOX_NETADP_INF L"VBoxNetAdp6.inf"
     26#define VBOX_NETADP_HWID L"sun_VBoxNetAdp6"
    2627#else /* !NDIS60 */
    2728#define VBOX_NETADP_INF L"VBoxNetAdp.inf"
     29#define VBOX_NETADP_HWID L"sun_VBoxNetAdp"
    2830#endif /* !NDIS60 */
    2931
     
    106108    if (SUCCEEDED(hr))
    107109    {
    108         hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(L"sun_VBoxNetAdp");
    109         if (SUCCEEDED(hr))
    110         {
    111             hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, L"Net", L"sun_VBoxNetAdp", 0/* could be SUOI_FORCEDELETE */);
     110        hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(VBOX_NETADP_HWID);
     111        if (SUCCEEDED(hr))
     112        {
     113            hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, L"Net", VBOX_NETADP_HWID, 0/* could be SUOI_FORCEDELETE */);
    112114            if (SUCCEEDED(hr))
    113115            {
     
    139141    {
    140142        BOOL fRebootRequired = FALSE;
    141         hr = VBoxNetCfgWinUpdateHostOnlyNetworkInterface(VBOX_NETADP_INF, &fRebootRequired);
     143        hr = VBoxNetCfgWinUpdateHostOnlyNetworkInterface(VBOX_NETADP_INF, &fRebootRequired, VBOX_NETADP_HWID);
    142144        if (SUCCEEDED(hr))
    143145        {
     
    168170    if (SUCCEEDED(hr))
    169171    {
    170         hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(L"sun_VBoxNetAdp", VBOXNECTFGWINPROPCHANGE_TYPE_DISABLE);
     172        hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(VBOX_NETADP_HWID, VBOXNECTFGWINPROPCHANGE_TYPE_DISABLE);
    171173        if (SUCCEEDED(hr))
    172174        {
     
    195197    if (SUCCEEDED(hr))
    196198    {
    197         hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(L"sun_VBoxNetAdp", VBOXNECTFGWINPROPCHANGE_TYPE_ENABLE);
     199        hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(VBOX_NETADP_HWID, VBOXNECTFGWINPROPCHANGE_TYPE_ENABLE);
    198200        if (SUCCEEDED(hr))
    199201        {
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/win/tools/VBoxNetAdpUninstall.cpp

    r44529 r52592  
    2222#include <devguid.h>
    2323
     24#ifdef NDIS60
     25#define VBOX_NETADP_HWID L"sun_VBoxNetAdp6"
     26#else /* !NDIS60 */
     27#define VBOX_NETADP_HWID L"sun_VBoxNetAdp"
     28#endif /* !NDIS60 */
    2429
    2530static VOID winNetCfgLogger (LPCSTR szString)
     
    3843    if(hr == S_OK)
    3944    {
    40         hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(L"sun_VBoxNetAdp");
     45        hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(VBOX_NETADP_HWID);
    4146        if(hr == S_OK)
    4247        {
    43             hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, L"Net", L"sun_VBoxNetAdp", 0/* could be SUOI_FORCEDELETE */);
     48            hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, L"Net", VBOX_NETADP_HWID, 0/* could be SUOI_FORCEDELETE */);
    4449            if(hr == S_OK)
    4550            {
  • trunk/src/VBox/Installer/win/InstallHelper/VBoxInstallHelper.cpp

    r52265 r52592  
    497497#define NETADP_ID  L"sun_VBoxNetAdp" /** @todo Needs to be changed (?). */
    498498
     499#define NETLWF_INF_NAME L"VBoxNetLwf.inf"
     500#define NETLWF_ID       L"sun_VBoxNetLwf" /** @todo Needs to be changed (?). */
     501#define NETADP6_ID      L"sun_VBoxNetAdp6" /** @todo Needs to be changed (?). */
     502
    499503static MSIHANDLE g_hCurrentModule = NULL;
    500504
     
    773777    return ERROR_SUCCESS;
    774778}
     779
     780
     781UINT __stdcall UninstallNetLwf(MSIHANDLE hModule)
     782{
     783#ifdef VBOX_WITH_NETFLT
     784    INetCfg *pNetCfg;
     785    UINT uErr;
     786
     787    netCfgLoggerEnable(hModule);
     788
     789    BOOL bOldIntMode = SetupSetNonInteractiveMode(FALSE);
     790
     791    __try
     792    {
     793        logStringW(hModule, L"Uninstalling NetLwf");
     794
     795        uErr = doNetCfgInit(hModule, &pNetCfg, TRUE);
     796        if (uErr == ERROR_SUCCESS)
     797        {
     798            HRESULT hr = VBoxNetCfgWinNetLwfUninstall(pNetCfg);
     799            if (hr != S_OK)
     800                logStringW(hModule, L"UninstallNetLwf: VBoxNetCfgWinUninstallComponent failed, error = 0x%x", hr);
     801
     802            uErr = errorConvertFromHResult(hModule, hr);
     803
     804            VBoxNetCfgWinReleaseINetCfg(pNetCfg, TRUE);
     805
     806            logStringW(hModule, L"Uninstalling NetLwf done, error = 0x%x", uErr);
     807        }
     808        else
     809            logStringW(hModule, L"UninstallNetLwf: doNetCfgInit failed, error = 0x%x", uErr);
     810    }
     811    __finally
     812    {
     813        if (bOldIntMode)
     814        {
     815            /* The prev mode != FALSE, i.e. non-interactive. */
     816            SetupSetNonInteractiveMode(bOldIntMode);
     817        }
     818        netCfgLoggerDisable();
     819    }
     820#endif /* VBOX_WITH_NETFLT */
     821
     822    /* Never fail the install even if we did not succeed. */
     823    return ERROR_SUCCESS;
     824}
     825
     826UINT __stdcall InstallNetLwf(MSIHANDLE hModule)
     827{
     828#ifdef VBOX_WITH_NETFLT
     829    UINT uErr;
     830    INetCfg *pNetCfg;
     831
     832    netCfgLoggerEnable(hModule);
     833
     834    BOOL bOldIntMode = SetupSetNonInteractiveMode(FALSE);
     835
     836    __try
     837    {
     838
     839        logStringW(hModule, L"InstallNetLwf: Installing NetLwf");
     840
     841        uErr = doNetCfgInit(hModule, &pNetCfg, TRUE);
     842        if (uErr == ERROR_SUCCESS)
     843        {
     844            WCHAR wszInfName[] = L"VBoxNetLwf.inf";
     845            WCHAR wszInf[MAX_PATH];
     846            DWORD cchInf = RT_ELEMENTS(wszInf) - sizeof(NETLWF_INF_NAME) - 1;
     847            UINT uErr = MsiGetPropertyW(hModule, L"CustomActionData", wszInf, &cchInf);
     848            if (uErr == ERROR_SUCCESS)
     849            {
     850                if (cchInf)
     851                {
     852                    if (wszInf[cchInf - 1] != L'\\')
     853                    {
     854                        wszInf[cchInf++] = L'\\';
     855                        wszInf[cchInf]   = L'\0';
     856                    }
     857
     858                    wcscat(wszInf, NETLWF_INF_NAME);
     859
     860                    HRESULT hr = VBoxNetCfgWinNetLwfInstall(pNetCfg, wszInf);
     861                    if (FAILED(hr))
     862                        logStringW(hModule, L"InstallNetLwf: VBoxNetCfgWinNetLwfInstall failed, error = 0x%x", hr);
     863
     864                    uErr = errorConvertFromHResult(hModule, hr);
     865                }
     866                else
     867                {
     868                    logStringW(hModule, L"vboxNetFltQueryInfArray: Empty installation directory");
     869                    uErr = ERROR_GEN_FAILURE;
     870                }
     871            }
     872            else
     873                logStringW(hModule, L"vboxNetFltQueryInfArray: MsiGetPropertyW failed, error = 0x%x", uErr);
     874
     875            VBoxNetCfgWinReleaseINetCfg(pNetCfg, TRUE);
     876
     877            logStringW(hModule, L"InstallNetLwf: Done");
     878        }
     879        else
     880            logStringW(hModule, L"InstallNetLwf: doNetCfgInit failed, error = 0x%x", uErr);
     881    }
     882    __finally
     883    {
     884        if (bOldIntMode)
     885        {
     886            /* The prev mode != FALSE, i.e. non-interactive. */
     887            SetupSetNonInteractiveMode(bOldIntMode);
     888        }
     889        netCfgLoggerDisable();
     890    }
     891#endif /* VBOX_WITH_NETFLT */
     892
     893    /* Never fail the install even if we did not succeed. */
     894    return ERROR_SUCCESS;
     895}
     896
    775897
    776898#if 0
     
    832954#endif
    833955
    834 UINT __stdcall CreateHostOnlyInterface(MSIHANDLE hModule)
     956static UINT _createHostOnlyInterface(MSIHANDLE hModule, LPCWSTR pwszId, LPCWSTR pwszInfName)
    835957{
    836958#ifdef VBOX_WITH_NETFLT
     
    846968    GUID guid;
    847969    WCHAR wszMpInf[MAX_PATH];
    848     DWORD cchMpInf = RT_ELEMENTS(wszMpInf) - sizeof("VBoxNetAdp.inf") - 1;
     970    DWORD cchMpInf = RT_ELEMENTS(wszMpInf) - wcslen(pwszInfName) - 1 - 1;
    849971    LPCWSTR pwszInfPath = NULL;
    850972    bool bIsFile = false;
     
    861983            }
    862984
    863             wcscat(wszMpInf, L"VBoxNetAdp.inf");
     985            wcscat(wszMpInf, pwszInfName);
    864986            pwszInfPath = wszMpInf;
    865987            bIsFile = true;
     
    8871009    //first, try to update Host Only Network Interface
    8881010        BOOL fRebootRequired = FALSE;
    889         hr = VBoxNetCfgWinUpdateHostOnlyNetworkInterface(pwszInfPath, &fRebootRequired);
     1011        hr = VBoxNetCfgWinUpdateHostOnlyNetworkInterface(pwszInfPath, &fRebootRequired, pwszId);
    8901012        if (SUCCEEDED(hr))
    8911013        {
     
    9381060}
    9391061
    940 UINT __stdcall RemoveHostOnlyInterfaces(MSIHANDLE hModule)
     1062UINT __stdcall CreateHostOnlyInterface(MSIHANDLE hModule)
     1063{
     1064    return _createHostOnlyInterface(hModule, NETADP_ID, L"VBoxNetAdp.inf");
     1065}
     1066
     1067UINT __stdcall Ndis6CreateHostOnlyInterface(MSIHANDLE hModule)
     1068{
     1069    return _createHostOnlyInterface(hModule, NETADP6_ID, L"VBoxNetAdp6.inf");
     1070}
     1071
     1072
     1073static UINT _removeHostOnlyInterfaces(MSIHANDLE hModule, LPCWSTR pwszId)
    9411074{
    9421075#ifdef VBOX_WITH_NETFLT
     
    9471080    BOOL bSetupModeInteractive = SetupSetNonInteractiveMode(FALSE);
    9481081
    949     HRESULT hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(NETADP_ID);
     1082    HRESULT hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(pwszId);
    9501083    if (SUCCEEDED(hr))
    9511084    {
    952         hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, NETADP_ID, L"Net", 0/* could be SUOI_FORCEDELETE */);
     1085        hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, pwszId, L"Net", 0/* could be SUOI_FORCEDELETE */);
    9531086        if (FAILED(hr))
    9541087        {
     
    9701103}
    9711104
    972 UINT __stdcall StopHostOnlyInterfaces(MSIHANDLE hModule)
     1105UINT __stdcall RemoveHostOnlyInterfaces(MSIHANDLE hModule)
     1106{
     1107    return _removeHostOnlyInterfaces(hModule, NETADP_ID);
     1108}
     1109
     1110UINT __stdcall Ndis6RemoveHostOnlyInterfaces(MSIHANDLE hModule)
     1111{
     1112    return _removeHostOnlyInterfaces(hModule, NETADP6_ID);
     1113}
     1114
     1115
     1116
     1117static UINT _stopHostOnlyInterfaces(MSIHANDLE hModule, LPCWSTR pwszId)
    9731118{
    9741119#ifdef VBOX_WITH_NETFLT
     
    9791124    BOOL bSetupModeInteractive = SetupSetNonInteractiveMode(FALSE);
    9801125
    981     HRESULT hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(NETADP_ID, VBOXNECTFGWINPROPCHANGE_TYPE_DISABLE);
     1126    HRESULT hr = VBoxNetCfgWinPropChangeAllNetDevicesOfId(pwszId, VBOXNECTFGWINPROPCHANGE_TYPE_DISABLE);
    9821127    if (SUCCEEDED(hr))
    9831128    {
    984         hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, NETADP_ID, L"Net", 0/* could be SUOI_FORCEDELETE */);
     1129        hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, pwszId, L"Net", 0/* could be SUOI_FORCEDELETE */);
    9851130        if (FAILED(hr))
    9861131            logStringW(hModule, L"StopHostOnlyInterfaces: VBoxDrvCfgInfUninstallAllSetupDi failed, hr = 0x%x", hr);
     
    10001145}
    10011146
    1002 UINT __stdcall UpdateHostOnlyInterfaces(MSIHANDLE hModule)
     1147UINT __stdcall StopHostOnlyInterfaces(MSIHANDLE hModule)
     1148{
     1149    return _stopHostOnlyInterfaces(hModule, NETADP_ID);
     1150}
     1151
     1152UINT __stdcall Ndis6StopHostOnlyInterfaces(MSIHANDLE hModule)
     1153{
     1154    return _stopHostOnlyInterfaces(hModule, NETADP6_ID);
     1155}
     1156
     1157static UINT _updateHostOnlyInterfaces(MSIHANDLE hModule, LPCWSTR pwszInfName, LPCWSTR pwszId)
    10031158{
    10041159#ifdef VBOX_WITH_NETFLT
     
    10101165
    10111166    WCHAR wszMpInf[MAX_PATH];
    1012     DWORD cchMpInf = RT_ELEMENTS(wszMpInf) - sizeof("VBoxNetAdp.inf") - 1;
     1167    DWORD cchMpInf = RT_ELEMENTS(wszMpInf) - wcslen(pwszInfName) - 1 - 1;
    10131168    LPCWSTR pwszInfPath = NULL;
    10141169    bool bIsFile = false;
     
    10251180            }
    10261181
    1027             wcscat(wszMpInf, L"VBoxNetAdp.inf");
     1182            wcscat(wszMpInf, pwszInfName);
    10281183            pwszInfPath = wszMpInf;
    10291184            bIsFile = true;
     
    10441199
    10451200                BOOL fRebootRequired = FALSE;
    1046                 HRESULT hr = VBoxNetCfgWinUpdateHostOnlyNetworkInterface(pwszInfPath, &fRebootRequired);
     1201                HRESULT hr = VBoxNetCfgWinUpdateHostOnlyNetworkInterface(pwszInfPath, &fRebootRequired, pwszId);
    10471202                if (SUCCEEDED(hr))
    10481203                {
     
    10741229    /* Never fail the install even if we did not succeed. */
    10751230    return ERROR_SUCCESS;
     1231}
     1232
     1233UINT __stdcall UpdateHostOnlyInterfaces(MSIHANDLE hModule)
     1234{
     1235    return _updateHostOnlyInterfaces(hModule, L"VBoxNetAdp.inf", NETADP_ID);
     1236}
     1237
     1238UINT __stdcall Ndis6UpdateHostOnlyInterfaces(MSIHANDLE hModule)
     1239{
     1240    return _updateHostOnlyInterfaces(hModule, L"VBoxNetAdp6.inf", NETADP6_ID);
    10761241}
    10771242
  • trunk/src/VBox/Installer/win/InstallHelper/VBoxInstallHelper.def

    r40997 r52592  
    2525    InstallNetFlt
    2626    UninstallNetFlt
     27    InstallNetLwf
     28    UninstallNetLwf
    2729    UninstallTAPInstances
    2830    CreateHostOnlyInterface
     
    3032    UpdateHostOnlyInterfaces
    3133    RemoveHostOnlyInterfaces
     34    Ndis6CreateHostOnlyInterface
     35    Ndis6StopHostOnlyInterfaces
     36    Ndis6UpdateHostOnlyInterfaces
     37    Ndis6RemoveHostOnlyInterfaces
    3238
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r52247 r52592  
    51735173                CoTaskMemFree(pswzBindName);
    51745174
     5175                wchar_t * pswzHwId;
     5176                hrc = pAdaptorComponent->GetId(&pswzHwId);
     5177                Assert(hrc == S_OK);
     5178                if (hrc == S_OK)
     5179                {
     5180                    if (!_wcsnicmp(pswzHwId, L"sun_VBoxNetAdp6", sizeof(L"sun_VBoxNetAdp6")/2))
     5181                    {
     5182                        /*
     5183                         * This is NDIS 6.x miniport, it relies on NetLwf filter to
     5184                         * run actual traffic. We use netflt attachment instead of
     5185                         * netadp, which is used in case of NDIS 5.x.
     5186                         */
     5187                        InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetFlt);
     5188                        trunkType = TRUNKTYPE_NETFLT;
     5189                    }
     5190                    else
     5191                    {
     5192                        InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetAdp);
     5193                        trunkType = TRUNKTYPE_NETADP;
     5194                    }
     5195                }
     5196                else
     5197                {
     5198                    LogRel(("Console::i_configNetwork: INetCfgComponent::GetId(%s) failed, err (0x%x), "
     5199                            "falling back to NDIS5 attachment\n", pszTrunkName, hrc));
     5200                    InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetAdp);
     5201                    trunkType = TRUNKTYPE_NETADP;
     5202                }
     5203                CoTaskMemFree(pswzHwId);
     5204
    51755205                pAdaptorComponent.setNull();
    51765206                /* release the pNc finally */
     
    51795209                const char *pszTrunk = szTrunkName;
    51805210
    5181                 InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetAdp);
    51825211                InsertConfigString(pCfg, "Trunk", pszTrunk);
    51835212                InsertConfigString(pCfg, "Network", szNetwork);
     
    51865215                networkName = Bstr(szNetwork);
    51875216                trunkName   = Bstr(pszTrunk);
    5188                 trunkType   = TRUNKTYPE_NETADP;
    51895217# endif /* defined VBOX_WITH_NETFLT*/
    51905218#elif defined(RT_OS_DARWIN)
  • trunk/src/VBox/Main/src-server/win/NetIf-win.cpp

    r51092 r52592  
    15321532                                                    if (uComponentStatus == 0)
    15331533                                                    {
    1534                                                         vboxNetWinAddComponent(&list, pMpNcc, HostNetworkInterfaceType_Bridged,
    1535                                                                                iDefault);
     1534                                                        LPWSTR pId;
     1535                                                        hr = pMpNcc->GetId(&pId);
     1536                                                        Assert(hr == S_OK);
     1537                                                        if (hr == S_OK)
     1538                                                        {
     1539                                                            if (!_wcsnicmp(pId, L"sun_VBoxNetAdp6", sizeof(L"sun_VBoxNetAdp6")/2))
     1540                                                            {
     1541                                                                vboxNetWinAddComponent(&list, pMpNcc, HostNetworkInterfaceType_HostOnly, -1);
     1542                                                            }
     1543                                                            else
     1544                                                            {
     1545                                                                vboxNetWinAddComponent(&list, pMpNcc, HostNetworkInterfaceType_Bridged,
     1546                                                                                       iDefault);
     1547                                                            }
     1548                                                            CoTaskMemFree(pId);
     1549                                                        }
    15361550                                                    }
    15371551                                                }
     
    15631577    }
    15641578
     1579    /*
     1580     * There are two places where host-only adapters get added to the list.
     1581     * The following call adds NDIS5 miniports while NDIS6 miniports are
     1582     * added in the loop above. This is because NDIS6 miniports are in fact
     1583     * used as bridged adapters, they have netlwf filter installed in their
     1584     * stack and as a result they show up during bridged adapter enumeration.
     1585     */
    15651586    netIfListHostAdapters(list);
    15661587
  • trunk/src/VBox/Runtime/VBox/log-vbox.cpp

    r51480 r52592  
    470470# endif
    471471# if defined(DEBUG_aleksey)  /* Guest ring-0 as well */
    472         RTLogGroupSettings(pLogger, "net_flt_drv.e.l.f.l3.l4.l5");
     472        RTLogGroupSettings(pLogger, "net_flt_drv.e.l.f.l3.l4.l5 +net_adp_drv.e.l.f.l3.l4.l5");
    473473        RTLogFlags(pLogger, "enabled unbuffered");
    474474        pLogger->fDestFlags |= RTLOGDEST_DEBUGGER | RTLOGDEST_STDOUT;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette