VirtualBox

Changeset 51480 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 30, 2014 9:10:39 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
94072
Message:

NetFlt/LwfWin: NDIS6 filter driver (#7231)

Location:
trunk/src/VBox
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/Makefile.kmk

    r42962 r51480  
    140140 endif # signing
    141141
     142
     143 #
     144 # VBoxNetLwf.sys - The light-weight filter driver for NDIS6.
     145 #
     146 SYSMODS += VBoxNetLwf
     147 VBoxNetLwf_TEMPLATE = VBOXR0DRV
     148 VBoxNetLwf_INST = $(INST_VBOXNETFLT)
     149 if defined(VBOX_SIGNING_MODE)
     150  VBoxNetLwf_INSTTYPE = none
     151  VBoxNetLwf_DEBUG_INSTTYPE = both
     152 endif
     153 VBoxNetLwf_DEFS = IN_RT_R0 IN_SUP_STATIC
     154 VBoxNetLwf_INCS = .
     155 VBoxNetLwf_SOURCES = VBoxNetFlt.c
     156 VBoxNetLwf_SDKS.win = ReorderCompilerIncs $(VBOX_WINDDK_WLH) $(VBOX_WINPSDK)INCS
     157 VBoxNetLwf_SOURCES.win = \
     158        win/ndis6/VBoxNetLwf-win.cpp
     159#       win/drv/VBoxNetLwfRt-win.cpp \
     160#       win/drv/VBoxNetLwf-win.rc
     161 # with WINDDKWLH the WIN9X_COMPAT_SPINLOCK is needed to avoid inline declaration of KeInitializeSpinLock
     162 # otherwise the linker would complain about dumplicate _KeInitializeSpinLock@4 definition
     163 # in ntoskrnl.lib and our object files
     164 VBoxNetLwf_DEFS.win += WIN9X_COMPAT_SPINLOCK=1 NDISLWF=1 DBG=1
     165# VBoxNetLwf_DEFS.win += VBOXNETFLT_STATIC_CONFIG
     166# VBoxNetLwf_DEFS.win += VBOXNETFLT_NO_PACKET_QUEUE
     167# VBoxNetLwf_DEFS.win += NDIS_MINIPORT_DRIVER NDIS_WDM=1 BINARY_COMPATIBLE=0
     168 VBoxNetLwf_DEFS.win += NDIS60=1
     169# ifdef VBOX_LOOPBACK_USEFLAGS
     170#  VBoxNetLwf_DEFS.win += VBOX_LOOPBACK_USEFLAGS
     171# endif
     172# VBoxNetLwf_SOURCES = VBoxNetLwf.c
     173 VBoxNetLwf_LDFLAGS.win.x86 = -Entry:DriverEntry@8
     174 VBoxNetLwf_LDFLAGS.win.amd64 = -Entry:DriverEntry
     175 VBoxNetLwf_LIBS.win = \
     176        $(PATH_SDK_$(VBOX_WINDDK_WLH)_LIB)/ntoskrnl.lib \
     177        $(PATH_SDK_$(VBOX_WINDDK_WLH)_LIB)/hal.lib \
     178        $(PATH_SDK_$(VBOX_WINDDK_WLH)_LIB)/ndis.lib \
     179        $(PATH_STAGE_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB)
     180 VBoxNetLwf_LIBS = \
     181        $(PATH_STAGE_LIB)/SUPR0IdcClient$(VBOX_SUFF_LIB)
     182 #
     183 # VBoxNetLwf installation.
     184 #
     185 INSTALLS.win += VBoxNetLwf-inf
     186 VBoxNetLwf-inf_INST = $(INST_BIN)
     187 VBoxNetLwf-inf_SOURCES = \
     188        $(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.inf
     189 VBoxNetLwf-inf_CLEAN = $(VBoxNetLwf-inf_SOURCES)
     190 VBoxNetLwf-inf_BLDDIRS = $(PATH_TARGET)/VBoxNetLwfCat.dir
     191
     192$(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.inf: $(PATH_SUB_CURRENT)/win/ndis6/VBoxNetLwf.inf $(MAKEFILE_CURRENT) | $$(dir $$@)
     193        $(call MSG_GENERATE,VBoxNetLwf-inf,$@,$<)
     194        $(call VBOX_EDIT_INF_FN,$<,$@)
     195
     196 ifdef VBOX_SIGNING_MODE
     197VBoxNetLwf-inf_SOURCES += \
     198        $(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.sys \
     199        $(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.cat
     200
     201#       $(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwfNobj.dll \
     202
     203$(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.sys: $$(VBoxNetLwf_1_TARGET) | $$(dir $$@)
     204        $(INSTALL) -m 644 $< $(@D)
     205
     206#$(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwfNobj.dll: $$(VBoxNetLwfNobj_1_TARGET) | $$(dir $$@)
     207#       $(INSTALL) -m 644 $< $(@D)
     208
     209$(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.cat: \
     210                $(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.sys \
     211                $(PATH_TARGET)/VBoxNetLwfCat.dir/VBoxNetLwf.inf
     212        $(call MSG_TOOL,Inf2Cat,VBoxNetLwf-inf,$@,$<)
     213        $(call VBOX_MAKE_CAT_FN, $(@D),$@)
     214
     215 endif # signing
     216
     217
     218
     219
    142220 #
    143221 # WinNetConfig - static library with host network interface config API
     
    203281 NetAdpUninstall_SOURCES  = win/tools/VBoxNetAdpUninstall.cpp
    204282 NetAdpUninstall_LIBS     = \
     283        $(WinNetConfig_1_TARGET) \
     284        $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
     285        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib \
     286        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
     287        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib
     288
     289 #
     290 # NetLwfInstall
     291 #
     292 PROGRAMS.win  += NetLwfInstall
     293 NetLwfInstall_TEMPLATE = VBOXR3STATIC
     294 NetLwfInstall_SDKS     = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
     295 NetLwfInstall_SOURCES  = win/tools/VBoxNetLwfInstall.cpp
     296 NetLwfInstall_LIBS     = \
     297        $(WinNetConfig_1_TARGET) \
     298        $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
     299        $(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib \
     300        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/comsupp.lib \
     301        $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib
     302
     303
     304 #
     305 # NetLwfUninstall
     306 #
     307 PROGRAMS.win  += NetLwfUninstall
     308 NetLwfUninstall_TEMPLATE = VBOXR3STATIC
     309 NetLwfUninstall_SDKS     = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
     310 NetLwfUninstall_SOURCES  = win/tools/VBoxNetLwfUninstall.cpp
     311 NetLwfUninstall_LIBS     = \
    205312        $(WinNetConfig_1_TARGET) \
    206313        $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/win/cfg/VBoxNetCfg.cpp

    r51181 r51480  
    20422042                                                 apInfFullPaths,
    20432043                                                 cInfFullPaths,
     2044                                                 NULL);
     2045    }
     2046    return hr;
     2047}
     2048
     2049/*
     2050 * Use the same id as does the old implementation for NDIS 5
     2051 * #define VBOXNETCFGWIN_NETLWF_ID    L"oracle_VBoxNetLwf"
     2052 */
     2053#define VBOXNETCFGWIN_NETLWF_ID    L"sun_VBoxNetFlt"
     2054
     2055static HRESULT vboxNetCfgWinNetLwfUninstall(IN INetCfg *pNc, DWORD InfRmFlags)
     2056{
     2057    INetCfgComponent * pNcc = NULL;
     2058    HRESULT hr = pNc->FindComponent(VBOXNETCFGWIN_NETLWF_ID, &pNcc);
     2059    if (hr == S_OK)
     2060    {
     2061        NonStandardLog("NetLwf is installed currently, uninstalling ...\n");
     2062
     2063        hr = VBoxNetCfgWinUninstallComponent(pNc, pNcc);
     2064
     2065        pNcc->Release();
     2066    }
     2067    else if (hr == S_FALSE)
     2068    {
     2069        NonStandardLog("NetLwf is not installed currently\n");
     2070        hr = S_OK;
     2071    }
     2072    else
     2073    {
     2074        NonStandardLogFlow(("FindComponent failed, hr (0x%x)\n", hr));
     2075        hr = S_OK;
     2076    }
     2077
     2078    VBoxDrvCfgInfUninstallAllF(L"NetService", VBOXNETCFGWIN_NETLWF_ID, InfRmFlags);
     2079
     2080    return hr;
     2081}
     2082
     2083VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinNetLwfUninstall(IN INetCfg *pNc)
     2084{
     2085    return vboxNetCfgWinNetLwfUninstall(pNc, 0);
     2086}
     2087
     2088VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinNetLwfInstall(IN INetCfg *pNc,
     2089                                                       IN LPCWSTR const pInfFullPath)
     2090{
     2091    HRESULT hr = vboxNetCfgWinNetLwfUninstall(pNc, SUOI_FORCEDELETE);
     2092    if (SUCCEEDED(hr))
     2093    {
     2094        NonStandardLog("NetLwf will be installed ...\n");
     2095        hr = vboxNetCfgWinInstallInfAndComponent(pNc, VBOXNETCFGWIN_NETLWF_ID,
     2096                                                 &GUID_DEVCLASS_NETSERVICE,
     2097                                                 &pInfFullPath,
     2098                                                 1,
    20442099                                                 NULL);
    20452100    }
  • trunk/src/VBox/Runtime/VBox/log-vbox.cpp

    r50530 r51480  
    470470# endif
    471471# if defined(DEBUG_aleksey)  /* Guest ring-0 as well */
    472         RTLogGroupSettings(pLogger, "+net_adp_drv.e.l.f+net_flt_drv.e.l.l2.l3.l4.l5.f");
     472        RTLogGroupSettings(pLogger, "net_flt_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