VirtualBox

Changeset 53082 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Oct 17, 2014 6:49:23 AM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
96599
Message:

NetFlt/win: NDIS6: no halt on host suspend, hardware id changed to match the old NDIS5 id

Location:
trunk/src/VBox/Main
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r53080 r53082  
    51785178                CoTaskMemFree(pswzBindName);
    51795179
    5180                 wchar_t * pswzHwId;
    5181                 hrc = pAdaptorComponent->GetId(&pswzHwId);
     5180                /* Assume we should use the old NDIS5.1 version of driver which uses TRUNKTYPE_NETADP */
     5181                trunkType = TRUNKTYPE_NETADP;
     5182
     5183                HKEY hkParams;
     5184                hrc = pAdaptorComponent->OpenParamKey(&hkParams);
    51825185                Assert(hrc == S_OK);
    51835186                if (hrc == S_OK)
    51845187                {
    5185                     if (!_wcsnicmp(pswzHwId, L"sun_VBoxNetAdp6", sizeof(L"sun_VBoxNetAdp6")/2))
     5188                    WCHAR swzInfSection[16];
     5189                    DWORD dwSize = sizeof(swzInfSection);
     5190                    hrc = RegQueryValueExW(hkParams, L"InfSection", NULL, NULL, (LPBYTE)swzInfSection, &dwSize);
     5191                    if (hrc == S_OK)
    51865192                    {
    5187                         /*
    5188                          * This is NDIS 6.x miniport, it relies on NetLwf filter to
    5189                          * run actual traffic. We use netflt attachment instead of
    5190                          * netadp, which is used in case of NDIS 5.x.
    5191                          */
    5192                         InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetFlt);
    5193                         trunkType = TRUNKTYPE_NETFLT;
     5193                        if (!_wcsnicmp(swzInfSection, L"VBoxNetAdp6.ndi", sizeof(L"VBoxNetAdp6.ndi")/2))
     5194                        {
     5195                            /*
     5196                             * This is NDIS 6.x miniport, it relies on NetLwf filter to
     5197                             * run actual traffic. We use netflt attachment instead of
     5198                             * netadp, which is used in case of NDIS 5.x.
     5199                             */
     5200                            trunkType = TRUNKTYPE_NETFLT;
     5201                        }
    51945202                    }
    5195                     else
    5196                     {
    5197                         InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetAdp);
    5198                         trunkType = TRUNKTYPE_NETADP;
    5199                     }
     5203                    RegCloseKey(hkParams);
    52005204                }
    52015205                else
     
    52035207                    LogRel(("Console::i_configNetwork: INetCfgComponent::GetId(%s) failed, err (0x%x), "
    52045208                            "falling back to NDIS5 attachment\n", pszTrunkName, hrc));
    5205                     InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetAdp);
    5206                     trunkType = TRUNKTYPE_NETADP;
    5207                 }
    5208                 CoTaskMemFree(pswzHwId);
     5209                    /* Nothing to do here as the trunk type defaults to NETADP */
     5210                }
     5211                InsertConfigInteger(pCfg, "TrunkType", trunkType == TRUNKTYPE_NETFLT ? kIntNetTrunkType_NetFlt : kIntNetTrunkType_NetAdp);
    52095212
    52105213                pAdaptorComponent.setNull();
  • trunk/src/VBox/Main/src-server/win/NetIf-win.cpp

    r52592 r53082  
    15371537                                                        if (hr == S_OK)
    15381538                                                        {
    1539                                                             if (!_wcsnicmp(pId, L"sun_VBoxNetAdp6", sizeof(L"sun_VBoxNetAdp6")/2))
    1540                                                             {
    1541                                                                 vboxNetWinAddComponent(&list, pMpNcc, HostNetworkInterfaceType_HostOnly, -1);
    1542                                                             }
    1543                                                             else
     1539                                                            /*
     1540                                                             * Host-only interfaces are ignored here and included into the list
     1541                                                             * later in netIfListHostAdapters()
     1542                                                             */
     1543                                                            if (_wcsnicmp(pId, L"sun_VBoxNetAdp", sizeof(L"sun_VBoxNetAdp")/2))
    15441544                                                            {
    15451545                                                                vboxNetWinAddComponent(&list, pMpNcc, HostNetworkInterfaceType_Bridged,
     
    15771577    }
    15781578
    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      */
     1579    /* Add host-only adapters to the list */
    15861580    netIfListHostAdapters(list);
    15871581
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