summaryrefslogtreecommitdiff
path: root/network
diff options
context:
space:
mode:
authorAdonais Romero González <[email protected]>2024-05-06 16:21:31 -0700
committerGitHub <[email protected]>2024-05-06 16:21:31 -0700
commita74a241c664c4e1d7c0838287b34076c19d9858a (patch)
tree6ff7562612967b122acf8acf8a69c4dcfd5905db /network
parentdef8e8e34ed2b7b1deb2fc9112ac4255f1a0f2ba (diff)
parent15477ce52bbb6b42ca591ecdfb484cac089f89ab (diff)
Merge develop changes prior to upcoming WDK release (May 2024)
Diffstat (limited to 'network')
-rw-r--r--network/config/bindview/bindview.sln14
-rw-r--r--network/config/bindview/bindview.vcxproj38
-rw-r--r--network/modem/fakemodem/fakemodem.sln14
-rw-r--r--network/modem/fakemodem/fakemodem.vcxproj38
-rw-r--r--network/modem/fakemodem/mdmfake.inxbin24198 -> 24280 bytes
-rw-r--r--network/ndis/extension/base/sxbase.vcxproj92
-rw-r--r--network/ndis/extension/extensions.sln16
-rw-r--r--network/ndis/extension/samples/forward/msforwardext.infbin2529 -> 5048 bytes
-rw-r--r--network/ndis/extension/samples/forward/msforwardext.vcxproj102
-rw-r--r--network/ndis/extension/samples/passthrough/mspassthroughext.infbin2634 -> 5218 bytes
-rw-r--r--network/ndis/extension/samples/passthrough/mspassthroughext.vcxproj102
-rw-r--r--network/ndis/filter/filter.h2
-rw-r--r--network/ndis/filter/filter.sln14
-rw-r--r--network/ndis/filter/ndislwf.vcxproj54
-rw-r--r--network/ndis/filter/netlwf.infbin8824 -> 19952 bytes
-rw-r--r--network/ndis/mux/driver/60/miniport.c26
-rw-r--r--network/ndis/mux/driver/60/mux_mp.infbin1915 -> 7718 bytes
-rw-r--r--network/ndis/mux/driver/60/muxp.infbin2408 -> 7380 bytes
-rw-r--r--network/ndis/mux/driver/60/novlan/mux.vcxproj94
-rw-r--r--network/ndis/mux/driver/60/novlan/mux.vcxproj.Filters8
-rw-r--r--network/ndis/mux/driver/60/vlan/muxvlan.vcxproj109
-rw-r--r--network/ndis/mux/driver/60/vlan/muxvlan.vcxproj.Filters8
-rw-r--r--network/ndis/mux/mux.sln49
-rw-r--r--network/ndis/mux/notifyob/adapter.cpp41
-rw-r--r--network/ndis/mux/notifyob/common.cpp22
-rw-r--r--network/ndis/mux/notifyob/dllmain.cpp2
-rw-r--r--network/ndis/mux/notifyob/mux.vcxproj74
-rw-r--r--network/ndis/mux/notifyob/notify.cpp10
-rw-r--r--network/ndis/mux/notifyob/virtual.cpp34
-rw-r--r--network/ndis/ndisprot/6x/ndisprot60.sln41
-rw-r--r--network/ndis/ndisprot/6x/sys/60/ndisprot60.infbin5604 -> 7168 bytes
-rw-r--r--network/ndis/ndisprot/6x/sys/60/ndisprot60.vcxproj66
-rw-r--r--network/ndis/ndisprot/6x/sys/630/ndisprot630.infbin7568 -> 8974 bytes
-rw-r--r--network/ndis/ndisprot/6x/sys/630/ndisprot630.vcxproj54
-rw-r--r--network/ndis/ndisprot/6x/test/prottest.vcxproj52
-rw-r--r--network/ndis/ndisprot_kmdf/60/ndisprot.inxbin9278 -> 13478 bytes
-rw-r--r--network/ndis/ndisprot_kmdf/60/nprt6wdf.vcxproj66
-rw-r--r--network/ndis/ndisprot_kmdf/Package/package.VcxProj28
-rw-r--r--network/ndis/ndisprot_kmdf/ndisprot_kmdf.sln30
-rw-r--r--network/ndis/ndisprot_kmdf/notifyob/ProtNotify.vcxproj80
-rw-r--r--network/ndis/ndisprot_kmdf/notifyob/dllmain.cpp2
-rw-r--r--network/ndis/netvmini/6x/60/netvmini60.infbin8306 -> 6470 bytes
-rw-r--r--network/ndis/netvmini/6x/60/netvmini60.vcxproj60
-rw-r--r--network/ndis/netvmini/6x/620/netvmini620.infbin13052 -> 11196 bytes
-rw-r--r--network/ndis/netvmini/6x/620/netvmini620.vcxproj60
-rw-r--r--network/ndis/netvmini/6x/630/netvmini630.infbin15762 -> 12318 bytes
-rw-r--r--network/ndis/netvmini/6x/630/netvmini630.vcxproj48
-rw-r--r--network/ndis/netvmini/6x/680/netvmini680.infbin15762 -> 12314 bytes
-rw-r--r--network/ndis/netvmini/6x/680/netvmini680.vcxproj48
-rw-r--r--network/ndis/netvmini/6x/adapter.c21
-rw-r--r--network/ndis/netvmini/6x/hardware.h2
-rw-r--r--network/ndis/netvmini/6x/miniport.c10
-rw-r--r--network/ndis/netvmini/6x/netvmini.sln34
-rw-r--r--network/radio/HidSwitchDriverSample/HidSwitchDriverSample.sln28
-rw-r--r--network/radio/HidSwitchDriverSample/README.md62
-rw-r--r--network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.h156
-rw-r--r--network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.inxbin7088 -> 0 bytes
-rw-r--r--network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.rc11
-rw-r--r--network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj193
-rw-r--r--network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj.Filters50
-rw-r--r--network/radio/HidSwitchDriverSample/driver.c156
-rw-r--r--network/radio/HidSwitchDriverSample/hid.c659
-rw-r--r--network/radio/HidSwitchDriverSample/trace.h13
-rw-r--r--network/radio/HidSwitchDriverSample/usb.c466
-rw-r--r--network/radio/RadioManagerSample/RadioManagerSample.sln14
-rw-r--r--network/radio/RadioManagerSample/cpp/SampleRM.vcxproj88
-rw-r--r--network/trans/WFPSampler/WFPSampler.sln50
-rw-r--r--network/trans/WFPSampler/exe/WFPSampler.vcxproj50
-rw-r--r--network/trans/WFPSampler/exe/WFPSampler.vcxproj.Filters53
-rw-r--r--network/trans/WFPSampler/lib/HelperFunctions_Log.cpp13
-rw-r--r--network/trans/WFPSampler/lib/WFPSampler.vcxproj58
-rw-r--r--network/trans/WFPSampler/svc/Scenarios_AppContainers.cpp2
-rw-r--r--network/trans/WFPSampler/svc/WFPSamplerService.vcxproj68
-rw-r--r--network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketExaminationCallouts.cpp2
-rw-r--r--network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.cpp2
-rw-r--r--network/trans/WFPSampler/sys/CompletionFunctions_FastStreamInjectionCallouts.cpp2
-rw-r--r--network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.InX37
-rw-r--r--network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.vcxproj110
-rw-r--r--network/trans/WFPSampler/sys/Wfp_Annotations.h213
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.cpp4
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.h4
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.cpp14
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.h14
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.cpp2
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.h2
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.cpp76
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.h76
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.cpp4
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.h4
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_PendData.cpp2
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_PendData.h2
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp14
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.h14
-rw-r--r--network/trans/WFPSampler/syslib/WFPSampler.vcxproj56
-rw-r--r--network/trans/ddproxy/ddproxy.sln14
-rw-r--r--network/trans/ddproxy/sys/DD_proxy.c12
-rw-r--r--network/trans/ddproxy/sys/ddproxy.inf19
-rw-r--r--network/trans/ddproxy/sys/ddproxy.vcxproj62
-rw-r--r--network/trans/inspect/inspect.sln14
-rw-r--r--network/trans/inspect/sys/inspect.infbin2355 -> 3944 bytes
-rw-r--r--network/trans/inspect/sys/inspect.vcxproj64
-rw-r--r--network/trans/inspect/sys/utils.c8
-rw-r--r--network/trans/msnmntr/exe/monitor.vcxproj56
-rw-r--r--network/trans/msnmntr/msnmntr.sln22
-rw-r--r--network/trans/msnmntr/sys/msnmntr.infbin1752 -> 3172 bytes
-rw-r--r--network/trans/msnmntr/sys/msnmntr.vcxproj66
-rw-r--r--network/trans/stmedit/stmedit.sln27
-rw-r--r--network/trans/stmedit/sys/InlineEdit.c6
-rw-r--r--network/trans/stmedit/sys/LwQueue.c4
-rw-r--r--network/trans/stmedit/sys/OobEdit.c4
-rw-r--r--network/trans/stmedit/sys/StreamEdit.c10
-rw-r--r--network/trans/stmedit/sys/stmedit.inf39
-rw-r--r--network/trans/stmedit/sys/stmedit.vcxproj86
-rw-r--r--network/trans/stmedit/sys/stmedit.vcxproj.Filters14
-rw-r--r--network/wlan/WDI/COMMON/common.vcxproj308
-rw-r--r--network/wlan/WDI/HAL/HALSOURCE/hal.vcxproj145
-rw-r--r--network/wlan/WDI/HEADER/PlatformDef.h32
-rw-r--r--network/wlan/WDI/LIB/Arm/hal.libbin5935768 -> 0 bytes
-rw-r--r--network/wlan/WDI/LIB/Arm/rtklibcom.libbin3149800 -> 0 bytes
-rw-r--r--network/wlan/WDI/LIB/x86/hal.libbin3481260 -> 0 bytes
-rw-r--r--network/wlan/WDI/LIB/x86/rtklibcom.libbin1773422 -> 0 bytes
-rw-r--r--network/wlan/WDI/PLATFORM/NDIS6/Ndis6Common.c408
-rw-r--r--network/wlan/WDI/PLATFORM/NDIS6/SDIO/sdio.vcxproj656
-rw-r--r--network/wlan/WDI/PLATFORM/NdisComm/NdisComm.vcxproj566
-rw-r--r--network/wlan/WDI/PLATFORM/WinInf/SDIO/arm/netrtwlans.inf1259
-rw-r--r--network/wlan/WDI/PLATFORM/WinInf/SDIO/netrtwlans.inf2711
-rw-r--r--network/wlan/WDI/PLATFORM/WinInf/SDIO/x64/netrtwlans.infbin43308 -> 74380 bytes
-rw-r--r--network/wlan/WDI/PLATFORM/WinInf/SDIO/x86/netrtwlans.inf1259
-rw-r--r--network/wlan/WDI/windows.msbuild.rtwssample.sln84
-rw-r--r--network/wlan/ihvsampleui/IHVSampleUI.vcxproj114
-rw-r--r--network/wsk/echosrv/echosrv.sln14
-rw-r--r--network/wsk/echosrv/echosrv.vcxproj54
-rw-r--r--network/wwan/cxwmbclass/README.md14
-rw-r--r--network/wwan/cxwmbclass/adapter.cpp197
-rw-r--r--network/wwan/cxwmbclass/businit.cpp1906
-rw-r--r--network/wwan/cxwmbclass/cxwmbclass.rc20
-rw-r--r--network/wwan/cxwmbclass/cxwmbclass.sln35
-rw-r--r--network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.infbin0 -> 8266 bytes
-rw-r--r--network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj176
-rw-r--r--network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj.filters107
-rw-r--r--network/wwan/cxwmbclass/datapipe.cpp998
-rw-r--r--network/wwan/cxwmbclass/device.cpp381
-rw-r--r--network/wwan/cxwmbclass/driver.cpp120
-rw-r--r--network/wwan/cxwmbclass/inc/BusInterface.h573
-rw-r--r--network/wwan/cxwmbclass/inc/MbbLibrary.h175
-rw-r--r--network/wwan/cxwmbclass/inc/adapter.h53
-rw-r--r--network/wwan/cxwmbclass/inc/align.h168
-rw-r--r--network/wwan/cxwmbclass/inc/data.h185
-rw-r--r--network/wwan/cxwmbclass/inc/device.h45
-rw-r--r--network/wwan/cxwmbclass/inc/mbbmessages.h3273
-rw-r--r--network/wwan/cxwmbclass/inc/mbbncm.h431
-rw-r--r--network/wwan/cxwmbclass/inc/power.h11
-rw-r--r--network/wwan/cxwmbclass/inc/precomp.h53
-rw-r--r--network/wwan/cxwmbclass/inc/rxqueue.h26
-rw-r--r--network/wwan/cxwmbclass/inc/txqueue.h22
-rw-r--r--network/wwan/cxwmbclass/inc/usbbus.h235
-rw-r--r--network/wwan/cxwmbclass/inc/util.h42
-rw-r--r--network/wwan/cxwmbclass/inc/utils.h61
-rw-r--r--network/wwan/cxwmbclass/power.cpp116
-rw-r--r--network/wwan/cxwmbclass/rxqueue.cpp602
-rw-r--r--network/wwan/cxwmbclass/txqueue.cpp988
-rw-r--r--network/wwan/cxwmbclass/util.cpp326
-rw-r--r--network/wwan/cxwmbclass/utils.cpp588
163 files changed, 14238 insertions, 10335 deletions
diff --git a/network/config/bindview/bindview.sln b/network/config/bindview/bindview.sln
index 824d0444..75a6b503 100644
--- a/network/config/bindview/bindview.sln
+++ b/network/config/bindview/bindview.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -7,16 +7,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bindview", "bindview.vcxpro
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A9995567-E5EF-4A30-B294-D5930523A2B5}.Debug|Win32.ActiveCfg = Debug|Win32
- {A9995567-E5EF-4A30-B294-D5930523A2B5}.Debug|Win32.Build.0 = Debug|Win32
- {A9995567-E5EF-4A30-B294-D5930523A2B5}.Release|Win32.ActiveCfg = Release|Win32
- {A9995567-E5EF-4A30-B294-D5930523A2B5}.Release|Win32.Build.0 = Release|Win32
+ {A9995567-E5EF-4A30-B294-D5930523A2B5}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {A9995567-E5EF-4A30-B294-D5930523A2B5}.Debug|ARM64.Build.0 = Debug|ARM64
+ {A9995567-E5EF-4A30-B294-D5930523A2B5}.Release|ARM64.ActiveCfg = Release|ARM64
+ {A9995567-E5EF-4A30-B294-D5930523A2B5}.Release|ARM64.Build.0 = Release|ARM64
{A9995567-E5EF-4A30-B294-D5930523A2B5}.Debug|x64.ActiveCfg = Debug|x64
{A9995567-E5EF-4A30-B294-D5930523A2B5}.Debug|x64.Build.0 = Debug|x64
{A9995567-E5EF-4A30-B294-D5930523A2B5}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/config/bindview/bindview.vcxproj b/network/config/bindview/bindview.vcxproj
index a02b4401..4b6bd8be 100644
--- a/network/config/bindview/bindview.vcxproj
+++ b/network/config/bindview/bindview.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,7 +22,7 @@
<ProjectGuid>{A9995567-E5EF-4A30-B294-D5930523A2B5}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{24391928-4AD2-4393-B2CD-C85CC7B1F672}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -34,23 +34,23 @@
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
+ <UseDebugLibraries>False</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>bindview</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>bindview</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>bindview</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>bindview</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -112,7 +112,7 @@
<AdditionalDependencies>%(AdditionalDependencies);ole32.lib;oleaut32.lib;comctl32.lib;comdlg32.lib;setupapi.lib;user32.lib;kernel32.lib;gdi32.lib;uuid.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -137,7 +137,7 @@
<AdditionalDependencies>%(AdditionalDependencies);ole32.lib;oleaut32.lib;comctl32.lib;comdlg32.lib;setupapi.lib;user32.lib;kernel32.lib;gdi32.lib;uuid.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -162,7 +162,7 @@
<AdditionalDependencies>%(AdditionalDependencies);ole32.lib;oleaut32.lib;comctl32.lib;comdlg32.lib;setupapi.lib;user32.lib;kernel32.lib;gdi32.lib;uuid.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
diff --git a/network/modem/fakemodem/fakemodem.sln b/network/modem/fakemodem/fakemodem.sln
index e956fec9..39cdb94b 100644
--- a/network/modem/fakemodem/fakemodem.sln
+++ b/network/modem/fakemodem/fakemodem.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -7,16 +7,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fakemodem", "fakemodem.vcxp
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {318EB156-D430-4B09-8400-2B72A6A73004}.Debug|Win32.ActiveCfg = Debug|Win32
- {318EB156-D430-4B09-8400-2B72A6A73004}.Debug|Win32.Build.0 = Debug|Win32
- {318EB156-D430-4B09-8400-2B72A6A73004}.Release|Win32.ActiveCfg = Release|Win32
- {318EB156-D430-4B09-8400-2B72A6A73004}.Release|Win32.Build.0 = Release|Win32
+ {318EB156-D430-4B09-8400-2B72A6A73004}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {318EB156-D430-4B09-8400-2B72A6A73004}.Debug|ARM64.Build.0 = Debug|ARM64
+ {318EB156-D430-4B09-8400-2B72A6A73004}.Release|ARM64.ActiveCfg = Release|ARM64
+ {318EB156-D430-4B09-8400-2B72A6A73004}.Release|ARM64.Build.0 = Release|ARM64
{318EB156-D430-4B09-8400-2B72A6A73004}.Debug|x64.ActiveCfg = Debug|x64
{318EB156-D430-4B09-8400-2B72A6A73004}.Debug|x64.Build.0 = Debug|x64
{318EB156-D430-4B09-8400-2B72A6A73004}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/modem/fakemodem/fakemodem.vcxproj b/network/modem/fakemodem/fakemodem.vcxproj
index 029e5bdb..1668c23a 100644
--- a/network/modem/fakemodem/fakemodem.vcxproj
+++ b/network/modem/fakemodem/fakemodem.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -23,7 +23,7 @@
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{7FB2EEDE-628E-4211-B00C-66D19CF3D32A}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -35,23 +35,23 @@
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
+ <UseDebugLibraries>False</UseDebugLibraries>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Universal</DriverTargetPlatform>
@@ -66,13 +66,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -85,13 +85,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>fakemodem</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>fakemodem</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>fakemodem</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>fakemodem</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -110,7 +110,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
<ExceptionHandling>
@@ -126,7 +126,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
<ExceptionHandling>
@@ -142,7 +142,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
<ExceptionHandling>
diff --git a/network/modem/fakemodem/mdmfake.inx b/network/modem/fakemodem/mdmfake.inx
index 8886b9e6..ea95a9ad 100644
--- a/network/modem/fakemodem/mdmfake.inx
+++ b/network/modem/fakemodem/mdmfake.inx
Binary files differ
diff --git a/network/ndis/extension/base/sxbase.vcxproj b/network/ndis/extension/base/sxbase.vcxproj
index 40b69bc3..49a0f427 100644
--- a/network/ndis/extension/base/sxbase.vcxproj
+++ b/network/ndis/extension/base/sxbase.vcxproj
@@ -1,6 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
@@ -21,7 +29,15 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
+ <DriverType>WDM</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
@@ -29,7 +45,15 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
+ <DriverType>WDM</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
@@ -41,16 +65,28 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>sxbase</TargetName>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetName>sxbase</TargetName>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>sxbase</TargetName>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetName>sxbase</TargetName>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
@@ -75,6 +111,30 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630=1;NDIS_WDM=1</PreprocessorDefinitions>
+ </ResourceCompile>
+ <ClCompile>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630=1;NDIS_WDM=1</PreprocessorDefinitions>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ </ClCompile>
+ <Midl>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630=1;NDIS_WDM=1</PreprocessorDefinitions>
+ </Midl>
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ </Link>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
@@ -99,6 +159,30 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630=1;NDIS_WDM=1</PreprocessorDefinitions>
+ </ResourceCompile>
+ <ClCompile>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630=1;NDIS_WDM=1</PreprocessorDefinitions>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ </ClCompile>
+ <Midl>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630=1;NDIS_WDM=1</PreprocessorDefinitions>
+ </Midl>
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ </Link>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="precompsrc.c">
<AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -132,4 +216,4 @@
<ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
+</Project>
diff --git a/network/ndis/extension/extensions.sln b/network/ndis/extension/extensions.sln
index 6915713c..60c86c4d 100644
--- a/network/ndis/extension/extensions.sln
+++ b/network/ndis/extension/extensions.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -25,10 +25,24 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mspassthroughext", "samples
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {116389EB-9596-42A0-9C05-66DBD2A62363}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {116389EB-9596-42A0-9C05-66DBD2A62363}.Debug|ARM64.Build.0 = Debug|ARM64
+ {86E5643E-4462-4EDC-A315-07C2D260C5AD}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {86E5643E-4462-4EDC-A315-07C2D260C5AD}.Debug|ARM64.Build.0 = Debug|ARM64
+ {C0A48ACA-3961-4E93-B2B4-4D27E0106A3B}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {C0A48ACA-3961-4E93-B2B4-4D27E0106A3B}.Debug|ARM64.Build.0 = Debug|ARM64
+ {116389EB-9596-42A0-9C05-66DBD2A62363}.Release|ARM64.ActiveCfg = Release|ARM64
+ {116389EB-9596-42A0-9C05-66DBD2A62363}.Release|ARM64.Build.0 = Release|ARM64
+ {86E5643E-4462-4EDC-A315-07C2D260C5AD}.Release|ARM64.ActiveCfg = Release|ARM64
+ {86E5643E-4462-4EDC-A315-07C2D260C5AD}.Release|ARM64.Build.0 = Release|ARM64
+ {C0A48ACA-3961-4E93-B2B4-4D27E0106A3B}.Release|ARM64.ActiveCfg = Release|ARM64
+ {C0A48ACA-3961-4E93-B2B4-4D27E0106A3B}.Release|ARM64.Build.0 = Release|ARM64
{116389EB-9596-42A0-9C05-66DBD2A62363}.Debug|x64.ActiveCfg = Debug|x64
{116389EB-9596-42A0-9C05-66DBD2A62363}.Debug|x64.Build.0 = Debug|x64
{116389EB-9596-42A0-9C05-66DBD2A62363}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/ndis/extension/samples/forward/msforwardext.inf b/network/ndis/extension/samples/forward/msforwardext.inf
index 9d3d587c..4af1b0fb 100644
--- a/network/ndis/extension/samples/forward/msforwardext.inf
+++ b/network/ndis/extension/samples/forward/msforwardext.inf
Binary files differ
diff --git a/network/ndis/extension/samples/forward/msforwardext.vcxproj b/network/ndis/extension/samples/forward/msforwardext.vcxproj
index 959386bc..4c356ec9 100644
--- a/network/ndis/extension/samples/forward/msforwardext.vcxproj
+++ b/network/ndis/extension/samples/forward/msforwardext.vcxproj
@@ -1,6 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
@@ -21,7 +29,15 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
+ <DriverType>WDM</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -29,7 +45,15 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
+ <DriverType>WDM</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -41,16 +65,28 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>msforwardext</TargetName>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetName>msforwardext</TargetName>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>msforwardext</TargetName>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetName>msforwardext</TargetName>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
@@ -65,6 +101,20 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
+ </ClCompile>
+ <Midl>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
+ </Midl>
+ <ResourceCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
+ </ResourceCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
@@ -79,9 +129,39 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
+ </ClCompile>
+ <Midl>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
+ </Midl>
+ <ResourceCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS640=1</PreprocessorDefinitions>
+ </ResourceCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;.\..\..\base\$(IntDir)\sxbase.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
+ </Link>
+ <ClCompile>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ </ClCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;.\..\..\base\$(IntDir)\sxbase.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -107,6 +187,20 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;.\..\..\base\$(IntDir)\sxbase.lib</AdditionalDependencies>
+ </Link>
+ <ClCompile>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ </ClCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="MsForwardExt.c">
<AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -135,4 +229,4 @@
<ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
+</Project>
diff --git a/network/ndis/extension/samples/passthrough/mspassthroughext.inf b/network/ndis/extension/samples/passthrough/mspassthroughext.inf
index 09985132..8339e7c8 100644
--- a/network/ndis/extension/samples/passthrough/mspassthroughext.inf
+++ b/network/ndis/extension/samples/passthrough/mspassthroughext.inf
Binary files differ
diff --git a/network/ndis/extension/samples/passthrough/mspassthroughext.vcxproj b/network/ndis/extension/samples/passthrough/mspassthroughext.vcxproj
index aaa7da8e..94751bcf 100644
--- a/network/ndis/extension/samples/passthrough/mspassthroughext.vcxproj
+++ b/network/ndis/extension/samples/passthrough/mspassthroughext.vcxproj
@@ -1,6 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
@@ -21,7 +29,15 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
+ <DriverType>WDM</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -29,7 +45,15 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
+ <DriverType>WDM</DriverType>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -41,16 +65,28 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+ </ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>mspassthroughext</TargetName>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetName>mspassthroughext</TargetName>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>mspassthroughext</TargetName>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetName>mspassthroughext</TargetName>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
@@ -65,6 +101,20 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
+ </ClCompile>
+ <Midl>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
+ </Midl>
+ <ResourceCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
+ </ResourceCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
@@ -79,9 +129,39 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
+ </ClCompile>
+ <Midl>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
+ </Midl>
+ <ResourceCompile>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
+ </ResourceCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;.\..\..\base\$(IntDir)\sxbase.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
+ </Link>
+ <ClCompile>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ </ClCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;.\..\..\base\$(IntDir)\sxbase.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -107,6 +187,20 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;.\..\..\base\$(IntDir)\sxbase.lib</AdditionalDependencies>
+ </Link>
+ <ClCompile>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <WarningLevel>Level4</WarningLevel>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ </ClCompile>
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ </ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="MsPassthroughExt.c">
<AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -135,4 +229,4 @@
<ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
+</Project>
diff --git a/network/ndis/filter/filter.h b/network/ndis/filter/filter.h
index bf8da200..c21248d2 100644
--- a/network/ndis/filter/filter.h
+++ b/network/ndis/filter/filter.h
@@ -115,7 +115,7 @@ typedef struct _QUEUE_HEADER
{
PQUEUE_ENTRY Head;
PQUEUE_ENTRY Tail;
-} QUEUE_HEADER, PQUEUE_HEADER;
+} QUEUE_HEADER, *PQUEUE_HEADER;
#if TRACK_RECEIVES
diff --git a/network/ndis/filter/filter.sln b/network/ndis/filter/filter.sln
index 6b8b743f..3983e71e 100644
--- a/network/ndis/filter/filter.sln
+++ b/network/ndis/filter/filter.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -7,16 +7,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ndislwf", "ndislwf.vcxproj"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Debug|Win32.ActiveCfg = Debug|Win32
- {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Debug|Win32.Build.0 = Debug|Win32
- {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Release|Win32.ActiveCfg = Release|Win32
- {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Release|Win32.Build.0 = Release|Win32
+ {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Release|ARM64.ActiveCfg = Release|ARM64
+ {CD502925-8888-4A09-8AD0-04B80A73FBBD}.Release|ARM64.Build.0 = Release|ARM64
{CD502925-8888-4A09-8AD0-04B80A73FBBD}.Debug|x64.ActiveCfg = Debug|x64
{CD502925-8888-4A09-8AD0-04B80A73FBBD}.Debug|x64.Build.0 = Debug|x64
{CD502925-8888-4A09-8AD0-04B80A73FBBD}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/ndis/filter/ndislwf.vcxproj b/network/ndis/filter/ndislwf.vcxproj
index fa4f9d39..494c7d18 100644
--- a/network/ndis/filter/ndislwf.vcxproj
+++ b/network/ndis/filter/ndislwf.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{CD502925-8888-4A09-8AD0-04B80A73FBBD}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{F40772D8-6882-4C62-8849-D5651CC7751C}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>ndislwf</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>ndislwf</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>ndislwf</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>ndislwf</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -116,7 +116,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDISLWF=1</PreprocessorDefinitions>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -145,7 +145,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDISLWF=1</PreprocessorDefinitions>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -174,7 +174,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDISLWF=1</PreprocessorDefinitions>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -206,6 +206,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<ClCompile>
<ExceptionHandling>
@@ -215,9 +216,10 @@
<FileDigestAlgorithm>SHA256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<ClCompile>
<ExceptionHandling>
@@ -227,7 +229,7 @@
<FileDigestAlgorithm>SHA256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
</Link>
@@ -239,7 +241,7 @@
<FileDigestAlgorithm>SHA256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
</Link>
diff --git a/network/ndis/filter/netlwf.inf b/network/ndis/filter/netlwf.inf
index ae728775..e59b56fb 100644
--- a/network/ndis/filter/netlwf.inf
+++ b/network/ndis/filter/netlwf.inf
Binary files differ
diff --git a/network/ndis/mux/driver/60/miniport.c b/network/ndis/mux/driver/60/miniport.c
index e0c3e380..f30c4b62 100644
--- a/network/ndis/mux/driver/60/miniport.c
+++ b/network/ndis/mux/driver/60/miniport.c
@@ -710,25 +710,23 @@ Return Value:
NDIS_STATISTICS_FLAGS_VALID_RCV_ERROR |
NDIS_STATISTICS_FLAGS_VALID_XMIT_ERROR;
- StatisticsInfo.ifInDiscards = pVElan->RcvCrcErrors +
- pVElan->RcvAlignmentErrors +
- pVElan->RcvResourceErrors +
- pVElan->RcvDmaOverrunErrors +
- pVElan->RcvRuntErrors;
+ StatisticsInfo.ifInDiscards =
+ (ULONG64)pVElan->RcvCrcErrors +
+ (ULONG64)pVElan->RcvAlignmentErrors +
+ (ULONG64)pVElan->RcvResourceErrors +
+ (ULONG64)pVElan->RcvDmaOverrunErrors +
+ (ULONG64)pVElan->RcvRuntErrors;
#if IEEE_VLAN_SUPPORT
- StatisticsInfo.ifInDiscards += (pVElan->RcvVlanIdErrors +
- pVElan->RcvFormatErrors);
+ StatisticsInfo.ifInDiscards += ((ULONG64)pVElan->RcvVlanIdErrors + (ULONG64)pVElan->RcvFormatErrors);
#endif
-
StatisticsInfo.ifInErrors = StatisticsInfo.ifInDiscards -
- pVElan->RcvResourceErrors;
+ (ULONG64)pVElan->RcvResourceErrors;
-
- StatisticsInfo.ifOutErrors = pVElan->TxAbortExcessCollisions +
- pVElan->TxDmaUnderrun +
- pVElan->TxLostCRS +
- pVElan->TxLateCollisions;
+ StatisticsInfo.ifOutErrors = (ULONG64)pVElan->TxAbortExcessCollisions +
+ (ULONG64)pVElan->TxDmaUnderrun +
+ (ULONG64)pVElan->TxLostCRS +
+ (ULONG64)pVElan->TxLateCollisions;
pInfo = &StatisticsInfo;
break;
diff --git a/network/ndis/mux/driver/60/mux_mp.inf b/network/ndis/mux/driver/60/mux_mp.inf
index 9c5f998c..f216ac16 100644
--- a/network/ndis/mux/driver/60/mux_mp.inf
+++ b/network/ndis/mux/driver/60/mux_mp.inf
Binary files differ
diff --git a/network/ndis/mux/driver/60/muxp.inf b/network/ndis/mux/driver/60/muxp.inf
index 836e60e1..f9c4c04e 100644
--- a/network/ndis/mux/driver/60/muxp.inf
+++ b/network/ndis/mux/driver/60/muxp.inf
Binary files differ
diff --git a/network/ndis/mux/driver/60/novlan/mux.vcxproj b/network/ndis/mux/driver/60/novlan/mux.vcxproj
index 33700ad4..339983a6 100644
--- a/network/ndis/mux/driver/60/novlan/mux.vcxproj
+++ b/network/ndis/mux/driver/60/novlan/mux.vcxproj
@@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
@@ -17,19 +9,27 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B2DE2C37-B3F2-491E-94AE-402A7B4D3308}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{66B17978-A259-41F2-B762-8A38382B603D}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -37,23 +37,23 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -68,10 +68,10 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
@@ -81,10 +81,10 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>mux</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -133,55 +133,56 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<AdditionalOptions>%(AdditionalOptions) /GS</AdditionalOptions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<AdditionalOptions>%(AdditionalOptions) /GS</AdditionalOptions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
@@ -217,7 +218,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
</Link>
@@ -236,7 +237,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
</Link>
@@ -283,8 +284,29 @@
<ResourceCompile Include="..\mux.rc" />
</ItemGroup>
<ItemGroup>
+ <FilesToPackage Include="$(TargetPath)">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\x64\Release\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\x64\Debug\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\ARM64\Release\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\ARM64\Debug\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
<Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
+ <Inf Include="..\muxp.inf" />
+ <Inf Include="..\mux_mp.inf" />
</ItemGroup>
<ItemGroup>
<None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
diff --git a/network/ndis/mux/driver/60/novlan/mux.vcxproj.Filters b/network/ndis/mux/driver/60/novlan/mux.vcxproj.Filters
index ff91d92c..fe979006 100644
--- a/network/ndis/mux/driver/60/novlan/mux.vcxproj.Filters
+++ b/network/ndis/mux/driver/60/novlan/mux.vcxproj.Filters
@@ -37,4 +37,12 @@
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
+ <ItemGroup>
+ <Inf Include="..\muxp.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ <Inf Include="..\mux_mp.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj b/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj
index b521aed6..0bb361ce 100644
--- a/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj
+++ b/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{015D7470-0FC8-4597-A67E-BD9C754F0681}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{261E8436-6685-4860-962C-AF3076B35DB9}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,27 +65,27 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>muxvlan</TargetName>
+ <TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>muxvlan</TargetName>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>muxvlan</TargetName>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>muxvlan</TargetName>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <TargetName>mux</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -113,13 +113,13 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<AdditionalOptions>%(AdditionalOptions) /GS</AdditionalOptions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -127,19 +127,19 @@
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalOptions>%(AdditionalOptions) /GS</AdditionalOptions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
@@ -165,13 +165,13 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<AdditionalOptions>%(AdditionalOptions) /GS</AdditionalOptions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -179,21 +179,22 @@
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);IEEE_VLAN_SUPPORT=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
@@ -210,9 +211,10 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
@@ -229,7 +231,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
</Link>
@@ -248,7 +250,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
</Link>
@@ -295,8 +297,29 @@
<ResourceCompile Include="..\mux.rc" />
</ItemGroup>
<ItemGroup>
+ <FilesToPackage Include="$(TargetPath)">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\x64\Release\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\x64\Debug\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\arm64\Release\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Release|arm64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
+ <FilesToPackage Include="$(SolutionDir)notifyob\arm64\Debug\mux.dll" Condition="'$(Configuration)|$(Platform)'=='Debug|arm64'">
+ <PackageRelativeDirectory>
+ </PackageRelativeDirectory>
+ </FilesToPackage>
<Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
+ <Inf Include="..\muxp.inf" />
+ <Inf Include="..\mux_mp.inf" />
</ItemGroup>
<ItemGroup>
<None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
diff --git a/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj.Filters b/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj.Filters
index 8bd7f5bf..64862290 100644
--- a/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj.Filters
+++ b/network/ndis/mux/driver/60/vlan/muxvlan.vcxproj.Filters
@@ -37,4 +37,12 @@
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
+ <ItemGroup>
+ <Inf Include="..\mux_mp.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ <Inf Include="..\muxp.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/network/ndis/mux/mux.sln b/network/ndis/mux/mux.sln
index 551a21b7..67f60d69 100644
--- a/network/ndis/mux/mux.sln
+++ b/network/ndis/mux/mux.sln
@@ -1,7 +1,7 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 12.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Vlan", "Vlan", "{DFD0A31B-8B62-4BAA-998E-161F01D1A01B}"
EndProject
@@ -14,39 +14,45 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notifyob", "Notifyob", "{2CAF23FF-28F8-4D52-B6C9-B76C8BCD5F67}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "muxvlan", "driver\60\vlan\muxvlan.vcxproj", "{015D7470-0FC8-4597-A67E-BD9C754F0681}"
+ ProjectSection(ProjectDependencies) = postProject
+ {92E3B437-C258-47FB-8856-D3FEA56A3BCC} = {92E3B437-C258-47FB-8856-D3FEA56A3BCC}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mux", "driver\60\novlan\mux.vcxproj", "{B2DE2C37-B3F2-491E-94AE-402A7B4D3308}"
+ ProjectSection(ProjectDependencies) = postProject
+ {92E3B437-C258-47FB-8856-D3FEA56A3BCC} = {92E3B437-C258-47FB-8856-D3FEA56A3BCC}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mux", "notifyob\mux.vcxproj", "{92E3B437-C258-47FB-8856-D3FEA56A3BCC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {015D7470-0FC8-4597-A67E-BD9C754F0681}.Debug|Win32.ActiveCfg = Debug|Win32
- {015D7470-0FC8-4597-A67E-BD9C754F0681}.Debug|Win32.Build.0 = Debug|Win32
- {015D7470-0FC8-4597-A67E-BD9C754F0681}.Release|Win32.ActiveCfg = Release|Win32
- {015D7470-0FC8-4597-A67E-BD9C754F0681}.Release|Win32.Build.0 = Release|Win32
+ {015D7470-0FC8-4597-A67E-BD9C754F0681}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {015D7470-0FC8-4597-A67E-BD9C754F0681}.Debug|ARM64.Build.0 = Debug|ARM64
+ {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Debug|ARM64.Build.0 = Debug|ARM64
+ {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Debug|ARM64.Build.0 = Debug|ARM64
+ {015D7470-0FC8-4597-A67E-BD9C754F0681}.Release|ARM64.ActiveCfg = Release|ARM64
+ {015D7470-0FC8-4597-A67E-BD9C754F0681}.Release|ARM64.Build.0 = Release|ARM64
+ {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Release|ARM64.ActiveCfg = Release|ARM64
+ {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Release|ARM64.Build.0 = Release|ARM64
+ {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Release|ARM64.ActiveCfg = Release|ARM64
+ {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Release|ARM64.Build.0 = Release|ARM64
{015D7470-0FC8-4597-A67E-BD9C754F0681}.Debug|x64.ActiveCfg = Debug|x64
{015D7470-0FC8-4597-A67E-BD9C754F0681}.Debug|x64.Build.0 = Debug|x64
{015D7470-0FC8-4597-A67E-BD9C754F0681}.Release|x64.ActiveCfg = Release|x64
{015D7470-0FC8-4597-A67E-BD9C754F0681}.Release|x64.Build.0 = Release|x64
- {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Debug|Win32.ActiveCfg = Debug|Win32
- {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Debug|Win32.Build.0 = Debug|Win32
- {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Release|Win32.ActiveCfg = Release|Win32
- {B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Release|Win32.Build.0 = Release|Win32
{B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Debug|x64.ActiveCfg = Debug|x64
{B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Debug|x64.Build.0 = Debug|x64
{B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Release|x64.ActiveCfg = Release|x64
{B2DE2C37-B3F2-491E-94AE-402A7B4D3308}.Release|x64.Build.0 = Release|x64
- {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Debug|Win32.ActiveCfg = Debug|Win32
- {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Debug|Win32.Build.0 = Debug|Win32
- {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Release|Win32.ActiveCfg = Release|Win32
- {92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Release|Win32.Build.0 = Release|Win32
{92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Debug|x64.ActiveCfg = Debug|x64
{92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Debug|x64.Build.0 = Debug|x64
{92E3B437-C258-47FB-8856-D3FEA56A3BCC}.Release|x64.ActiveCfg = Release|x64
@@ -56,11 +62,14 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {015D7470-0FC8-4597-A67E-BD9C754F0681} = {DFD0A31B-8B62-4BAA-998E-161F01D1A01B}
- {B2DE2C37-B3F2-491E-94AE-402A7B4D3308} = {2D3D13DE-5985-4A6C-8562-3E954D634F1E}
- {92E3B437-C258-47FB-8856-D3FEA56A3BCC} = {2CAF23FF-28F8-4D52-B6C9-B76C8BCD5F67}
{DFD0A31B-8B62-4BAA-998E-161F01D1A01B} = {BB781269-F74A-43E0-AD7D-DBD32BBF2012}
{BB781269-F74A-43E0-AD7D-DBD32BBF2012} = {26B59072-BF66-4E06-83CA-3F4F95378A23}
{2D3D13DE-5985-4A6C-8562-3E954D634F1E} = {BB781269-F74A-43E0-AD7D-DBD32BBF2012}
+ {015D7470-0FC8-4597-A67E-BD9C754F0681} = {DFD0A31B-8B62-4BAA-998E-161F01D1A01B}
+ {B2DE2C37-B3F2-491E-94AE-402A7B4D3308} = {2D3D13DE-5985-4A6C-8562-3E954D634F1E}
+ {92E3B437-C258-47FB-8856-D3FEA56A3BCC} = {2CAF23FF-28F8-4D52-B6C9-B76C8BCD5F67}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D56D7C7C-8F28-4702-A8D4-D0FDB5A2756C}
EndGlobalSection
EndGlobal
diff --git a/network/ndis/mux/notifyob/adapter.cpp b/network/ndis/mux/notifyob/adapter.cpp
index ea964c7a..a208aa57 100644
--- a/network/ndis/mux/notifyob/adapter.cpp
+++ b/network/ndis/mux/notifyob/adapter.cpp
@@ -146,9 +146,13 @@ HRESULT CMuxPhysicalAdapter::LoadConfiguration (VOID)
// device IDs of the virtual miniports are stored.
//
- StringFromGUID2( m_guidAdapter,
+ int numChars = StringFromGUID2( m_guidAdapter,
szAdapterGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
StringCchPrintfW ( szAdapterGuidKey,
celems(szAdapterGuidKey),
@@ -225,9 +229,14 @@ HRESULT CMuxPhysicalAdapter::LoadConfiguration (VOID)
if ( lpMiniportGuid != NULL ) {
- CLSIDFromString( lpMiniportGuid,
+ HRESULT hrResult = CLSIDFromString( lpMiniportGuid,
&guidMiniport );
-
+
+ if (hrResult != S_OK) {
+
+ lResult = ERROR_INVALID_PARAMETER;
+ }
+
//
// Create an instance representing the virtual miniport.
//
@@ -532,10 +541,16 @@ HRESULT CMuxPhysicalAdapter::ApplyRegistryChanges (ConfigAction eApplyAction)
// Open/create and then close the registry key to ensure that it does exist.
//
- StringFromGUID2( m_guidAdapter,
+ int numChars = StringFromGUID2( m_guidAdapter,
szAdapterGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
+
lResult = RegCreateKeyExW( HKEY_LOCAL_MACHINE,
c_szAdapterList,
0,
@@ -786,9 +801,16 @@ HRESULT CMuxPhysicalAdapter::ApplyPnpChanges(
// Notify the driver that one or more virtual miniports have been added.
//
- StringFromGUID2( guidMiniport,
+ int numChars = StringFromGUID2( guidMiniport,
szMiniportGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ CoTaskMemFree(lpszBindName);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
lpDevice = AddDevicePrefix( szMiniportGuid );
if ( lpDevice ) {
@@ -865,9 +887,16 @@ HRESULT CMuxPhysicalAdapter::ApplyPnpChanges(
if ( eApplyAction != eActRemove ) {
- StringFromGUID2( guidMiniport,
+ int numChars = StringFromGUID2( guidMiniport,
szMiniportGuid,
MAX_PATH+1 );
+ if(numChars == 0) {
+
+ CoTaskMemFree(lpszBindName);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
lpDevice = AddDevicePrefix( szMiniportGuid );
if ( lpDevice ) {
diff --git a/network/ndis/mux/notifyob/common.cpp b/network/ndis/mux/notifyob/common.cpp
index 24c7b486..5ca2ca7f 100644
--- a/network/ndis/mux/notifyob/common.cpp
+++ b/network/ndis/mux/notifyob/common.cpp
@@ -328,6 +328,7 @@ HRESULT HrFindInstance (INetCfg *pnc,
ULONG ulCount;
BOOL found;
HRESULT hr;
+ int numChars;
TraceMsg( L"-->HrFindInstance.\n" );
@@ -336,10 +337,17 @@ HRESULT HrFindInstance (INetCfg *pnc,
if ( hr == S_OK ) {
- StringFromGUID2( guidInstance,
+ numChars = StringFromGUID2( guidInstance,
szGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ ReleaseObj(pencc);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
TraceMsg( L" Looking for component with InstanceGuid %s\n",
szGuid );
@@ -353,10 +361,20 @@ HRESULT HrFindInstance (INetCfg *pnc,
if ( hr == S_OK ) {
- StringFromGUID2( guid,
+ numChars = StringFromGUID2( guid,
szGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ ReleaseObj(pncc);
+
+ ReleaseObj(pencc);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
+
TraceMsg( L" Found component with InstanceGuid %s\n",
szGuid );
diff --git a/network/ndis/mux/notifyob/dllmain.cpp b/network/ndis/mux/notifyob/dllmain.cpp
index d9785cd6..636f2c8a 100644
--- a/network/ndis/mux/notifyob/dllmain.cpp
+++ b/network/ndis/mux/notifyob/dllmain.cpp
@@ -68,6 +68,7 @@ BOOL WINAPI DllMain (HINSTANCE hInstance,
/////////////////////////////////////////////////////////////////////////////
// Used to determine whether the DLL can be unloaded by OLE
+__control_entrypoint(DllExport)
STDAPI DllCanUnloadNow(void)
{
HRESULT hr;
@@ -85,6 +86,7 @@ STDAPI DllCanUnloadNow(void)
/////////////////////////////////////////////////////////////////////////////
// Returns a class factory to create an object of the requested type
+_Check_return_
STDAPI DllGetClassObject(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ LPVOID* ppv)
{
TraceMsg( L"-->DllGetClassObject.\n");
diff --git a/network/ndis/mux/notifyob/mux.vcxproj b/network/ndis/mux/notifyob/mux.vcxproj
index dc1e2897..743ea90a 100644
--- a/network/ndis/mux/notifyob/mux.vcxproj
+++ b/network/ndis/mux/notifyob/mux.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,7 +22,7 @@
<ProjectGuid>{92E3B437-C258-47FB-8856-D3FEA56A3BCC}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{67118C02-9183-4F2D-8E60-3D4F02B62EA9}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -34,23 +34,23 @@
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
+ <UseDebugLibraries>False</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>mux</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>mux</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -100,11 +100,10 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;DISABLE_PROTOCOLS_TO_PHYSICAL</PreprocessorDefinitions>
</ResourceCompile>
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;DISABLE_PROTOCOLS_TO_PHYSICAL</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -117,11 +116,10 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;DISABLE_PROTOCOLS_TO_PHYSICAL</PreprocessorDefinitions>
</ResourceCompile>
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;DISABLE_PROTOCOLS_TO_PHYSICAL</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -134,11 +132,10 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;DISABLE_PROTOCOLS_TO_PHYSICAL</PreprocessorDefinitions>
</ResourceCompile>
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;DISABLE_PROTOCOLS_TO_PHYSICAL</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -151,8 +148,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;DISABLE_PROTOCOLS_TO_PHYSICAL</PreprocessorDefinitions>
</ResourceCompile>
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -163,7 +159,7 @@
<AdditionalOptions>%(AdditionalOptions) -i $(IntDir) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Midl>
<AdditionalOptions>%(AdditionalOptions) -no_format_opt</AdditionalOptions>
</Midl>
@@ -171,7 +167,7 @@
<AdditionalOptions>%(AdditionalOptions) -i $(IntDir) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<AdditionalOptions>%(AdditionalOptions) -no_format_opt</AdditionalOptions>
</Midl>
@@ -179,7 +175,7 @@
<AdditionalOptions>%(AdditionalOptions) -i $(IntDir) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Midl>
<AdditionalOptions>%(AdditionalOptions) -no_format_opt</AdditionalOptions>
</Midl>
@@ -193,19 +189,19 @@
<RuntimeTypeInfo>true</RuntimeTypeInfo>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
@@ -214,13 +210,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -229,19 +225,19 @@
<ModuleDefinitionFile>mux.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;setupapi.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib</AdditionalDependencies>
<ModuleDefinitionFile>mux.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;setupapi.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib</AdditionalDependencies>
<ModuleDefinitionFile>mux.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;setupapi.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib</AdditionalDependencies>
<ModuleDefinitionFile>mux.def</ModuleDefinitionFile>
diff --git a/network/ndis/mux/notifyob/notify.cpp b/network/ndis/mux/notifyob/notify.cpp
index be239fcd..3d0a55ff 100644
--- a/network/ndis/mux/notifyob/notify.cpp
+++ b/network/ndis/mux/notifyob/notify.cpp
@@ -1041,11 +1041,8 @@ STDMETHODIMP CMuxNotify::ApplyProperties (VOID)
INetLanConnectionUiInfo *pLanConnUiInfo;
CMuxPhysicalAdapter *pAdapter;
GUID guidAdapter;
- INetCfgComponent *pncc;
HRESULT hr = S_OK;
- UNREFERENCED_PARAMETER(pncc);
-
TraceMsg(L"-->CMuxNotify INetCfgPropertyUi::ApplyProperties\n");
if ( m_pUnkContext ) {
@@ -1232,9 +1229,14 @@ HRESULT CMuxNotify::HrLoadAdapterConfiguration (VOID)
// Subkeys are actually a guid/bindname of the adapters.
//
szAdapterGuid[MAX_PATH]='\0';
- CLSIDFromString( szAdapterGuid,
+ HRESULT hrResult = CLSIDFromString( szAdapterGuid,
&guidAdapter );
+ if (hrResult != S_OK) {
+
+ lResult = ERROR_INVALID_PARAMETER;
+ }
+
//
// Create an instance representing the adapter.
//
diff --git a/network/ndis/mux/notifyob/virtual.cpp b/network/ndis/mux/notifyob/virtual.cpp
index 5b6cde80..fd3cce0e 100644
--- a/network/ndis/mux/notifyob/virtual.cpp
+++ b/network/ndis/mux/notifyob/virtual.cpp
@@ -330,17 +330,22 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
WCHAR szMiniportGuid[MAX_PATH+1];
LPWSTR lpDevice;
LONG lResult = 0;
-
+ int numChars;
TraceMsg( L"-->CMuxVirtualMiniport::ApplyRegistryChanges.\n" );
switch( eApplyAction ) {
case eActAdd: // Virtual miniport added.
- StringFromGUID2( m_guidAdapter,
+ numChars = StringFromGUID2( m_guidAdapter,
szAdapterGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
StringCchPrintfW ( szAdapterGuidKey,
celems(szAdapterGuidKey),
L"%s\\%s",
@@ -361,10 +366,17 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
if ( lResult == ERROR_SUCCESS ) {
- StringFromGUID2( m_guidMiniport,
+ numChars = StringFromGUID2( m_guidMiniport,
szMiniportGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ RegCloseKey(hkeyAdapterGuid);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
lpDevice = AddDevicePrefix( szMiniportGuid );
if ( lpDevice ) {
@@ -411,10 +423,15 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
case eActRemove: // Virtual miniport removed.
- StringFromGUID2( m_guidAdapter,
+ numChars = StringFromGUID2( m_guidAdapter,
szAdapterGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
StringCchPrintfW( szAdapterGuidKey,
celems(szAdapterGuidKey),
L"%s\\%s",
@@ -434,10 +451,17 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
if ( lResult == ERROR_SUCCESS ) {
- StringFromGUID2( m_guidMiniport,
+ numChars = StringFromGUID2( m_guidMiniport,
szMiniportGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ RegCloseKey(hkeyAdapterGuid);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
lpDevice = AddDevicePrefix( szMiniportGuid );
TraceMsg( L" Deleting %s at %s.\n",
lpDevice,
diff --git a/network/ndis/ndisprot/6x/ndisprot60.sln b/network/ndis/ndisprot/6x/ndisprot60.sln
index 474b2ff0..5ca1e553 100644
--- a/network/ndis/ndisprot/6x/ndisprot60.sln
+++ b/network/ndis/ndisprot/6x/ndisprot60.sln
@@ -1,7 +1,7 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 12.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "60", "60", "{09F8A71E-BD45-42F5-8CB5-82F137773350}"
EndProject
@@ -19,32 +19,32 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "prottest", "test\prottest.v
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Debug|Win32.ActiveCfg = Debug|Win32
- {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Debug|Win32.Build.0 = Debug|Win32
- {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Release|Win32.ActiveCfg = Release|Win32
- {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Release|Win32.Build.0 = Release|Win32
+ {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Debug|ARM64.Build.0 = Debug|ARM64
+ {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Debug|ARM64.Build.0 = Debug|ARM64
+ {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Debug|ARM64.Build.0 = Debug|ARM64
+ {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Release|ARM64.ActiveCfg = Release|ARM64
+ {F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Release|ARM64.Build.0 = Release|ARM64
+ {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Release|ARM64.ActiveCfg = Release|ARM64
+ {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Release|ARM64.Build.0 = Release|ARM64
+ {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Release|ARM64.ActiveCfg = Release|ARM64
+ {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Release|ARM64.Build.0 = Release|ARM64
{F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Debug|x64.ActiveCfg = Debug|x64
{F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Debug|x64.Build.0 = Debug|x64
{F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Release|x64.ActiveCfg = Release|x64
{F27914B8-F3D9-4164-BF33-42BBFA19AED4}.Release|x64.Build.0 = Release|x64
- {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Debug|Win32.ActiveCfg = Debug|Win32
- {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Debug|Win32.Build.0 = Debug|Win32
- {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Release|Win32.ActiveCfg = Release|Win32
- {C0748EAB-F425-488A-9F39-77D5DE2DD251}.Release|Win32.Build.0 = Release|Win32
{C0748EAB-F425-488A-9F39-77D5DE2DD251}.Debug|x64.ActiveCfg = Debug|x64
{C0748EAB-F425-488A-9F39-77D5DE2DD251}.Debug|x64.Build.0 = Debug|x64
{C0748EAB-F425-488A-9F39-77D5DE2DD251}.Release|x64.ActiveCfg = Release|x64
{C0748EAB-F425-488A-9F39-77D5DE2DD251}.Release|x64.Build.0 = Release|x64
- {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Debug|Win32.ActiveCfg = Debug|Win32
- {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Debug|Win32.Build.0 = Debug|Win32
- {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Release|Win32.ActiveCfg = Release|Win32
- {34A953AA-28CB-472E-B438-1BE26FDF1D54}.Release|Win32.Build.0 = Release|Win32
{34A953AA-28CB-472E-B438-1BE26FDF1D54}.Debug|x64.ActiveCfg = Debug|x64
{34A953AA-28CB-472E-B438-1BE26FDF1D54}.Debug|x64.Build.0 = Debug|x64
{34A953AA-28CB-472E-B438-1BE26FDF1D54}.Release|x64.ActiveCfg = Release|x64
@@ -54,10 +54,13 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {09F8A71E-BD45-42F5-8CB5-82F137773350} = {40B41B7C-63E0-4BEC-9BF6-2AE9002E0670}
+ {7B0AA49C-0A8C-4EED-8ACE-1A80EC2E5AEB} = {20D7328F-9929-4D3A-BC1D-08E2442A929D}
{F27914B8-F3D9-4164-BF33-42BBFA19AED4} = {09F8A71E-BD45-42F5-8CB5-82F137773350}
{C0748EAB-F425-488A-9F39-77D5DE2DD251} = {7B0AA49C-0A8C-4EED-8ACE-1A80EC2E5AEB}
{34A953AA-28CB-472E-B438-1BE26FDF1D54} = {20D7328F-9929-4D3A-BC1D-08E2442A929D}
- {09F8A71E-BD45-42F5-8CB5-82F137773350} = {40B41B7C-63E0-4BEC-9BF6-2AE9002E0670}
- {7B0AA49C-0A8C-4EED-8ACE-1A80EC2E5AEB} = {40B41B7C-63E0-4BEC-9BF6-2AE9002E0670}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {2A8BDEF4-DEBC-4BDD-A1E5-F767E2EC8D5B}
EndGlobalSection
EndGlobal
diff --git a/network/ndis/ndisprot/6x/sys/60/ndisprot60.inf b/network/ndis/ndisprot/6x/sys/60/ndisprot60.inf
index 92f30001..bae3936c 100644
--- a/network/ndis/ndisprot/6x/sys/60/ndisprot60.inf
+++ b/network/ndis/ndisprot/6x/sys/60/ndisprot60.inf
Binary files differ
diff --git a/network/ndis/ndisprot/6x/sys/60/ndisprot60.vcxproj b/network/ndis/ndisprot/6x/sys/60/ndisprot60.vcxproj
index da4c5c58..b2e9b0fa 100644
--- a/network/ndis/ndisprot/6x/sys/60/ndisprot60.vcxproj
+++ b/network/ndis/ndisprot/6x/sys/60/ndisprot60.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{F27914B8-F3D9-4164-BF33-42BBFA19AED4}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{2D8FA4FC-0D81-4E0A-B63E-A6622384ED94}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>ndisprot60</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>ndisprot60</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>ndisprot60</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>ndisprot60</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -100,20 +100,20 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -126,22 +126,23 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
@@ -158,9 +159,10 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
@@ -177,7 +179,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
</Link>
@@ -196,7 +198,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
</Link>
diff --git a/network/ndis/ndisprot/6x/sys/630/ndisprot630.inf b/network/ndis/ndisprot/6x/sys/630/ndisprot630.inf
index f992ad08..c5d7adb6 100644
--- a/network/ndis/ndisprot/6x/sys/630/ndisprot630.inf
+++ b/network/ndis/ndisprot/6x/sys/630/ndisprot630.inf
Binary files differ
diff --git a/network/ndis/ndisprot/6x/sys/630/ndisprot630.vcxproj b/network/ndis/ndisprot/6x/sys/630/ndisprot630.vcxproj
index 08e82745..78ae6b79 100644
--- a/network/ndis/ndisprot/6x/sys/630/ndisprot630.vcxproj
+++ b/network/ndis/ndisprot/6x/sys/630/ndisprot630.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{C0748EAB-F425-488A-9F39-77D5DE2DD251}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{7354BBA5-44E7-4346-8B50-AD13E3CACB81}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>ndisprot630</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>ndisprot630</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>ndisprot630</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>ndisprot630</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -100,7 +100,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -113,7 +113,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -126,7 +126,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -153,12 +153,13 @@
</Midl>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
</ResourceCompile>
@@ -172,12 +173,13 @@
</Midl>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
</ResourceCompile>
@@ -196,7 +198,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..</AdditionalIncludeDirectories>
</ResourceCompile>
diff --git a/network/ndis/ndisprot/6x/test/prottest.vcxproj b/network/ndis/ndisprot/6x/test/prottest.vcxproj
index 9ef15c25..b8f5d68b 100644
--- a/network/ndis/ndisprot/6x/test/prottest.vcxproj
+++ b/network/ndis/ndisprot/6x/test/prottest.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{34A953AA-28CB-472E-B438-1BE26FDF1D54}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{80BF7199-3D05-47CD-85FC-CEE847224F3E}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>prottest</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>prottest</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>prottest</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>prottest</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -105,7 +105,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32WIN_</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE=1</PreprocessorDefinitions>
@@ -123,7 +123,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32WIN_</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE=1</PreprocessorDefinitions>
@@ -141,7 +141,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32WIN_</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);_UNICODE=1</PreprocessorDefinitions>
@@ -175,7 +175,7 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\sys</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);user32.lib</AdditionalDependencies>
</Link>
@@ -191,7 +191,7 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\sys</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);user32.lib</AdditionalDependencies>
</Link>
@@ -207,7 +207,7 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\sys</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);user32.lib</AdditionalDependencies>
</Link>
diff --git a/network/ndis/ndisprot_kmdf/60/ndisprot.inx b/network/ndis/ndisprot_kmdf/60/ndisprot.inx
index a25033cf..ecd932c1 100644
--- a/network/ndis/ndisprot_kmdf/60/ndisprot.inx
+++ b/network/ndis/ndisprot_kmdf/60/ndisprot.inx
Binary files differ
diff --git a/network/ndis/ndisprot_kmdf/60/nprt6wdf.vcxproj b/network/ndis/ndisprot_kmdf/60/nprt6wdf.vcxproj
index a04d1a1d..77a28765 100644
--- a/network/ndis/ndisprot_kmdf/60/nprt6wdf.vcxproj
+++ b/network/ndis/ndisprot_kmdf/60/nprt6wdf.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -25,38 +25,38 @@
<SupportsPackaging>false</SupportsPackaging>
<RequiresPackageProject>true</RequiresPackageProject>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{BDE78A2F-D982-42E4-9E9E-95DA20A2BBAA}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -68,13 +68,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -87,13 +87,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>nprt6wdf</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>nprt6wdf</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>nprt6wdf</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>nprt6wdf</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -107,18 +107,18 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
</ClCompile>
@@ -129,20 +129,21 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS60=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1;NDIS630=1</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<ClCompile>
<ExceptionHandling>
@@ -152,9 +153,10 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<ClCompile>
<ExceptionHandling>
@@ -164,7 +166,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
</Link>
@@ -176,7 +178,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib</AdditionalDependencies>
</Link>
diff --git a/network/ndis/ndisprot_kmdf/Package/package.VcxProj b/network/ndis/ndisprot_kmdf/Package/package.VcxProj
index a4c9990a..6eee04d4 100644
--- a/network/ndis/ndisprot_kmdf/Package/package.VcxProj
+++ b/network/ndis/ndisprot_kmdf/Package/package.VcxProj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -39,15 +39,11 @@
<SampleGuid>{9B10F9EB-6405-4756-A5C7-FB9F5A528BE5}</SampleGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
@@ -55,6 +51,10 @@
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@@ -79,22 +79,22 @@
<VerifyDrivers />
<VerifyFlags>133563</VerifyFlags>
</PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
diff --git a/network/ndis/ndisprot_kmdf/ndisprot_kmdf.sln b/network/ndis/ndisprot_kmdf/ndisprot_kmdf.sln
index e8eb8891..4cf5bdbc 100644
--- a/network/ndis/ndisprot_kmdf/ndisprot_kmdf.sln
+++ b/network/ndis/ndisprot_kmdf/ndisprot_kmdf.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -17,32 +17,32 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nprt6wdf", "60\nprt6wdf.vcx
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {346D9284-B69E-40A5-9584-084D7BE578B2}.Debug|Win32.ActiveCfg = Debug|Win32
- {346D9284-B69E-40A5-9584-084D7BE578B2}.Debug|Win32.Build.0 = Debug|Win32
- {346D9284-B69E-40A5-9584-084D7BE578B2}.Release|Win32.ActiveCfg = Release|Win32
- {346D9284-B69E-40A5-9584-084D7BE578B2}.Release|Win32.Build.0 = Release|Win32
+ {346D9284-B69E-40A5-9584-084D7BE578B2}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {346D9284-B69E-40A5-9584-084D7BE578B2}.Debug|ARM64.Build.0 = Debug|ARM64
+ {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Debug|ARM64.Build.0 = Debug|ARM64
+ {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Debug|ARM64.Build.0 = Debug|ARM64
+ {346D9284-B69E-40A5-9584-084D7BE578B2}.Release|ARM64.ActiveCfg = Release|ARM64
+ {346D9284-B69E-40A5-9584-084D7BE578B2}.Release|ARM64.Build.0 = Release|ARM64
+ {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Release|ARM64.ActiveCfg = Release|ARM64
+ {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Release|ARM64.Build.0 = Release|ARM64
+ {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Release|ARM64.ActiveCfg = Release|ARM64
+ {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Release|ARM64.Build.0 = Release|ARM64
{346D9284-B69E-40A5-9584-084D7BE578B2}.Debug|x64.ActiveCfg = Debug|x64
{346D9284-B69E-40A5-9584-084D7BE578B2}.Debug|x64.Build.0 = Debug|x64
{346D9284-B69E-40A5-9584-084D7BE578B2}.Release|x64.ActiveCfg = Release|x64
{346D9284-B69E-40A5-9584-084D7BE578B2}.Release|x64.Build.0 = Release|x64
- {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Debug|Win32.ActiveCfg = Debug|Win32
- {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Debug|Win32.Build.0 = Debug|Win32
- {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Release|Win32.ActiveCfg = Release|Win32
- {E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Release|Win32.Build.0 = Release|Win32
{E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Debug|x64.ActiveCfg = Debug|x64
{E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Debug|x64.Build.0 = Debug|x64
{E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Release|x64.ActiveCfg = Release|x64
{E92C4A1E-396E-4CAF-A5DB-44901F07C515}.Release|x64.Build.0 = Release|x64
- {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Debug|Win32.ActiveCfg = Debug|Win32
- {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Debug|Win32.Build.0 = Debug|Win32
- {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Release|Win32.ActiveCfg = Release|Win32
- {D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Release|Win32.Build.0 = Release|Win32
{D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Debug|x64.ActiveCfg = Debug|x64
{D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Debug|x64.Build.0 = Debug|x64
{D01AA8E0-4817-4C0F-BDD7-B367F1A4B680}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/ndis/ndisprot_kmdf/notifyob/ProtNotify.vcxproj b/network/ndis/ndisprot_kmdf/notifyob/ProtNotify.vcxproj
index da20b3b2..82f995bd 100644
--- a/network/ndis/ndisprot_kmdf/notifyob/ProtNotify.vcxproj
+++ b/network/ndis/ndisprot_kmdf/notifyob/ProtNotify.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -26,7 +26,7 @@
<SupportsPackaging>false</SupportsPackaging>
<RequiresPackageProject>true</RequiresPackageProject>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{27DF4F3B-383E-497C-8DBB-DFA4C1A27708}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -38,23 +38,23 @@
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
+ <UseDebugLibraries>False</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
@@ -69,26 +69,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>ProtNotify</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>ProtNotify</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>ProtNotify</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>ProtNotify</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -102,7 +102,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;_USRDLL;USE_STDAFX;UNICODE;_UNICODE</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;_USRDLL;USE_STDAFX;UNICODE;_UNICODE</PreprocessorDefinitions>
</ClCompile>
@@ -113,7 +113,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;_USRDLL;USE_STDAFX;UNICODE;_UNICODE</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;_USRDLL;USE_STDAFX;UNICODE;_UNICODE</PreprocessorDefinitions>
</ClCompile>
@@ -124,7 +124,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;_USRDLL;USE_STDAFX;UNICODE;_UNICODE</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;_USRDLL;USE_STDAFX;UNICODE;_UNICODE</PreprocessorDefinitions>
</ClCompile>
@@ -137,26 +137,22 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -165,19 +161,19 @@
<ExceptionHandling>Sync</ExceptionHandling>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<ExceptionHandling>Sync</ExceptionHandling>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<ExceptionHandling>Sync</ExceptionHandling>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<ExceptionHandling>Sync</ExceptionHandling>
@@ -186,13 +182,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<UseOfAtl>Static</UseOfAtl>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -200,17 +196,17 @@
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;setupapi.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;setupapi.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;setupapi.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;setupapi.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib</AdditionalDependencies>
</Link>
@@ -232,7 +228,7 @@
<ModuleDefinitionFile>ProtNotify.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);KMDF_VERSION_MAJOR=1;KMDF_VERSION_MINOR=11</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(WDKContentRoot)\Include\wdf\kmdf\1.11</AdditionalIncludeDirectories>
@@ -249,7 +245,7 @@
<ModuleDefinitionFile>ProtNotify.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);KMDF_VERSION_MAJOR=1;KMDF_VERSION_MINOR=11</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(WDKContentRoot)\Include\wdf\kmdf\1.11</AdditionalIncludeDirectories>
@@ -266,7 +262,7 @@
<ModuleDefinitionFile>ProtNotify.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);KMDF_VERSION_MAJOR=1;KMDF_VERSION_MINOR=11</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(WDKContentRoot)\Include\wdf\kmdf\1.11</AdditionalIncludeDirectories>
diff --git a/network/ndis/ndisprot_kmdf/notifyob/dllmain.cpp b/network/ndis/ndisprot_kmdf/notifyob/dllmain.cpp
index b3e3a66c..2452d95c 100644
--- a/network/ndis/ndisprot_kmdf/notifyob/dllmain.cpp
+++ b/network/ndis/ndisprot_kmdf/notifyob/dllmain.cpp
@@ -92,7 +92,7 @@ DllMain(
return TRUE;
}
-
+__control_entrypoint(DllExport)
STDAPI DllCanUnloadNow(
)
{
diff --git a/network/ndis/netvmini/6x/60/netvmini60.inf b/network/ndis/netvmini/6x/60/netvmini60.inf
index bbfdef53..63382e9b 100644
--- a/network/ndis/netvmini/6x/60/netvmini60.inf
+++ b/network/ndis/netvmini/6x/60/netvmini60.inf
Binary files differ
diff --git a/network/ndis/netvmini/6x/60/netvmini60.vcxproj b/network/ndis/netvmini/6x/60/netvmini60.vcxproj
index 6562995b..c48172b8 100644
--- a/network/ndis/netvmini/6x/60/netvmini60.vcxproj
+++ b/network/ndis/netvmini/6x/60/netvmini60.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{50458BE9-A423-44C1-AF44-21D4B5233063}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{68DE2BFB-DBF2-4102-B6D9-5C3D45F287A0}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,13 +65,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -89,13 +89,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>netvmini60</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>netvmini60</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>netvmini60</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>netvmini60</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -121,14 +121,15 @@
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
@@ -138,23 +139,24 @@
</ExceptionHandling>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -182,9 +184,9 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
@@ -194,12 +196,12 @@
</ExceptionHandling>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS60_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</ResourceCompile>
diff --git a/network/ndis/netvmini/6x/620/netvmini620.inf b/network/ndis/netvmini/6x/620/netvmini620.inf
index 60c4b68b..4dc1c9b6 100644
--- a/network/ndis/netvmini/6x/620/netvmini620.inf
+++ b/network/ndis/netvmini/6x/620/netvmini620.inf
Binary files differ
diff --git a/network/ndis/netvmini/6x/620/netvmini620.vcxproj b/network/ndis/netvmini/6x/620/netvmini620.vcxproj
index 531cd372..9119e6d9 100644
--- a/network/ndis/netvmini/6x/620/netvmini620.vcxproj
+++ b/network/ndis/netvmini/6x/620/netvmini620.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{062B87F8-6021-4BE2-B677-3AEF2456CBA0}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{A9AA92D6-CEFF-4533-A39F-156429EEE805}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,13 +65,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -89,13 +89,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>netvmini620</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>netvmini620</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>netvmini620</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>netvmini620</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -121,14 +121,15 @@
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS620_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
@@ -138,23 +139,24 @@
</ExceptionHandling>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS620_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS620_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS620_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -182,9 +184,9 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS620_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
@@ -194,12 +196,12 @@
</ExceptionHandling>
</ClCompile>
<Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS620_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS620_MINIPORT=1</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_MINIPORT_DRIVER=1</PreprocessorDefinitions>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS_WDM=1</PreprocessorDefinitions>
</ResourceCompile>
diff --git a/network/ndis/netvmini/6x/630/netvmini630.inf b/network/ndis/netvmini/6x/630/netvmini630.inf
index 21c50a09..eb7d61c8 100644
--- a/network/ndis/netvmini/6x/630/netvmini630.inf
+++ b/network/ndis/netvmini/6x/630/netvmini630.inf
Binary files differ
diff --git a/network/ndis/netvmini/6x/630/netvmini630.vcxproj b/network/ndis/netvmini/6x/630/netvmini630.vcxproj
index 19a25bfb..fabd1729 100644
--- a/network/ndis/netvmini/6x/630/netvmini630.vcxproj
+++ b/network/ndis/netvmini/6x/630/netvmini630.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{7B9C33BA-F817-42B9-A355-9E54854CE9D6}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{173BE266-31F2-4D74-A9C1-35B20D4DD5EA}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,13 +65,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -89,13 +89,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>netvmini630</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>netvmini630</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>netvmini630</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>netvmini630</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -121,12 +121,13 @@
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -149,12 +150,13 @@
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -182,7 +184,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS630_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
diff --git a/network/ndis/netvmini/6x/680/netvmini680.inf b/network/ndis/netvmini/6x/680/netvmini680.inf
index 876441f2..4160c520 100644
--- a/network/ndis/netvmini/6x/680/netvmini680.inf
+++ b/network/ndis/netvmini/6x/680/netvmini680.inf
Binary files differ
diff --git a/network/ndis/netvmini/6x/680/netvmini680.vcxproj b/network/ndis/netvmini/6x/680/netvmini680.vcxproj
index 3d16c5e3..20bb5f7b 100644
--- a/network/ndis/netvmini/6x/680/netvmini680.vcxproj
+++ b/network/ndis/netvmini/6x/680/netvmini680.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{B08F62D4-7A4C-4789-A0F7-862E622839A7}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{173BE266-31F2-4D74-A9C1-35B20D4DD5EA}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,13 +65,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -89,13 +89,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>netvmini680</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>netvmini680</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>netvmini680</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>netvmini680</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -121,12 +121,13 @@
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>true</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS680_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -149,12 +150,13 @@
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib</AdditionalDependencies>
+ <CETCompat>false</CETCompat>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS680_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -182,7 +184,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);NDIS680_MINIPORT=1</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
diff --git a/network/ndis/netvmini/6x/adapter.c b/network/ndis/netvmini/6x/adapter.c
index f1beefc8..3cf0ce59 100644
--- a/network/ndis/netvmini/6x/adapter.c
+++ b/network/ndis/netvmini/6x/adapter.c
@@ -427,11 +427,26 @@ Arguments:
// Set the power management capabilities. The format used is NDIS
// version-specific.
//
-#if (NDIS_SUPPORT_NDIS620)
+#if (NDIS_SUPPORT_NDIS680)
+
+ NdisZeroMemory(&PmCapabilities, sizeof(PmCapabilities));
+
+ {C_ASSERT(sizeof(PmCapabilities) >= NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2); }
+ PmCapabilities.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
+ PmCapabilities.Header.Size = NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2;
+ PmCapabilities.Header.Revision = NDIS_PM_CAPABILITIES_REVISION_2;
+
+ PmCapabilities.MinMagicPacketWakeUp = NIC_MAGIC_PACKET_WAKEUP;
+ PmCapabilities.MinPatternWakeUp = NIC_PATTERN_WAKEUP;
+ PmCapabilities.MinLinkChangeWakeUp = NIC_LINK_CHANGE_WAKEUP;
+
+ AdapterGeneral.PowerManagementCapabilitiesEx = &PmCapabilities;
+
+#elif (NDIS_SUPPORT_NDIS620)
NdisZeroMemory(&PmCapabilities, sizeof(PmCapabilities));
- {C_ASSERT(sizeof(PmCapabilities) >= NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1);}
+ {C_ASSERT(sizeof(PmCapabilities) >= NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1); }
PmCapabilities.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
PmCapabilities.Header.Size = NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1;
PmCapabilities.Header.Revision = NDIS_PM_CAPABILITIES_REVISION_1;
@@ -2326,4 +2341,4 @@ Return Value:
{
*RefCount = Count;
}
-}
+} \ No newline at end of file
diff --git a/network/ndis/netvmini/6x/hardware.h b/network/ndis/netvmini/6x/hardware.h
index c3076429..ddc4c4a3 100644
--- a/network/ndis/netvmini/6x/hardware.h
+++ b/network/ndis/netvmini/6x/hardware.h
@@ -90,7 +90,7 @@ C_ASSERT(sizeof(NIC_FRAME_HEADER) == HW_FRAME_HEADER_SIZE);
#define NIC_MEDIUM_TYPE NdisMedium802_3
// If you have physical hardware on 802.3, use NdisPhysicalMedium802_3.
-#define NIC_PHYSICAL_MEDIUM NdisPhysicalMediumUnspecified
+#define NIC_PHYSICAL_MEDIUM NdisPhysicalMedium802_3
// Set this value to TRUE if there is a physical adapter.
diff --git a/network/ndis/netvmini/6x/miniport.c b/network/ndis/netvmini/6x/miniport.c
index 317f8c54..9ec793af 100644
--- a/network/ndis/netvmini/6x/miniport.c
+++ b/network/ndis/netvmini/6x/miniport.c
@@ -122,8 +122,13 @@ Arguments:
NdisZeroMemory(&MPChar, sizeof(MPChar));
-#if (NDIS_SUPPORT_NDIS620)
- {C_ASSERT(sizeof(MPChar) >= NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2);}
+#if (NDIS_SUPPORT_NDIS680)
+ {C_ASSERT(sizeof(MPChar) >= NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3); }
+ MPChar.Header.Type = NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS;
+ MPChar.Header.Size = NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;
+ MPChar.Header.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;
+#elif (NDIS_SUPPORT_NDIS620)
+ {C_ASSERT(sizeof(MPChar) >= NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2); }
MPChar.Header.Type = NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS;
MPChar.Header.Size = NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;
MPChar.Header.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;
@@ -628,4 +633,3 @@ DbgPrintAddress(
#endif //DBG
-
diff --git a/network/ndis/netvmini/6x/netvmini.sln b/network/ndis/netvmini/6x/netvmini.sln
index e5eaca43..e623ae9a 100644
--- a/network/ndis/netvmini/6x/netvmini.sln
+++ b/network/ndis/netvmini/6x/netvmini.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -21,40 +21,36 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netvmini680", "680\netvmini
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {50458BE9-A423-44C1-AF44-21D4B5233063}.Debug|Win32.ActiveCfg = Debug|Win32
- {50458BE9-A423-44C1-AF44-21D4B5233063}.Debug|Win32.Build.0 = Debug|Win32
- {50458BE9-A423-44C1-AF44-21D4B5233063}.Release|Win32.ActiveCfg = Release|Win32
- {50458BE9-A423-44C1-AF44-21D4B5233063}.Release|Win32.Build.0 = Release|Win32
+ {50458BE9-A423-44C1-AF44-21D4B5233063}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Debug|ARM64.Build.0 = Debug|ARM64
+ {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Debug|ARM64.Build.0 = Debug|ARM64
+ {50458BE9-A423-44C1-AF44-21D4B5233063}.Release|ARM64.ActiveCfg = Release|ARM64
+ {062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Release|ARM64.ActiveCfg = Release|ARM64
+ {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Release|ARM64.ActiveCfg = Release|ARM64
+ {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Release|ARM64.Build.0 = Release|ARM64
+ {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Release|ARM64.ActiveCfg = Release|ARM64
+ {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Release|ARM64.Build.0 = Release|ARM64
{50458BE9-A423-44C1-AF44-21D4B5233063}.Debug|x64.ActiveCfg = Debug|x64
{50458BE9-A423-44C1-AF44-21D4B5233063}.Debug|x64.Build.0 = Debug|x64
{50458BE9-A423-44C1-AF44-21D4B5233063}.Release|x64.ActiveCfg = Release|x64
{50458BE9-A423-44C1-AF44-21D4B5233063}.Release|x64.Build.0 = Release|x64
- {062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Debug|Win32.ActiveCfg = Debug|Win32
- {062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Debug|Win32.Build.0 = Debug|Win32
- {062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Release|Win32.ActiveCfg = Release|Win32
- {062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Release|Win32.Build.0 = Release|Win32
{062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Debug|x64.ActiveCfg = Debug|x64
{062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Debug|x64.Build.0 = Debug|x64
{062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Release|x64.ActiveCfg = Release|x64
{062B87F8-6021-4BE2-B677-3AEF2456CBA0}.Release|x64.Build.0 = Release|x64
- {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Debug|Win32.ActiveCfg = Debug|Win32
- {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Debug|Win32.Build.0 = Debug|Win32
- {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Release|Win32.ActiveCfg = Release|Win32
- {7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Release|Win32.Build.0 = Release|Win32
{7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Debug|x64.ActiveCfg = Debug|x64
{7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Debug|x64.Build.0 = Debug|x64
{7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Release|x64.ActiveCfg = Release|x64
{7B9C33BA-F817-42B9-A355-9E54854CE9D6}.Release|x64.Build.0 = Release|x64
- {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Debug|Win32.ActiveCfg = Debug|Win32
- {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Debug|Win32.Build.0 = Debug|Win32
- {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Release|Win32.ActiveCfg = Release|Win32
- {B08F62D4-7A4C-4789-A0F7-862E622839A7}.Release|Win32.Build.0 = Release|Win32
{B08F62D4-7A4C-4789-A0F7-862E622839A7}.Debug|x64.ActiveCfg = Debug|x64
{B08F62D4-7A4C-4789-A0F7-862E622839A7}.Debug|x64.Build.0 = Debug|x64
{B08F62D4-7A4C-4789-A0F7-862E622839A7}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/radio/HidSwitchDriverSample/HidSwitchDriverSample.sln b/network/radio/HidSwitchDriverSample/HidSwitchDriverSample.sln
deleted file mode 100644
index 7bbffb25..00000000
--- a/network/radio/HidSwitchDriverSample/HidSwitchDriverSample.sln
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0
-MinimumVisualStudioVersion = 12.0
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RadioSwitchHidUsbFx2", "RadioSwitchHidUsbFx2.vcxproj", "{43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- Debug|x64 = Debug|x64
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Debug|Win32.ActiveCfg = Debug|Win32
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Debug|Win32.Build.0 = Debug|Win32
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Release|Win32.ActiveCfg = Release|Win32
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Release|Win32.Build.0 = Release|Win32
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Debug|x64.ActiveCfg = Debug|x64
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Debug|x64.Build.0 = Debug|x64
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Release|x64.ActiveCfg = Release|x64
- {43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/network/radio/HidSwitchDriverSample/README.md b/network/radio/HidSwitchDriverSample/README.md
deleted file mode 100644
index 55ca9daf..00000000
--- a/network/radio/HidSwitchDriverSample/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-page_type: sample
-description: "Demonstrates how to structure a HID driver for radio switches for the OSR USB-FX2 Development Board."
-languages:
-- cpp
-products:
-- windows
-- windows-wdk
----
-
-# Radio Switch Test Driver for OSR USB-FX2 Development Board
-
-This sample demonstrates how to structure a HID driver for radio switches for the OSR USB-FX2 Development Board.
-
-The hardware switch or button to control wireless transmission and the global software switch (Airplane mode switch) in the Radio Management User Interface must be synchronized. To ensure the hardware and software switches that control radio transmission are synchronized, the hardware switch or button must have a HID-compliant driver.
-
-## Switch Pack Mapping
-
-### Switch Mapping
-
-| 1 | 2 | 3 | 4 | 5 | 7 | 8 |
-| --- | --- | --- | --- | --- | --- | --- |
-| Mode Select Bit 3 | Mode Select Bit 2 | Mode Select Bit 1 | - | - | - | Radio Switch |
-
-## Testing
-
-### Testing Modes
-
-The driver supports five modes representing the valid combinations of HID descriptors that we have defined for the USB forum. Modes are selected using switches 1, 2, and 3 on the switch pack.
-
-### Switch Mapping Modes
-
-| 1 | 2 | 3 | Mode |
-| --- | --- | --- | --- |
-| 0 | 0 | 0 | Mode 1 |
-| 0 | 0 | 1 | Mode 1 |
-| 0 | 1 | 0 | Mode 2 |
-| 0 | 1 | 1 | Mode 3 |
-| 1 | 0 | 0 | Mode 4 |
-| 1 | 0 | 1 | Mode 5 |
-| 1 | 1 | 0 | Mode 1 |
-| 1 | 1 | 1 | Mode 1 |
-
-### Mode 1 Radio Push Button
-
-In this mode the radio switch (switch 8 on the switch pack) represents a momentary push button. A HID report is generated when the switch transitions to the On state (switch down).
-
-### Mode 2 Radio Push Button & LED
-
-In this mode the radio switch (switch 8 on the switch pack) represents a momentary push button. A HID report is generated when the switch transitions to the On state (switch down). In addition, the LED array will reflect the state of the Radio LED: either all on or all off (note that the top 2 LEDs never illuminate as these are not wired in).
-
-### Mode 3 Radio Slider Switch
-
-In this mode the radio switch (switch 8 on the switch pack) represents a momentary push button. A HID report is generated when the switch transitions to the On state (switch down).
-
-### Mode 4 Radio Slider Switch & LED
-
-In this mode the radio switch (switch 8 on the switch pack) represents an A-B slider switch. A HID report is generated in both cases: when the switch transitions to the On state (switch down) and to the Off state (switch up). In addition the LED array will reflect the state of the Radio LED: either all on or all off (note that the top 2 LEDs never illuminate as these are not wired in).
-
-### Mode 5 LED only
-
-In this mode the radio switch (switch 8 on the switch pack) is ignored. The LED array will reflect the state of the Radio LED: either all on or all off (note that the top 2 LEDs never illuminate as these are not wired in).
diff --git a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.h b/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.h
deleted file mode 100644
index ce92cfff..00000000
--- a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.h
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifndef _RADIOSWITCHHIDUSBFX2_H_
-#define _RADIOSWITCHHIDUSBFX2_H_
-
-#include <initguid.h>
-#include <wdm.h>
-#include "usbdi.h"
-#include "usbdlib.h"
-#include <wdf.h>
-#include "wdfusb.h"
-#include <hidport.h>
-#define NTSTRSAFE_LIB
-#include <ntstrsafe.h>
-#include "trace.h"
-
-
-#define HID_CLASS_SPEC_RELEASE_1_00 0x0100 // HID Class Specification release 1.00
-#define HID_COUNTRY_NON_LOCALIZED 0x00 // Hardware is not localized
-
-#define GENERIC_DESKTOP_REPORT_ID 0x01
-
-#define GENERIC_DESKTOP_USAGE_PAGE 0x01
-#define WIRELESS_RADIO_CONTROLS_USAGE 0x0C
-#define WIRELESS_RADIO_BUTTON_USAGE 0xC6
-#define WIRELESS_RADIO_LED_USAGE 0xC7
-#define WIRELESS_RADIO_SLIDER_USAGE 0xC8
-
-
-#define MODE_SELECTION_BUTTONS_BIT_MASK 0xE0
-#define RADIO_SWITCH_BUTTONS_BIT_MASK 0x01
-#define SWITCHPACK_SELECTION_FOR_MODE2 0x40
-#define SWITCHPACK_SELECTION_FOR_MODE3 0x60
-#define SWITCHPACK_SELECTION_FOR_MODE4 0x80
-#define SWITCHPACK_SELECTION_FOR_MODE5 0xA0
-
-#define INTERRUPT_ENDPOINT_INDEX (0)
-
-#define SWITCHPACK_DEBOUNCE_TIME 10 // in millseconds
-
-// Define the vendor commands supported by device
-#define HIDFX2_READ_SWITCH_STATE 0xD6
-#define HIDFX2_READ_7SEGMENT_DISPLAY 0xD4
-#define HIDFX2_READ_BARGRAPH_DISPLAY 0xD7
-#define HIDFX2_SET_BARGRAPH_DISPLAY 0xD8
-#define HIDFX2_IS_HIGH_SPEED 0xD9
-#define HIDFX2_REENUMERATE 0xDA
-#define HIDFX2_SET_7SEGMENT_DISPLAY 0xDB
-
-// Bit masks for 7 segment display to be used with vendor command
-#define SEG_TOP 0x1
-#define SEG_R_UPPER 0x2
-#define SEG_R_LOWER 0x4
-#define SEG_DOT 0x8
-#define SEG_L_LOWER 0x10
-#define SEG_MID 0x20
-#define SEG_L_UPPER 0x40
-#define SEG_BASE 0x80
-
-#define SEGMENT_DISPLAY_1 SEG_R_UPPER | SEG_R_LOWER
-#define SEGMENT_DISPLAY_2 SEG_TOP | SEG_R_UPPER | SEG_MID | SEG_L_LOWER | SEG_BASE
-#define SEGMENT_DISPLAY_3 SEG_TOP | SEG_R_UPPER | SEG_MID | SEG_R_LOWER | SEG_BASE
-#define SEGMENT_DISPLAY_4 SEG_R_UPPER | SEG_R_LOWER | SEG_MID | SEG_L_UPPER
-#define SEGMENT_DISPLAY_5 SEG_TOP | SEG_R_LOWER | SEG_MID | SEG_L_UPPER | SEG_BASE
-#define SEGMENT_DISPLAY_6 SEG_TOP | SEG_R_LOWER | SEG_L_LOWER | SEG_MID | SEG_L_UPPER | SEG_BASE
-#define SEGMENT_DISPLAY_7 SEG_TOP | SEG_R_UPPER | SEG_R_LOWER
-#define SEGMENT_DISPLAY_8 SEG_TOP | SEG_R_UPPER | SEG_R_LOWER | SEG_L_UPPER | SEG_L_LOWER | SEG_MID | SEG_BASE
-
-#define BARGRAPH_LED_ALL_ON 0xff
-#define BARGRAPH_LED_ALL_OFF 0x00
-
-
-typedef UCHAR HID_REPORT_DESCRIPTOR, *PHID_REPORT_DESCRIPTOR;
-
-#include <pshpack1.h> // make sure packing is handled correctly
-
-typedef struct _HIDFX2_IO_REPORT
-{
- unsigned char bReportId; //Report ID for the collection
- unsigned char bData; //one-byte data for switch/LED
-}HIDFX2_IO_REPORT, *PHIDFX2_IO_REPORT;
-
-
-typedef enum _DRIVER_MODE
-{
- DM_BUTTON = 1,
- DM_BUTTON_AND_LED,
- DM_SLIDER_SWITCH,
- DM_SLIDER_SWITCH_AND_LED,
- DM_LED_ONLY
-} DRIVER_MODE;
-
-#include <poppack.h>
-
-typedef struct _DEVICE_EXTENSION
-{
- WDFUSBDEVICE hUsbDevice; //WDF handles for USB Target
- WDFUSBINTERFACE hUsbInterface;
- WDFUSBPIPE hInterruptPipe;
- WDFMEMORY hDeviceDescriptor; // Device descriptor for the USB device
- unsigned char bCurrentSwitchState; // Switch state.
- unsigned char bLatestToggledSwitch; // State for the switch that got toggled most recently
- BOOLEAN fIsPowerUpSwitchState; //Interrupt endpoints sends switch state when first started .we ignore this
- WDFTIMER hDebounceTimer; // Handle debouncing of switchpack
- WDFQUEUE hInterruptMsgQueue; // WDF Queue for read IOCTLs from hidclass that get satisfied from USB interrupt endpoint
- DRIVER_MODE driverMode;
-} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
-
-WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(DEVICE_EXTENSION, GetDeviceContext)
-
-
-//
-// Driver routines
-//
-DRIVER_INITIALIZE DriverEntry;
-
-EVT_WDF_DRIVER_DEVICE_ADD HidFx2EvtDeviceAdd;
-
-EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL HidFx2EvtInternalDeviceControl;
-
-EVT_WDF_DEVICE_PREPARE_HARDWARE HidFx2EvtDevicePrepareHardware;
-
-EVT_WDF_DEVICE_D0_ENTRY HidFx2EvtDeviceD0Entry;
-
-EVT_WDF_DEVICE_D0_EXIT HidFx2EvtDeviceD0Exit;
-
-EVT_WDF_USB_READER_COMPLETION_ROUTINE HidFx2EvtUsbInterruptPipeReadComplete;
-
-EVT_WDF_TIMER HidFx2EvtTimerFunction;
-
-EVT_WDF_OBJECT_CONTEXT_CLEANUP HidFx2EvtDriverContextCleanup;
-
-EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE HidFx2EvtIoCanceledOnQueue;
-
-
-NTSTATUS HidFx2GetHidDescriptor(_In_ WDFDEVICE hDevice, _In_ WDFREQUEST hRequest);
-
-NTSTATUS HidFx2GetReportDescriptor(_In_ WDFDEVICE hDevice, _In_ WDFREQUEST hRequest);
-
-NTSTATUS HidFx2GetDeviceAttributes(_In_ WDFREQUEST hRequest);
-
-NTSTATUS HidFx2ConfigContReaderForInterruptEndPoint(PDEVICE_EXTENSION pDeviceContext);
-
-NTSTATUS HidFx2SendIdleNotification(_In_ WDFREQUEST hRequest);
-
-NTSTATUS HidFx2SetOutput(_In_ WDFREQUEST hRequest);
-
-NTSTATUS HidFx2GetInput(_In_ WDFREQUEST hRequest);
-
-NTSTATUS HidFx2GetSwitchState(_In_ WDFDEVICE hDevice, _Out_ unsigned char *pbSwitchState);
-
-NTSTATUS SendVendorCommand(_In_ WDFDEVICE hDevice, _In_ unsigned char bVendorCommand, _In_ unsigned char bCommandData);
-
-PCWSTR DbgDevicePowerString(_In_ WDF_POWER_DEVICE_STATE powerState);
-
-#endif //_RADIOSWITCHHIDUSBFX2_H_
-
-
diff --git a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.inx b/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.inx
deleted file mode 100644
index c7d1ba0f..00000000
--- a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.inx
+++ /dev/null
Binary files differ
diff --git a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.rc b/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.rc
deleted file mode 100644
index 6737f603..00000000
--- a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.rc
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <windows.h>
-
-#include <ntverp.h>
-
-#define VER_FILETYPE VFT_DRV
-#define VER_FILESUBTYPE VFT2_DRV_SYSTEM
-#define VER_FILEDESCRIPTION_STR "HID Radio Switch mini driver for USB Fx2 Device"
-#define VER_INTERNALNAME_STR "RadioSwitchHidUsbFx2.sys"
-
-#include "common.ver"
-
diff --git a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj b/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj
deleted file mode 100644
index 3b9df8db..00000000
--- a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{43FD9C1A-290E-4FF7-8B6F-35A88A075DF8}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{88093BCB-F03A-40B7-B648-891643B48CC0}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems">
- <ClCompile Include="driver.c; hid.c; usb.c">
- <WppEnabled>true</WppEnabled>
- <WppKernelMode>true</WppKernelMode>
- <WppTraceFunction>TraceEvents(LEVEL,FLAGS,MSG,...);TraceErr{LEVEL=TRACE_LEVEL_ERROR}(FLAGS,MSG,...);TraceWarning{LEVEL=TRACE_LEVEL_WARNING}(FLAGS,MSG,...);TraceInfo{LEVEL=TRACE_LEVEL_INFORMATION}(FLAGS,MSG,...);TraceVerbose{LEVEL=TRACE_LEVEL_VERBOSE}(FLAGS,MSG,...)</WppTraceFunction>
- <WppGenerateUsingTemplateFile>{km-WdfDefault.tpl}*.tmh</WppGenerateUsingTemplateFile>
- </ClCompile>
- <Inf Include=".\RadioSwitchHidUsbFx2.inx">
- <Architecture>$(InfArch)</Architecture>
- <SpecifyArchitecture>true</SpecifyArchitecture>
- <CopyOutput>.\$(IntDir)\RadioSwitchHidUsbFx2.inf</CopyOutput>
- </Inf>
- <OtherWpp Include="RadioSwitchHidUsbFx2.rc">
- <WppEnabled>true</WppEnabled>
- <WppKernelMode>true</WppKernelMode>
- <WppTraceFunction>TraceEvents(LEVEL,FLAGS,MSG,...);TraceErr{LEVEL=TRACE_LEVEL_ERROR}(FLAGS,MSG,...);TraceWarning{LEVEL=TRACE_LEVEL_WARNING}(FLAGS,MSG,...);TraceInfo{LEVEL=TRACE_LEVEL_INFORMATION}(FLAGS,MSG,...);TraceVerbose{LEVEL=TRACE_LEVEL_VERBOSE}(FLAGS,MSG,...)</WppTraceFunction>
- <WppGenerateUsingTemplateFile>{km-WdfDefault.tpl}*.tmh</WppGenerateUsingTemplateFile>
- </OtherWpp>
- </ItemGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>RadioSwitchHidUsbFx2</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>RadioSwitchHidUsbFx2</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>RadioSwitchHidUsbFx2</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>RadioSwitchHidUsbFx2</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\hidclass.lib;$(DDK_LIB_PATH)\ntstrsafe.lib</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\hidclass.lib;$(DDK_LIB_PATH)\ntstrsafe.lib</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\hidclass.lib;$(DDK_LIB_PATH)\ntstrsafe.lib</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\hidclass.lib;$(DDK_LIB_PATH)\ntstrsafe.lib</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ResourceCompile Include="RadioSwitchHidUsbFx2.rc" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj.Filters b/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj.Filters
deleted file mode 100644
index b8f7cb14..00000000
--- a/network/radio/HidSwitchDriverSample/RadioSwitchHidUsbFx2.vcxproj.Filters
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{652E78B0-5E7D-4A38-BAF7-486EBD37CAF8}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{D1C9D70E-E910-4C53-9624-EB5A85A5A36B}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{91962FEB-66CF-4C7D-A911-BA196B70A87A}</UniqueIdentifier>
- </Filter>
- <Filter Include="Driver Files">
- <Extensions>inf;inv;inx;mof;mc;</Extensions>
- <UniqueIdentifier>{DCB61952-1CBD-4DF7-A231-3432A7250271}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="driver.c; hid.c; usb.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="driver.c; hid.c; usb.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="driver.c; hid.c; usb.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <Inf Include=".\RadioSwitchHidUsbFx2.inx">
- <Filter>Driver Files</Filter>
- </Inf>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="RadioSwitchHidUsbFx2.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/network/radio/HidSwitchDriverSample/driver.c b/network/radio/HidSwitchDriverSample/driver.c
deleted file mode 100644
index 61cc97fc..00000000
--- a/network/radio/HidSwitchDriverSample/driver.c
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "RadioSwitchHidUsbFx2.h"
-#pragma warning(disable:28252)
-#pragma warning(disable:28253)
-#include "driver.tmh"
-
-
-#ifdef ALLOC_PRAGMA
- #pragma alloc_text(INIT, DriverEntry)
- #pragma alloc_text(PAGE, HidFx2EvtDriverContextCleanup)
- #pragma alloc_text(PAGE, HidFx2EvtDeviceAdd)
-#endif
-
-
-
-//Installable driver initialization entry point. This entry point is called directly by the I/O system.
-//
-NTSTATUS DriverEntry (_In_ PDRIVER_OBJECT pDriverObject, _In_ PUNICODE_STRING pszRegistryPath)
-{
- NTSTATUS status = STATUS_SUCCESS;
- WDF_DRIVER_CONFIG config;
- WDF_OBJECT_ATTRIBUTES attributes;
-
-
- // Initialize WPP Tracing
- WPP_INIT_TRACING(pDriverObject, pszRegistryPath);
-
- TraceInfo(DBG_INIT, "(%!FUNC!) Enter -DriverEntry\n");
-
- WDF_DRIVER_CONFIG_INIT(&config, HidFx2EvtDeviceAdd);
-
- // Register a cleanup callback so that we can call WPP_CLEANUP when the framework driver object is deleted during driver unload.
- WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
- attributes.EvtCleanupCallback = HidFx2EvtDriverContextCleanup;
-
- // Create a framework driver object to represent our driver.
- status = WdfDriverCreate(pDriverObject,
- pszRegistryPath,
- &attributes, // Driver Attributes
- &config, // Driver Config Info
- WDF_NO_HANDLE
- );
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_INIT, "(%!FUNC!)WdfDriverCreate failed with status %!STATUS!\n", status);
- WPP_CLEANUP(pDriverObject);
- }
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Exit\n");
- return status;
-}
-
-
-
-//Free resources allocated in DriverEntry that are not automatically cleaned up framework.
-//
-void HidFx2EvtDriverContextCleanup(_In_ WDFOBJECT hDriver)
-{
- PAGED_CODE ();
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Enter/Exit\n");
-
- WPP_CLEANUP(WdfDriverWdmGetDriverObject(hDriver));
-}
-
-
-
-//HidFx2EvtDeviceAdd is called by the framework in response to AddDevicecall from the PnP manager.
-//We create and initialize a WDF device object to represent a new instance of device.
-//
-NTSTATUS HidFx2EvtDeviceAdd(_In_ WDFDRIVER hDriver, _Inout_ PWDFDEVICE_INIT pDeviceInit)
-{
- NTSTATUS status = STATUS_SUCCESS;
- WDF_IO_QUEUE_CONFIG queueConfig;
- WDF_OBJECT_ATTRIBUTES attributes;
- WDFDEVICE hDevice;
- PDEVICE_EXTENSION pDevContext = NULL;
- WDFQUEUE hQueue;
- WDF_PNPPOWER_EVENT_CALLBACKS pnpPowerCallbacks;
- WDF_TIMER_CONFIG timerConfig;
- WDFTIMER hTimer;
-
- UNREFERENCED_PARAMETER(hDriver);
-
- PAGED_CODE();
-
- TraceVerbose(DBG_PNP, "(%!FUNC!) Enter\n");
-
- // Tell framework this is a filter driver.
- WdfFdoInitSetFilter(pDeviceInit);
-
- // Initialize pnp-power callbacks, attributes and a context area for the device object.
- WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&pnpPowerCallbacks);
-
- // For usb devices, PrepareHardware callback is the to place select the interface and configure the device.
- pnpPowerCallbacks.EvtDevicePrepareHardware = HidFx2EvtDevicePrepareHardware;
-
- // These two callbacks start and stop the wdfusb pipe continuous reader as we go in and out of the D0-working state.
- pnpPowerCallbacks.EvtDeviceD0Entry = HidFx2EvtDeviceD0Entry;
- pnpPowerCallbacks.EvtDeviceD0Exit = HidFx2EvtDeviceD0Exit;
-
- WdfDeviceInitSetPnpPowerEventCallbacks(pDeviceInit, &pnpPowerCallbacks);
-
- WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, DEVICE_EXTENSION);
-
- // Create a framework device object.This call will in turn create a WDM device object, attach to the lower stack.
- status = WdfDeviceCreate(&pDeviceInit, &attributes, &hDevice);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_PNP, "(%!FUNC!) WdfDeviceCreate failed with status code %!STATUS!\n", status);
- return status;
- }
-
- pDevContext = GetDeviceContext(hDevice);
-
- WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&queueConfig, WdfIoQueueDispatchParallel);
- queueConfig.EvtIoInternalDeviceControl = HidFx2EvtInternalDeviceControl;
-
- status = WdfIoQueueCreate(hDevice, &queueConfig, WDF_NO_OBJECT_ATTRIBUTES, &hQueue);
- if (!NT_SUCCESS (status))
- {
- TraceErr(DBG_PNP, "(%!FUNC!) WdfIoQueueCreate failed 0x%x\n", status);
- return status;
- }
-
- // Register a manual I/O queue for handling Interrupt Message Read Requests.
- WDF_IO_QUEUE_CONFIG_INIT(&queueConfig, WdfIoQueueDispatchManual);
-
- // This queue is used for requests that dont directly access the device.
- // The requests in this queue are serviced only when the device is in a fully powered state and sends an interrupt.
- queueConfig.PowerManaged = WdfFalse;
-
- status = WdfIoQueueCreate(hDevice, &queueConfig, WDF_NO_OBJECT_ATTRIBUTES, &pDevContext->hInterruptMsgQueue);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_PNP, "(%!FUNC!) WdfIoQueueCreate failed %!STATUS!\n", status);
- return status;
- }
-
- // Create a timer to handle debouncing of switchpack
- WDF_TIMER_CONFIG_INIT(&timerConfig, HidFx2EvtTimerFunction);
- timerConfig.AutomaticSerialization = FALSE;
-
- WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
- attributes.ParentObject = hDevice;
- status = WdfTimerCreate(&timerConfig, &attributes, &hTimer);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_PNP, "(%!FUNC!) WdfTimerCreate failed status:%!STATUS!\n", status);
- return status;
- }
-
- pDevContext->hDebounceTimer = hTimer;
-
- TraceVerbose(DBG_PNP, "(%!FUNC!) Exit\n");
- return status;
-}
diff --git a/network/radio/HidSwitchDriverSample/hid.c b/network/radio/HidSwitchDriverSample/hid.c
deleted file mode 100644
index 2421b88f..00000000
--- a/network/radio/HidSwitchDriverSample/hid.c
+++ /dev/null
@@ -1,659 +0,0 @@
-#include "RadioSwitchHidUsbFx2.h"
-#include "hid.tmh"
-
-// Radio Management Collection - Scenario 1 control collection (Button only)
-//
-const HID_REPORT_DESCRIPTOR c_ButtonDescriptor[] = {
- 0x05, GENERIC_DESKTOP_USAGE_PAGE, // USAGE_PAGE (Generic Desktop)
- 0x09, WIRELESS_RADIO_CONTROLS_USAGE,// USAGE (Wireless Radio Controls)
- 0xA1, 0x01, // COLLECTION (Application)
- 0x85, GENERIC_DESKTOP_REPORT_ID, // REPORT_ID
- 0x15, 0x00, // LOGICAL_MINIMUM(0)
- 0x25, 0x01, // LOGICAL_MAXIMUM(1)
- //
- 0x09, WIRELESS_RADIO_BUTTON_USAGE, // USAGE (Wireless Radio Button)
- 0x95, 0x01, // REPORT_COUNT (1)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x81, 0x06, // INPUT (Data, Variable, Rel) - button bit
- 0x75, 0x07, // REPORT_SIZE (7)
- 0x81, 0x03, // INPUT (const, var, abs) -7 bits of padding
- 0xC0 // END_COLLECTION
-};
-
-
-// Radio Management Collection - Scenario 2 control collection (Button with LED)
-//
-const HID_REPORT_DESCRIPTOR c_ButtonWithLedDescriptor[] = {
- 0x05, GENERIC_DESKTOP_USAGE_PAGE, // USAGE_PAGE (Generic Desktop)
- 0x09, WIRELESS_RADIO_CONTROLS_USAGE,// USAGE (Wireless Radio Controls)
- 0xA1, 0x01, // COLLECTION (Application)
- 0x85, GENERIC_DESKTOP_REPORT_ID, // REPORT_ID
- 0x15, 0x00, // LOGICAL_MINIMUM(0)
- 0x25, 0x01, // LOGICAL_MAXIMUM(1)
- //
- 0x09, WIRELESS_RADIO_BUTTON_USAGE, // USAGE (Wireless Radio Button)
- 0x95, 0x01, // REPORT_COUNT (1)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x81, 0x06, // INPUT (Data, Variable, Rel) - button bit
- 0x75, 0x07, // REPORT_SIZE (7)
- 0x81, 0x03, // INPUT (const, var, abs) -7 bits of padding
- //
- 0x09, WIRELESS_RADIO_LED_USAGE, // USAGE (Wireless Radio LED)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x91, 0x02, // OUTPUT (Data, Variable, Rel) -led bit
- 0x75, 0x07, // REPORT_SIZE (7)
- 0x91, 0x03, // OUTPUT (const, var, abs) -7 bits of padding
- 0xC0 // END_COLLECTION
-};
-
-
-// Radio Management Collection - Scenario 3 control collection (Slider Switch)
-//
-const HID_REPORT_DESCRIPTOR c_SliderSwitchDescriptor[] = {
- 0x05, GENERIC_DESKTOP_USAGE_PAGE, // USAGE_PAGE (Generic Desktop)
- 0x09, WIRELESS_RADIO_CONTROLS_USAGE,// USAGE (Wireless Radio Controls)
- 0xA1, 0x01, // COLLECTION (Application)
- 0x85, GENERIC_DESKTOP_REPORT_ID, // REPORT_ID
- 0x15, 0x00, // LOGICAL_MINIMUM(0)
- 0x25, 0x01, // LOGICAL_MAXIMUM(1)
- //
- 0x09, WIRELESS_RADIO_SLIDER_USAGE, // USAGE (Wireless Radio Slider Switch)
- 0x95, 0x01, // REPORT_COUNT (1)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x81, 0x02, // INPUT (Data, Variable, Abs) -switch bit
- 0x75, 0x07, // REPORT_SIZE (7)
- 0x81, 0x03, // INPUT (const, var, abs) -7 bits of padding
- 0xC0 // END_COLLECTION
-};
-
-
-// Radio Management Collection - Scenario 4 control collection (Slider Switch with LED)
-//
-const HID_REPORT_DESCRIPTOR c_SliderSwitchWithLedDescriptor[] = {
- 0x05, GENERIC_DESKTOP_USAGE_PAGE, // USAGE_PAGE (Generic Desktop)
- 0x09, WIRELESS_RADIO_CONTROLS_USAGE,// USAGE (Wireless Radio Controls)
- 0xA1, 0x01, // COLLECTION (Application)
- 0x85, GENERIC_DESKTOP_REPORT_ID, // REPORT_ID
- 0x15, 0x00, // LOGICAL_MINIMUM(0)
- 0x25, 0x01, // LOGICAL_MAXIMUM(1)
- //
- 0x09, WIRELESS_RADIO_SLIDER_USAGE, // USAGE (Wireless Radio Slider Switch)
- 0x95, 0x01, // REPORT_COUNT (1)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x81, 0x02, // INPUT (Data, Variable, Abs) -switch bit
- 0x75, 0x07, // REPORT_SIZE (7)
- 0x81, 0x03, // INPUT (const, var, abs) -7 bits of padding
- //
- 0x09, WIRELESS_RADIO_LED_USAGE, // USAGE (Wireless Radio LED)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x91, 0x02, // OUTPUT (Data, Variable, Rel) -led bit
- 0x75, 0x07, // REPORT_SIZE (7)
- 0x91, 0x03, // OUTPUT (const, var, abs) -7 bits of padding
- 0xC0 // END_COLLECTION
-};
-
-
-// Radio Management Collection - Scenario 5 control collection (LED only)
-//
-const HID_REPORT_DESCRIPTOR c_LedOnlyDescriptor[] = {
- 0x05, GENERIC_DESKTOP_USAGE_PAGE, // USAGE_PAGE (Generic Desktop)
- 0x09, WIRELESS_RADIO_CONTROLS_USAGE,// USAGE (Wireless Radio Controls)
- 0xA1, 0x01, // COLLECTION (Application)
- 0x85, GENERIC_DESKTOP_REPORT_ID, // REPORT_ID
- 0x15, 0x00, // LOGICAL_MINIMUM(0)
- 0x25, 0x01, // LOGICAL_MAXIMUM(1)
- //
- 0x09, WIRELESS_RADIO_LED_USAGE, // USAGE (Wireless Radio LED)
- 0x95, 0x01, // REPORT_COUNT (1)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x91, 0x02, // OUTPUT (Data, Variable, Rel) -led bit
- 0x75, 0x07, // REPORT_SIZE (7)
- 0x91, 0x03, // OUTPUT (const, var, abs) -7 bits of padding
- 0xC0 // END_COLLECTION
-};
-
-
-#ifdef ALLOC_PRAGMA
- #pragma alloc_text(PAGE, HidFx2SetOutput)
- #pragma alloc_text(PAGE, HidFx2GetInput)
- #pragma alloc_text(PAGE, SendVendorCommand)
-#endif
-
-
-// This event is called when the framework receives IRP_MJ_INTERNAL DEVICE_CONTROL requests from the system.
-//
-void HidFx2EvtInternalDeviceControl(
- _In_ WDFQUEUE hQueue,
- _In_ WDFREQUEST hRequest,
- _In_ size_t cOutputBufferLength,
- _In_ size_t cInputBufferLength,
- _In_ ULONG ulIoControlCode
- )
-{
- NTSTATUS status = STATUS_SUCCESS;
- WDFDEVICE hDevice;
- PDEVICE_EXTENSION pDevContext = NULL;
-
- UNREFERENCED_PARAMETER(cOutputBufferLength);
- UNREFERENCED_PARAMETER(cInputBufferLength);
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Enter\n");
-
- hDevice = WdfIoQueueGetDevice(hQueue);
- pDevContext = GetDeviceContext(hDevice);
-
- TraceInfo(DBG_IOCTL, "(%!FUNC!) Queue:0x%p, Request:0x%p\n", hQueue, hRequest);
-
- switch (ulIoControlCode)
- {
- case IOCTL_HID_GET_DEVICE_DESCRIPTOR:
- TraceInfo(DBG_IOCTL, "IOCTL_HID_GET_DEVICE_DESCRIPTOR\n");
- status = HidFx2GetHidDescriptor(hDevice, hRequest);
- WdfRequestComplete(hRequest, status);
- break;
-
- case IOCTL_HID_GET_DEVICE_ATTRIBUTES:
- TraceInfo(DBG_IOCTL, "IOCTL_HID_GET_DEVICE_ATTRIBUTES\n");
- status = HidFx2GetDeviceAttributes(hRequest);
- WdfRequestComplete(hRequest, status);
- break;
-
- case IOCTL_HID_GET_REPORT_DESCRIPTOR:
- TraceInfo(DBG_IOCTL, "IOCTL_HID_GET_REPORT_DESCRIPTOR\n");
- status = HidFx2GetReportDescriptor(hDevice, hRequest);
- WdfRequestComplete(hRequest, status);
- break;
-
- case IOCTL_HID_READ_REPORT:
- TraceInfo(DBG_IOCTL, "IOCTL_HID_READ_REPORT\n");
- status = WdfRequestForwardToIoQueue(hRequest, pDevContext->hInterruptMsgQueue);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_IOCTL, "WdfRequestForwardToIoQueue failed with status: %!STATUS!\n", status);
- WdfRequestComplete(hRequest, status);
- }
- break;
-
- case IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST:
- TraceInfo(DBG_IOCTL, "IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST\n");
- status = HidFx2SendIdleNotification(hRequest);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_IOCTL, "SendIdleNotification failed with status: %!STATUS!\n", status);
- WdfRequestComplete(hRequest, status);
- }
- break;
-
- case IOCTL_HID_GET_INPUT_REPORT:
- TraceInfo(DBG_IOCTL, "IOCTL_HID_GET_INPUT_REPORT\n");
- HidFx2GetInput(hRequest);
- WdfRequestComplete(hRequest, status);
- break;
-
- case IOCTL_HID_SET_OUTPUT_REPORT:
- TraceInfo(DBG_IOCTL, "IOCTL_HID_SET_OUTPUT_REPORT\n");
- status = HidFx2SetOutput(hRequest);
- WdfRequestComplete(hRequest, status);
- break;
-
- default:
- TraceInfo(DBG_IOCTL, "IOCTL Not Supported 0x%X\n", ulIoControlCode);
- status = STATUS_NOT_SUPPORTED;
- WdfRequestComplete(hRequest, status);
- break;
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit\n");
- return;
-}
-
-
-
-NTSTATUS HidFx2GetInput(_In_ WDFREQUEST hRequest)
-{
- NTSTATUS status = STATUS_SUCCESS;
- WDF_REQUEST_PARAMETERS params;
- WDFDEVICE hDevice;
- PHID_XFER_PACKET pTransferPacket = NULL;
- PHIDFX2_IO_REPORT pOutputReport = NULL;
- unsigned char bSwitchState = 0;
-
- PAGED_CODE();
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Enter\n");
-
- hDevice = WdfIoQueueGetDevice(WdfRequestGetIoQueue(hRequest));
-
- WDF_REQUEST_PARAMETERS_INIT(&params);
- WdfRequestGetParameters(hRequest, &params);
-
-
- if (params.Parameters.DeviceIoControl.OutputBufferLength < sizeof(HID_XFER_PACKET))
- {
- status = STATUS_BUFFER_TOO_SMALL;
- TraceErr(DBG_IOCTL, "(%!FUNC!) Userbuffer is small %!STATUS!\n", status);
- return status;
- }
-
- pTransferPacket = (PHID_XFER_PACKET) WdfRequestWdmGetIrp(hRequest)->UserBuffer;
- if (pTransferPacket == NULL)
- {
- status = STATUS_INVALID_DEVICE_REQUEST;
- TraceErr(DBG_IOCTL, "(%!FUNC!) Irp->UserBuffer is NULL %!STATUS!\n", status);
- return status;
- }
-
- if (pTransferPacket->reportBufferLen == 0)
- {
- status = STATUS_BUFFER_TOO_SMALL;
- TraceErr(DBG_IOCTL, "(%!FUNC!) HID_XFER_PACKET->reportBufferLen is 0, %!STATUS!\n", status);
- return status;
- }
-
- if (pTransferPacket->reportBufferLen < sizeof(UCHAR))
- {
- status = STATUS_BUFFER_TOO_SMALL;
- TraceErr(DBG_IOCTL, "(%!FUNC!) HID_XFER_PACKET->reportBufferLen is too small, %!STATUS!\n", status);
- return status;
- }
-
- if (pTransferPacket->reportId != GENERIC_DESKTOP_REPORT_ID)
- {
- status = STATUS_INVALID_DEVICE_REQUEST;
- TraceErr(DBG_IOCTL, "(%!FUNC!) Incorrect report ID, %!STATUS!\n", status);
- return status;
- }
-
- pOutputReport = (PHIDFX2_IO_REPORT)pTransferPacket->reportBuffer;
-
- // Get the switch state directly from the hardware
- status = HidFx2GetSwitchState(hDevice, &bSwitchState);
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) switch state 0x%x\n", bSwitchState);
-
- //Mask off everything except the actual switch bit
- bSwitchState &= RADIO_SWITCH_BUTTONS_BIT_MASK;
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) maskedswitch state 0x%x\n", bSwitchState);
-
- pOutputReport->bReportId = GENERIC_DESKTOP_REPORT_ID;
- pOutputReport->bData = bSwitchState;
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit status %!STATUS!\n", status);
- return status;
-}
-
-
-
-NTSTATUS HidFx2SetOutput(_In_ WDFREQUEST hRequest)
-{
- NTSTATUS status = STATUS_SUCCESS;
- PHID_XFER_PACKET pTransferPacket = NULL;
- WDF_REQUEST_PARAMETERS params;
- PHIDFX2_IO_REPORT pOutputReport = NULL;
- WDFDEVICE hDevice;
-
- PAGED_CODE();
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Enter\n");
-
- hDevice = WdfIoQueueGetDevice(WdfRequestGetIoQueue(hRequest));
-
- WDF_REQUEST_PARAMETERS_INIT(&params);
- WdfRequestGetParameters(hRequest, &params);
-
- if (params.Parameters.DeviceIoControl.InputBufferLength < sizeof(HID_XFER_PACKET))
- {
- status = STATUS_BUFFER_TOO_SMALL;
- TraceErr(DBG_IOCTL, "(%!FUNC!) Userbuffer is small %!STATUS!\n", status);
- return status;
- }
-
- pTransferPacket = (PHID_XFER_PACKET) WdfRequestWdmGetIrp(hRequest)->UserBuffer;
- if (pTransferPacket == NULL)
- {
- status = STATUS_INVALID_DEVICE_REQUEST;
- TraceErr(DBG_IOCTL, "(%!FUNC!) Irp->UserBuffer is NULL %!STATUS!\n", status);
- return status;
- }
-
- if (pTransferPacket->reportBufferLen == 0)
- {
- status = STATUS_BUFFER_TOO_SMALL;
- TraceErr(DBG_IOCTL, "(%!FUNC!) HID_XFER_PACKET->reportBufferLen is 0, %!STATUS!\n", status);
- return status;
- }
-
- if (pTransferPacket->reportBufferLen < sizeof(UCHAR))
- {
- status = STATUS_BUFFER_TOO_SMALL;
- TraceErr(DBG_IOCTL, "(%!FUNC!) HID_XFER_PACKET->reportBufferLen is too small, %!STATUS!\n", status);
- return status;
- }
-
- if (pTransferPacket->reportId != GENERIC_DESKTOP_REPORT_ID)
- {
- status = STATUS_INVALID_DEVICE_REQUEST;
- TraceErr(DBG_IOCTL, "(%!FUNC!) Incorrect report ID, %!STATUS!\n", status);
- return status;
- }
-
- pOutputReport = (PHIDFX2_IO_REPORT)pTransferPacket->reportBuffer;
-
- if (pOutputReport->bData == 0)
- {
- status = SendVendorCommand(hDevice, HIDFX2_SET_BARGRAPH_DISPLAY, BARGRAPH_LED_ALL_OFF);
- }
- else
- {
- status = SendVendorCommand(hDevice, HIDFX2_SET_BARGRAPH_DISPLAY, BARGRAPH_LED_ALL_ON);
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit status %!STATUS!\n", status);
- return status;
-}
-
-
-
-//This routine sets the state of the Feature: in this case Segment Display on the USB FX2 board.
-NTSTATUS SendVendorCommand(_In_ WDFDEVICE hDevice, _In_ unsigned char bVendorCommand, _In_ unsigned char bCommandData)
-{
- NTSTATUS status = STATUS_SUCCESS;
- ULONG cBytesTransferred = 0;
- PDEVICE_EXTENSION pDevContext = NULL;
- WDF_MEMORY_DESCRIPTOR memDesc;
- WDF_USB_CONTROL_SETUP_PACKET controlSetupPacket;
- WDF_REQUEST_SEND_OPTIONS sendOptions;
-
- PAGED_CODE();
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Enter\n");
-
- pDevContext = GetDeviceContext(hDevice);
-
- TraceInfo(DBG_IOCTL, "(%!FUNC!): Command:0x%x, data: 0x%x\n", bVendorCommand, bCommandData);
-
- // Send the I/O with a timeout.
- // We do that because we send the I/O in the context of the user thread and if it gets stuck, it would prevent the user process from existing.
- WDF_REQUEST_SEND_OPTIONS_INIT(&sendOptions, WDF_REQUEST_SEND_OPTION_TIMEOUT);
-
- WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&sendOptions, WDF_REL_TIMEOUT_IN_SEC(5));
-
- WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR(&controlSetupPacket,
- BmRequestHostToDevice,
- BmRequestToDevice,
- bVendorCommand, // Request
- 0, // Value
- 0); // Index
-
- WDF_MEMORY_DESCRIPTOR_INIT_BUFFER(&memDesc, &bCommandData, sizeof(bCommandData));
-
- status = WdfUsbTargetDeviceSendControlTransferSynchronously(pDevContext->hUsbDevice,
- WDF_NO_HANDLE, // Optional WDFREQUEST
- &sendOptions, // PWDF_REQUEST_SEND_OPTIONS
- &controlSetupPacket,
- &memDesc,
- &cBytesTransferred);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!): Failed to set Segment Display state - %!STATUS!\n", status);
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit\n");
-
- return status;
-}
-
-
-
-// Finds the HID descriptor and copies it into the buffer provided by the Request.
-//
-NTSTATUS HidFx2GetHidDescriptor(_In_ WDFDEVICE hDevice, _In_ WDFREQUEST hRequest)
-{
- NTSTATUS status = STATUS_SUCCESS;
- size_t cBytesToCopy = 0;
- WDFMEMORY memory;
- PDEVICE_EXTENSION pDevContext = NULL;
- HID_DESCRIPTOR hidDescriptor;
-
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Entry\n");
-
- status = WdfRequestRetrieveOutputMemory(hRequest, &memory);
- if (NT_SUCCESS(status))
- {
- hidDescriptor.bLength= sizeof(hidDescriptor); // length of HID descriptor
- hidDescriptor.bDescriptorType= HID_HID_DESCRIPTOR_TYPE; // descriptor type == HID 0x21
- hidDescriptor.bcdHID= HID_CLASS_SPEC_RELEASE_1_00; // hid spec release
- hidDescriptor.bCountry= HID_COUNTRY_NON_LOCALIZED; // country code
- hidDescriptor.bNumDescriptors= 0x01; // number of HID class descriptors
- hidDescriptor.DescriptorList[0].bReportType =HID_REPORT_DESCRIPTOR_TYPE;
- hidDescriptor.DescriptorList[0].wReportLength = sizeof(c_ButtonDescriptor);
-
- pDevContext = GetDeviceContext(hDevice);
- if (pDevContext != NULL)
- {
- // Set length of non default report descriptor
- switch (pDevContext->driverMode)
- {
- case DM_BUTTON_AND_LED:
- hidDescriptor.DescriptorList[0].wReportLength = sizeof(c_ButtonWithLedDescriptor);
- break;
- case DM_SLIDER_SWITCH:
- hidDescriptor.DescriptorList[0].wReportLength = sizeof(c_SliderSwitchDescriptor);
- break;
- case DM_SLIDER_SWITCH_AND_LED:
- hidDescriptor.DescriptorList[0].wReportLength = sizeof(c_SliderSwitchWithLedDescriptor);
- break;
- case DM_LED_ONLY:
- hidDescriptor.DescriptorList[0].wReportLength = sizeof(c_LedOnlyDescriptor);
- break;
- default:
- break;
- }
- }
- cBytesToCopy = hidDescriptor.bLength;
- if (cBytesToCopy != 0)
- {
- status = WdfMemoryCopyFromBuffer(memory, 0, (PVOID)&hidDescriptor, cBytesToCopy);
- if (NT_SUCCESS(status))
- {
- // Report how many bytes were copied
- WdfRequestSetInformation(hRequest, cBytesToCopy);
- }
- else // WdfMemoryCopyFromBuffer failed
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!) WdfMemoryCopyFromBuffer failed %!STATUS!\n", status);
- return status;
- }
- }
- else // length is zero
- {
- status = STATUS_INVALID_DEVICE_STATE;
- TraceErr(DBG_IOCTL, "(%!FUNC!) c_DefaultHidDescriptor is zero, %!STATUS!\n", status);
- return status;
- }
-
- }
- else // WdfRequestRetrieveOutputMemory failed
- {
- TraceErr(DBG_IOCTL, " (%!FUNC!) WdfRequestRetrieveOutputMemory failed %!STATUS!\n", status);
- return status;
- }
-
- TraceVerbose(DBG_IOCTL, " (%!FUNC!) HidFx2GetHidDescriptor Exit = %!STATUS!\n", status);
- return status;
-}
-
-
-
-// Finds the Report descriptor and copies it into the buffer provided by the Request.
-//
-NTSTATUS HidFx2GetReportDescriptor(_In_ WDFDEVICE hDevice, _In_ WDFREQUEST hRequest)
-{
- NTSTATUS status = STATUS_SUCCESS;
- WDFMEMORY memory;
- PDEVICE_EXTENSION pDevContext = NULL;
- PVOID pBuffer = (PVOID)c_ButtonDescriptor;
- size_t cBytesToCopy = sizeof(c_ButtonDescriptor);
-
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Entry\n");
-
- status = WdfRequestRetrieveOutputMemory(hRequest, &memory);
- if (NT_SUCCESS(status))
- {
- pDevContext = GetDeviceContext(hDevice);
- if (pDevContext != NULL)
- {
- // Select a non default report descriptor
- switch (pDevContext->driverMode)
- {
- case DM_BUTTON_AND_LED:
- pBuffer = (PVOID)c_ButtonWithLedDescriptor;
- cBytesToCopy = sizeof(c_ButtonWithLedDescriptor);
- break;
- case DM_SLIDER_SWITCH:
- pBuffer = (PVOID)c_SliderSwitchDescriptor;
- cBytesToCopy = sizeof(c_SliderSwitchDescriptor);
- break;
- case DM_SLIDER_SWITCH_AND_LED:
- pBuffer = (PVOID)c_SliderSwitchWithLedDescriptor;
- cBytesToCopy = sizeof(c_SliderSwitchWithLedDescriptor);
- break;
- case DM_LED_ONLY:
- pBuffer = (PVOID)c_LedOnlyDescriptor;
- cBytesToCopy = sizeof(c_LedOnlyDescriptor);
- break;
- default:
- break;
- }
- }
- if (cBytesToCopy != 0)
- {
- status = WdfMemoryCopyFromBuffer(memory, 0, pBuffer, cBytesToCopy);
- if (NT_SUCCESS(status))
- {
- // Report how many bytes were copied
- WdfRequestSetInformation(hRequest, cBytesToCopy);
- }
- else // WdfMemoryCopyFromBuffer failed
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!) WdfMemoryCopyFromBuffer failed %!STATUS!\n", status);
- }
- }
- else // report length is zero
- {
- status = STATUS_INVALID_DEVICE_STATE;
- TraceErr(DBG_IOCTL, "(%!FUNC!) c_DefaultHidDescriptor's reportLength is zero, %!STATUS!\n", status);
- }
- }
- else // WdfRequestRetrieveOutputMemory failed
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!)WdfRequestRetrieveOutputMemory failed %!STATUS!\n", status);
-
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit = %!STATUS!\n", status);
- return status;
-}
-
-
-
-// Fill in the given struct _HID_DEVICE_ATTRIBUTES
-//
-NTSTATUS HidFx2GetDeviceAttributes(_In_ WDFREQUEST hRequest)
-{
- NTSTATUS status = STATUS_SUCCESS;
- PHID_DEVICE_ATTRIBUTES pDeviceAttributes = NULL;
- PUSB_DEVICE_DESCRIPTOR pUsbDeviceDescriptor = NULL;
- PDEVICE_EXTENSION pDeviceInfo = NULL;
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Entry\n");
-
- pDeviceInfo = GetDeviceContext(WdfIoQueueGetDevice(WdfRequestGetIoQueue(hRequest)));
- status = WdfRequestRetrieveOutputBuffer(hRequest, sizeof (HID_DEVICE_ATTRIBUTES), &pDeviceAttributes, NULL);
- if (NT_SUCCESS(status))
- {
- // Retrieve USB device descriptor saved in device context
- pUsbDeviceDescriptor = WdfMemoryGetBuffer(pDeviceInfo->hDeviceDescriptor, NULL);
- pDeviceAttributes->Size = sizeof (HID_DEVICE_ATTRIBUTES);
- pDeviceAttributes->VendorID = pUsbDeviceDescriptor->idVendor;
- pDeviceAttributes->ProductID = pUsbDeviceDescriptor->idProduct;
- pDeviceAttributes->VersionNumber = pUsbDeviceDescriptor->bcdDevice;
- // Report how many bytes were copied
- WdfRequestSetInformation(hRequest, sizeof (HID_DEVICE_ATTRIBUTES));
- }
- else // WdfRequestRetrieveOutputBuffer failed
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!) WdfRequestRetrieveOutputBuffer failed %!STATUS!\n", status);
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit = %!STATUS!\n", status);
- return status;
-}
-
-
-
-// Pass down Idle notification request to lower driver
-//
-NTSTATUS HidFx2SendIdleNotification(_In_ WDFREQUEST hRequest)
-{
- NTSTATUS status = STATUS_SUCCESS;
- WDF_REQUEST_SEND_OPTIONS options;
- WDFIOTARGET hNextLowerDriver;
- WDFDEVICE hDevice;
- PIO_STACK_LOCATION pCurrentIrpStack = NULL;
- IO_STACK_LOCATION nextIrpStack;
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Entry\n");
-
- hDevice = WdfIoQueueGetDevice(WdfRequestGetIoQueue(hRequest));
- pCurrentIrpStack = IoGetCurrentIrpStackLocation(WdfRequestWdmGetIrp(hRequest));
-
- // Convert the request to corresponding USB Idle notification request
- if (pCurrentIrpStack->Parameters.DeviceIoControl.InputBufferLength >= sizeof(HID_SUBMIT_IDLE_NOTIFICATION_CALLBACK_INFO))
- {
- ASSERT(sizeof(HID_SUBMIT_IDLE_NOTIFICATION_CALLBACK_INFO) == sizeof(USB_IDLE_CALLBACK_INFO));
- #pragma warning(suppress :4127) // conditional expression is constant warning
- if (sizeof(HID_SUBMIT_IDLE_NOTIFICATION_CALLBACK_INFO) == sizeof(USB_IDLE_CALLBACK_INFO))
- {
- // prepare next stack location
- RtlZeroMemory(&nextIrpStack, sizeof(IO_STACK_LOCATION));
- nextIrpStack.MajorFunction = pCurrentIrpStack->MajorFunction;
- nextIrpStack.Parameters.DeviceIoControl.InputBufferLength = pCurrentIrpStack->Parameters.DeviceIoControl.InputBufferLength;
- nextIrpStack.Parameters.DeviceIoControl.Type3InputBuffer = pCurrentIrpStack->Parameters.DeviceIoControl.Type3InputBuffer;
- nextIrpStack.Parameters.DeviceIoControl.IoControlCode = IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION;
- nextIrpStack.DeviceObject = WdfIoTargetWdmGetTargetDeviceObject(WdfDeviceGetIoTarget(hDevice));
-
- // Format the I/O request for the driver's local I/O target by using the contents of the specified WDM I/O stack location structure.
- WdfRequestWdmFormatUsingStackLocation(hRequest, &nextIrpStack);
-
- // Send the request down using Fire and forget option.
- WDF_REQUEST_SEND_OPTIONS_INIT(&options, WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET);
- hNextLowerDriver = WdfDeviceGetIoTarget(hDevice);
- if (WdfRequestSend(hRequest, hNextLowerDriver, &options) == FALSE)
- {
- status = STATUS_UNSUCCESSFUL;
- }
- }
- else // Incorrect DeviceIoControl.InputBufferLength
- {
- status = STATUS_INFO_LENGTH_MISMATCH;
- TraceErr(DBG_IOCTL, "(%!FUNC!) Incorrect DeviceIoControl.InputBufferLength, %!STATUS!\n", status);
- return status;
- }
- }
- else // DeviceIoControl.InputBufferLength too small
- {
- status = STATUS_BUFFER_TOO_SMALL;
- TraceErr(DBG_IOCTL, "(%!FUNC!) DeviceIoControl.InputBufferLength too small, %!STATUS!\n", status);
- return status;
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit = %!STATUS!\n", status);
- return status;
-}
-
-
-
-
-
diff --git a/network/radio/HidSwitchDriverSample/trace.h b/network/radio/HidSwitchDriverSample/trace.h
deleted file mode 100644
index 0ec09b91..00000000
--- a/network/radio/HidSwitchDriverSample/trace.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#pragma once
-
-#define WPP_CHECK_FOR_NULL_STRING //to prevent exceptions due to NULL strings
-
-#define WPP_CONTROL_GUIDS \
- WPP_DEFINE_CONTROL_GUID(HidUsbFx2TraceGuid, (091182d7, 5167, 4e77, aa80, ca6c1e6201e9), \
- WPP_DEFINE_BIT(DBG_INIT) \
- WPP_DEFINE_BIT(DBG_PNP) \
- WPP_DEFINE_BIT(DBG_IOCTL) \
- )
-
-#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
-#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)
diff --git a/network/radio/HidSwitchDriverSample/usb.c b/network/radio/HidSwitchDriverSample/usb.c
deleted file mode 100644
index 84cf7faa..00000000
--- a/network/radio/HidSwitchDriverSample/usb.c
+++ /dev/null
@@ -1,466 +0,0 @@
-#include "RadioSwitchHidUsbFx2.h"
-#include "usb.tmh"
-
-
-#ifdef ALLOC_PRAGMA
-#pragma alloc_text(PAGE, HidFx2EvtDevicePrepareHardware)
-#pragma alloc_text(PAGE, HidFx2EvtDeviceD0Exit)
-#pragma alloc_text(PAGE, HidFx2ConfigContReaderForInterruptEndPoint)
-#endif
-
-
-// In this callback, the driver does whatever is necessary to make the hardware ready to use.
-// In the case of a USB device, this involves reading and selecting descriptors.
-NTSTATUS
-HidFx2EvtDevicePrepareHardware(
- _In_ WDFDEVICE hDevice,
- _In_ WDFCMRESLIST hResourceList,
- _In_ WDFCMRESLIST hResourceListTranslated
- )
-{
- NTSTATUS status = STATUS_SUCCESS;
- PDEVICE_EXTENSION pDevContext = NULL;
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS configParams;
- WDF_OBJECT_ATTRIBUTES attributes;
- PUSB_DEVICE_DESCRIPTOR pUsbDeviceDescriptor = NULL;
-
- UNREFERENCED_PARAMETER(hResourceList);
- UNREFERENCED_PARAMETER(hResourceListTranslated);
-
- PAGED_CODE ();
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Enter\n");
-
- pDevContext = GetDeviceContext(hDevice);
-
- // Create a WDFUSBDEVICE object. WdfUsbTargetDeviceCreate obtains the USB device descriptor and the first USB configuration
- //descriptor from the device and stores them. It also creates a framework USB interface object for each interface in the device's first configuration.
- //
- // The parent of each USB device object is the driver's framework driver object. The driver cannot change this parent, and the ParentObject
- // member or the WDF_OBJECT_ATTRIBUTES structure must be NULL.
- //
- // We only create device the first time PrepareHardware is called. If the device is restarted by pnp manager for resource rebalance, we
- // will use the same device handle but then select the interfaces again because the USB stack could reconfigure the device on restart.
- if (pDevContext->hUsbDevice == NULL)
- {
- status = WdfUsbTargetDeviceCreate(hDevice, WDF_NO_OBJECT_ATTRIBUTES, &pDevContext->hUsbDevice);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_PNP, "(%!FUNC!) WdfUsbTargetDeviceCreate failed %!STATUS!\n", status);
- return status;
- }
- }
-
- // Select a device configuration by using a WDF_USB_DEVICE_SELECT_CONFIG_PARAMS
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE(&configParams);
- status = WdfUsbTargetDeviceSelectConfig(pDevContext->hUsbDevice, WDF_NO_OBJECT_ATTRIBUTES, &configParams);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_PNP, "(%!FUNC!) WdfUsbTargetDeviceSelectConfig failed %!STATUS!\n", status);
- return status;
- }
-
- pDevContext->hUsbInterface = configParams.Types.SingleInterface.ConfiguredUsbInterface;
-
- // Get the device descriptor and store it in device context
- WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
- attributes.ParentObject = hDevice;
- status = WdfMemoryCreate(&attributes,
- NonPagedPoolNx,
- 0,
- sizeof(USB_DEVICE_DESCRIPTOR),
- &pDevContext->hDeviceDescriptor,
- &pUsbDeviceDescriptor);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_PNP, "(%!FUNC!) WdfMemoryCreate for Device Descriptor failed %!STATUS!\n", status);
- return status;
- }
-
- WdfUsbTargetDeviceGetDeviceDescriptor(pDevContext->hUsbDevice, pUsbDeviceDescriptor);
-
- // Get the Interrupt pipe. There are other endpoints but we are only interested in interrupt endpoint since our HID data comes from this
- pDevContext->hInterruptPipe = WdfUsbInterfaceGetConfiguredPipe(pDevContext->hUsbInterface, INTERRUPT_ENDPOINT_INDEX, NULL);
- if (NULL == pDevContext->hInterruptPipe)
- {
- TraceErr(DBG_PNP, "(%!FUNC!) Failed to get interrupt pipe info\n");
- status = STATUS_INVALID_DEVICE_STATE;
- return status;
- }
-
- // Tell the framework that it's okay to read less than MaximumPacketSize
- WdfUsbTargetPipeSetNoMaximumPacketSizeCheck(pDevContext->hInterruptPipe);
-
- //configure continuous reader
- status = HidFx2ConfigContReaderForInterruptEndPoint(pDevContext);
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Exit, Status: %!STATUS!\n", status);
-
- return status;
-}
-
-
-
-// This routine configures a continuous reader on the interrupt endpoint. It's called from the PrepareHarware event.
-//
-NTSTATUS HidFx2ConfigContReaderForInterruptEndPoint(PDEVICE_EXTENSION pDeviceContext)
-{
- WDF_USB_CONTINUOUS_READER_CONFIG contReaderConfig;
- NTSTATUS status = STATUS_SUCCESS;
-
- PAGED_CODE ();
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Enter\n");
-
- WDF_USB_CONTINUOUS_READER_CONFIG_INIT(&contReaderConfig,
- HidFx2EvtUsbInterruptPipeReadComplete,
- pDeviceContext, // Context
- sizeof(UCHAR)); // TransferLength
-
- status = WdfUsbTargetPipeConfigContinuousReader(pDeviceContext->hInterruptPipe, &contReaderConfig);
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_INIT, "(%!FUNC!) failed %!STATUS!\n", status);
- }
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Exit, status: %!STATUS!\n", status);
-
- return status;
-}
-
-
-
-// This the completion routine of the continuous reader. This can called concurrently on multiprocessor system if there are
-// more than one readers configured. So make sure to protect access to global resources.
-//
-void HidFx2EvtUsbInterruptPipeReadComplete(
- WDFUSBPIPE hPipe,
- WDFMEMORY hBuffer,
- size_t cNumBytesTransferred,
- WDFCONTEXT pContext
- )
-{
- PDEVICE_EXTENSION pDevContext = pContext;
- BOOLEAN fInTimerQueue;
- unsigned char *pbSwitchState = NULL;
- unsigned char bCurrentSwitchState = 0;
- unsigned char bPrevSwitchState = 0;
- unsigned char bToggledSwitch = 0;
-
- UNREFERENCED_PARAMETER(cNumBytesTransferred);
- UNREFERENCED_PARAMETER(hPipe);
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Enter\n");
-
- // Interrupt endpoints sends switch state when first started or when resuming from suspend.
- // We need to ignore that data since user did not change the switch state.
- if (pDevContext->fIsPowerUpSwitchState)
- {
- pDevContext->fIsPowerUpSwitchState = FALSE;
- TraceInfo(DBG_INIT, "(%!FUNC!) Dropping interrupt message since received during powerup/resume\n");
- return;
- }
-
-
- // Make sure that there is data in the read packet.
- // Depending on the device specification, it is possible for it to return a 0 length read in certain conditions.
- if (cNumBytesTransferred == 0)
- {
- TraceWarning(DBG_INIT, "(%!FUNC!) Zero length read occured on the Interrupt Pipe's Continuous Reader\n");
- return;
- }
-
- pbSwitchState = WdfMemoryGetBuffer(hBuffer, NULL);
- bCurrentSwitchState = ~(*pbSwitchState); // switchs are inverted on hardware boards
- bCurrentSwitchState &= RADIO_SWITCH_BUTTONS_BIT_MASK; //Mask off everything except the actual radio switch bit
- bPrevSwitchState = pDevContext->bCurrentSwitchState;
-
- if (bPrevSwitchState ^ bCurrentSwitchState) // make sure we toggled the radio switch
- {
- switch(pDevContext->driverMode)
- {
- // If it's a slider switch we want 0->1 and 1->0 transitions.
- case DM_SLIDER_SWITCH:
- case DM_SLIDER_SWITCH_AND_LED:
- bToggledSwitch = bCurrentSwitchState;
- // A timer is started for 10 ms everytime there is a switch toggled
- fInTimerQueue = WdfTimerStart(pDevContext->hDebounceTimer, WDF_REL_TIMEOUT_IN_MS(SWITCHPACK_DEBOUNCE_TIME));
- TraceInfo(DBG_INIT, "(%!FUNC!) Debounce Timer started. Existing -%!bool!\n", fInTimerQueue);
- break;
- //If it's a button so we only report 0->1 transitions
- case DM_BUTTON:
- case DM_BUTTON_AND_LED:
- bToggledSwitch = (bPrevSwitchState ^ bCurrentSwitchState) & bCurrentSwitchState;
- if (bToggledSwitch != 0)
- {
- // A timer is started for 10 ms everytime there is a switch toggled on
- fInTimerQueue = WdfTimerStart(pDevContext->hDebounceTimer, WDF_REL_TIMEOUT_IN_MS(SWITCHPACK_DEBOUNCE_TIME));
- TraceInfo(DBG_INIT, "(%!FUNC!) Debounce Timer started. Existing -%!bool!\n", fInTimerQueue);
- }
- break;
- // Ignore button presses if LED only
- case DM_LED_ONLY:
- default:
- break;
- }
-
- // Store switch state in device context
- pDevContext->bCurrentSwitchState = bCurrentSwitchState;
- pDevContext->bLatestToggledSwitch = bToggledSwitch;
- }
- else
- {
- TraceInfo(DBG_INIT, "(%!FUNC!) Not a radio switch toggle\n");
- }
- TraceInfo(DBG_INIT, "(%!FUNC!) Switch 0x%x, prevSwitch:0x%x, X0R:0x%x\n", bCurrentSwitchState, bPrevSwitchState, bToggledSwitch);
-
- TraceVerbose(DBG_INIT, "(%!FUNC!) Exit\n");
-}
-
-
-
-// This function gets called when the timeout period of debounce timer elapses.
-// It reports a switch change by completing a pending request
-//
-void HidFx2EvtTimerFunction(_In_ WDFTIMER hTimer)
-{
- WDFDEVICE hDevice = NULL;
- WDFREQUEST hRequest;
- PDEVICE_EXTENSION pDevContext = NULL;
- NTSTATUS status = STATUS_SUCCESS;
- size_t cBytesReturned = 0;
- unsigned char bToggledSwitch = 0;
- ULONG cBytesToCopy = 0;
- PHIDFX2_IO_REPORT pInputReport = NULL;
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Enter\n");
-
-
- hDevice = WdfTimerGetParentObject(hTimer);
- pDevContext = GetDeviceContext(hDevice);
-
- bToggledSwitch = pDevContext->bLatestToggledSwitch;
- TraceInfo(DBG_IOCTL, "(%!FUNC!) mode %d switch %d\n", pDevContext->driverMode, bToggledSwitch);
-
- if (!((pDevContext->driverMode == DM_BUTTON || pDevContext->driverMode == DM_BUTTON_AND_LED) && bToggledSwitch == 0))
- {
- // Check if there are any pending requests in the Interrupt Message Queue.
- // If a request is found then complete the pending request.
- status = WdfIoQueueRetrieveNextRequest(pDevContext->hInterruptMsgQueue, &hRequest);
- if (NT_SUCCESS(status))
- {
- cBytesToCopy = sizeof(pInputReport[0]);
- status = WdfRequestRetrieveOutputBuffer(hRequest,
- cBytesToCopy,
- &pInputReport,
- &cBytesReturned); // BufferLength
- if (NT_SUCCESS(status))
- {
- TraceInfo(DBG_IOCTL, "(%!FUNC!) WdfRequestRetrieveOutputBuffer switch %d\n", bToggledSwitch);
-
- pInputReport->bReportId = GENERIC_DESKTOP_REPORT_ID;
- pInputReport->bData = bToggledSwitch;
- cBytesReturned = cBytesToCopy;
- }
- else // WdfRequestRetrieveOutputBuffer failed
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!) WdfRequestRetrieveOutputBuffer failed with status: %!STATUS!\n", status);
- }
-
- WdfRequestCompleteWithInformation(hRequest, status, cBytesReturned);
-
- }
- else if (status != STATUS_NO_MORE_ENTRIES)
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!) WdfIoQueueRetrieveNextRequest status %!STATUS!\n", status);
- }
- }
- else
- {
- TraceInfo(DBG_IOCTL, "(%!FUNC!) ignore switch");
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit\n");
-}
-
-
-
-// This function gets the switch state of the USB device directly from the hardware
-//
-NTSTATUS HidFx2GetSwitchState(_In_ WDFDEVICE hDevice, _Out_ unsigned char *pbSwitchState)
-{
- PDEVICE_EXTENSION pDevContext = NULL;
- NTSTATUS status = STATUS_SUCCESS;
- WDF_MEMORY_DESCRIPTOR memDesc;
- WDF_USB_CONTROL_SETUP_PACKET controlSetupPacket;
- ULONG cBytesTransferred = 0;
-
- if(pbSwitchState != NULL)
- {
- *pbSwitchState = 0;
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Entry\n");
-
- pDevContext = GetDeviceContext(hDevice);
-
- // set the segment state on the USB device
- WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR(&controlSetupPacket,
- BmRequestDeviceToHost,
- BmRequestToDevice,
- HIDFX2_READ_SWITCH_STATE, // Request
- 0, // Value
- 0); // Index
-
- WDF_MEMORY_DESCRIPTOR_INIT_BUFFER(&memDesc, pbSwitchState, sizeof(*pbSwitchState));
-
- status = WdfUsbTargetDeviceSendControlTransferSynchronously(pDevContext->hUsbDevice,
- NULL, // Optional WDFREQUEST
- NULL, // PWDF_REQUEST_SEND_OPTIONS
- &controlSetupPacket,
- &memDesc,
- &cBytesTransferred);
-
- if (!NT_SUCCESS(status))
- {
- TraceErr(DBG_IOCTL, "(%!FUNC!) Failed to read switch state - %!STATUS! \n", status);
- }
- else
- {
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Switch state is 0x%x\n", *pbSwitchState);
- *pbSwitchState = ~(*pbSwitchState); // switchs are inverted on hardware boards
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Switch state is 0x%x\n", *pbSwitchState);
- }
-
- TraceVerbose(DBG_IOCTL, "(%!FUNC!) Exit, status: %!STATUS!\n", status);
- return status;
-}
-
-
-
-// EvtDeviceD0Entry event callback must perform any operations that are necessary before the specified device is used.
-// Called every time the hardware needs to be initialized/reinitialized.
-// This function is not marked pageable because this function is in the device power up path.
-// This function runs at PASSIVE_LEVEL, even though it is not paged.
-//
-NTSTATUS HidFx2EvtDeviceD0Entry(_In_ WDFDEVICE hDevice, _In_ WDF_POWER_DEVICE_STATE previousState)
-{
- PDEVICE_EXTENSION pDevContext = NULL;
- NTSTATUS status = STATUS_SUCCESS;
- unsigned char bSwitchState = 0;
- unsigned char bMode = 0;
-
- pDevContext = GetDeviceContext(hDevice);
-
- TraceVerbose(DBG_PNP, "(%!FUNC!) Enter - coming from %S\n", DbgDevicePowerString(previousState));
-
- SendVendorCommand(hDevice, HIDFX2_SET_BARGRAPH_DISPLAY, BARGRAPH_LED_ALL_OFF);
-
- // Retrieve the current switch state and store it in device context
- status = HidFx2GetSwitchState(hDevice, &bSwitchState);
- if (NT_SUCCESS(status))
- {
- // Left most switches define Mode
- bMode = bSwitchState & MODE_SELECTION_BUTTONS_BIT_MASK;
- switch (bMode)
- {
- case SWITCHPACK_SELECTION_FOR_MODE2:
- pDevContext->driverMode = DM_BUTTON_AND_LED;
- SendVendorCommand(hDevice, HIDFX2_SET_7SEGMENT_DISPLAY, SEGMENT_DISPLAY_2);
- break;
- case SWITCHPACK_SELECTION_FOR_MODE3:
- pDevContext->driverMode = DM_SLIDER_SWITCH;
- SendVendorCommand(hDevice, HIDFX2_SET_7SEGMENT_DISPLAY, SEGMENT_DISPLAY_3);
- break;
- case SWITCHPACK_SELECTION_FOR_MODE4:
- pDevContext->driverMode = DM_SLIDER_SWITCH_AND_LED;
- SendVendorCommand(hDevice, HIDFX2_SET_7SEGMENT_DISPLAY, SEGMENT_DISPLAY_4);
- break;
- case SWITCHPACK_SELECTION_FOR_MODE5:
- pDevContext->driverMode = DM_LED_ONLY;
- SendVendorCommand(hDevice, HIDFX2_SET_7SEGMENT_DISPLAY, SEGMENT_DISPLAY_5);
- break;
- default:
- pDevContext->driverMode = DM_BUTTON;
- SendVendorCommand(hDevice, HIDFX2_SET_7SEGMENT_DISPLAY, SEGMENT_DISPLAY_1);
- break;
- }
-
- pDevContext->bCurrentSwitchState = bSwitchState;
-
- // Start the target. This will start the continuous reader
- status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(pDevContext->hInterruptPipe));
- if (NT_SUCCESS(status))
- {
- pDevContext->fIsPowerUpSwitchState = TRUE;
- }
- }
- else
- {
- TraceErr(DBG_PNP, "(%!FUNC!) Failed to get current switch state, status: %!STATUS!\n", status);
- }
-
- TraceVerbose(DBG_PNP, "(%!FUNC!) Exit, status: %!STATUS!\n", status);
- return status;
-}
-
-
-
-/*
-This routine undoes anything done in EvtDeviceD0Entry. It is called whenever the device leaves the D0 state, which happens when the device is
-stopped, when it is removed, and when it is powered off.
-
-The device is still in D0 when this callback is invoked, which means that the driver can still touch hardware in this routine.
-
-EvtDeviceD0Exit event callback must perform any operations that are necessary before the specified device is moved out of the D0 state.
-If the driver needs to save hardware state before the device is powered down, then that should be done here.
-
-This function runs at PASSIVE_LEVEL, though it is generally not paged. A driver can optionally make this function pageable if DO_POWER_PAGABLE is set.
-
-Even if DO_POWER_PAGABLE isn't set, this function still runs at PASSIVE_LEVEL.
-In this case, though, the function absolutely must not do anything that will cause a page fault.
-*/
-NTSTATUS HidFx2EvtDeviceD0Exit(_In_ WDFDEVICE hDevice, _In_ WDF_POWER_DEVICE_STATE targetState)
-{
- PDEVICE_EXTENSION pDevContext;
-
- PAGED_CODE();
-
- TraceVerbose(DBG_PNP, "(%!FUNC!) Enter- moving to %S\n", DbgDevicePowerString(targetState));
-
- pDevContext = GetDeviceContext(hDevice);
-
- WdfIoTargetStop(WdfUsbTargetPipeGetIoTarget(pDevContext->hInterruptPipe), WdfIoTargetCancelSentIo);
-
- TraceVerbose(DBG_PNP, "(%!FUNC!) Exit\n");
-
- return STATUS_SUCCESS;
-}
-
-
-
-PCWSTR DbgDevicePowerString(_In_ WDF_POWER_DEVICE_STATE powerState)
-{
- switch (powerState)
- {
- case WdfPowerDeviceInvalid:
- return L"WdfPowerDeviceInvalid";
- case WdfPowerDeviceD0:
- return L"WdfPowerDeviceD0";
- case PowerDeviceD1:
- return L"WdfPowerDeviceD1";
- case WdfPowerDeviceD2:
- return L"WdfPowerDeviceD2";
- case WdfPowerDeviceD3:
- return L"WdfPowerDeviceD3";
- case WdfPowerDeviceD3Final:
- return L"WdfPowerDeviceD3Final";
- case WdfPowerDevicePrepareForHibernation:
- return L"WdfPowerDevicePrepareForHibernation";
- case WdfPowerDeviceMaximum:
- return L"PowerDeviceMaximum";
- default:
- return L"UnKnown Device Power State";
- }
-}
-
diff --git a/network/radio/RadioManagerSample/RadioManagerSample.sln b/network/radio/RadioManagerSample/RadioManagerSample.sln
index 8f24bfc5..ac5e9178 100644
--- a/network/radio/RadioManagerSample/RadioManagerSample.sln
+++ b/network/radio/RadioManagerSample/RadioManagerSample.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -7,16 +7,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleRM", "cpp\SampleRM.vc
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Debug|Win32.ActiveCfg = Debug|Win32
- {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Debug|Win32.Build.0 = Debug|Win32
- {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Release|Win32.ActiveCfg = Release|Win32
- {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Release|Win32.Build.0 = Release|Win32
+ {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Debug|ARM64.Build.0 = Debug|ARM64
+ {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Release|ARM64.ActiveCfg = Release|ARM64
+ {1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Release|ARM64.Build.0 = Release|ARM64
{1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Debug|x64.ActiveCfg = Debug|x64
{1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Debug|x64.Build.0 = Debug|x64
{1138E033-EEBF-4BA3-B74F-D51443EF5EE0}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/radio/RadioManagerSample/cpp/SampleRM.vcxproj b/network/radio/RadioManagerSample/cpp/SampleRM.vcxproj
index 0e5f41be..02ce8236 100644
--- a/network/radio/RadioManagerSample/cpp/SampleRM.vcxproj
+++ b/network/radio/RadioManagerSample/cpp/SampleRM.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{1138E033-EEBF-4BA3-B74F-D51443EF5EE0}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{249F8230-A77D-4B97-A61C-30A168C1C626}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>SampleRM</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>SampleRM</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>SampleRM</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>SampleRM</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -92,17 +92,17 @@
<ExceptionHandling>Sync</ExceptionHandling>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
</ClCompile>
@@ -112,17 +112,17 @@
<AdditionalOptions>%(AdditionalOptions) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ResourceCompile>
<AdditionalOptions>%(AdditionalOptions) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ResourceCompile>
<AdditionalOptions>%(AdditionalOptions) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ResourceCompile>
<AdditionalOptions>%(AdditionalOptions) -N</AdditionalOptions>
</ResourceCompile>
@@ -130,13 +130,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<UseOfAtl>Dynamic</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<UseOfAtl>Dynamic</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<UseOfAtl>Dynamic</UseOfAtl>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<UseOfAtl>Dynamic</UseOfAtl>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -150,7 +150,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE;_NTSDK=1;WPP_USE_NTDLL_FUNCTIONS</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE;_NTSDK=1;WPP_USE_NTDLL_FUNCTIONS</PreprocessorDefinitions>
</ClCompile>
@@ -161,7 +161,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE;_NTSDK=1;WPP_USE_NTDLL_FUNCTIONS</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE;_NTSDK=1;WPP_USE_NTDLL_FUNCTIONS</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +172,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE;_NTSDK=1;WPP_USE_NTDLL_FUNCTIONS</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;UNICODE;_UNICODE;_NTSDK=1;WPP_USE_NTDLL_FUNCTIONS</PreprocessorDefinitions>
</ClCompile>
@@ -185,26 +185,22 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -224,7 +220,7 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -241,7 +237,7 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -258,7 +254,7 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
diff --git a/network/trans/WFPSampler/WFPSampler.sln b/network/trans/WFPSampler/WFPSampler.sln
index d0bea94a..4f4851d9 100644
--- a/network/trans/WFPSampler/WFPSampler.sln
+++ b/network/trans/WFPSampler/WFPSampler.sln
@@ -1,7 +1,7 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0
+# Visual Studio Version 17
+VisualStudioVersion = 17.9.34701.34
MinimumVisualStudioVersion = 12.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lib", "Lib", "{7DD950F3-D068-438B-808A-EE9BE2D1F34D}"
EndProject
@@ -34,48 +34,48 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WFPSampler", "exe\WFPSample
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Debug|Win32.ActiveCfg = Debug|Win32
- {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Debug|Win32.Build.0 = Debug|Win32
- {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Release|Win32.ActiveCfg = Release|Win32
- {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Release|Win32.Build.0 = Release|Win32
+ {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Debug|ARM64.Build.0 = Debug|ARM64
+ {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Debug|ARM64.Build.0 = Debug|ARM64
+ {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Debug|ARM64.Build.0 = Debug|ARM64
+ {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Debug|ARM64.Build.0 = Debug|ARM64
+ {778259E7-3481-41CC-891C-375F6FAE1F19}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {778259E7-3481-41CC-891C-375F6FAE1F19}.Debug|ARM64.Build.0 = Debug|ARM64
+ {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Release|ARM64.ActiveCfg = Release|ARM64
+ {26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Release|ARM64.Build.0 = Release|ARM64
+ {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Release|ARM64.ActiveCfg = Release|ARM64
+ {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Release|ARM64.Build.0 = Release|ARM64
+ {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Release|ARM64.ActiveCfg = Release|ARM64
+ {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Release|ARM64.Build.0 = Release|ARM64
+ {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Release|ARM64.ActiveCfg = Release|ARM64
+ {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Release|ARM64.Build.0 = Release|ARM64
+ {778259E7-3481-41CC-891C-375F6FAE1F19}.Release|ARM64.ActiveCfg = Release|ARM64
+ {778259E7-3481-41CC-891C-375F6FAE1F19}.Release|ARM64.Build.0 = Release|ARM64
{26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Debug|x64.ActiveCfg = Debug|x64
{26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Debug|x64.Build.0 = Debug|x64
{26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Release|x64.ActiveCfg = Release|x64
{26F918E9-6CA9-4AC8-BBCA-418F3165DCE1}.Release|x64.Build.0 = Release|x64
- {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Debug|Win32.ActiveCfg = Debug|Win32
- {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Debug|Win32.Build.0 = Debug|Win32
- {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Release|Win32.ActiveCfg = Release|Win32
- {6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Release|Win32.Build.0 = Release|Win32
{6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Debug|x64.ActiveCfg = Debug|x64
{6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Debug|x64.Build.0 = Debug|x64
{6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Release|x64.ActiveCfg = Release|x64
{6F3E7DC1-C828-463C-BC9E-290B56D0F58C}.Release|x64.Build.0 = Release|x64
- {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Debug|Win32.ActiveCfg = Debug|Win32
- {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Debug|Win32.Build.0 = Debug|Win32
- {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Release|Win32.ActiveCfg = Release|Win32
- {909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Release|Win32.Build.0 = Release|Win32
{909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Debug|x64.ActiveCfg = Debug|x64
{909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Debug|x64.Build.0 = Debug|x64
{909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Release|x64.ActiveCfg = Release|x64
{909C6B51-0D92-440A-9FEB-B7A2715D8EDE}.Release|x64.Build.0 = Release|x64
- {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Debug|Win32.ActiveCfg = Debug|Win32
- {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Debug|Win32.Build.0 = Debug|Win32
- {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Release|Win32.ActiveCfg = Release|Win32
- {E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Release|Win32.Build.0 = Release|Win32
{E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Debug|x64.ActiveCfg = Debug|x64
{E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Debug|x64.Build.0 = Debug|x64
{E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Release|x64.ActiveCfg = Release|x64
{E5EAD883-D15D-42DA-BCF6-78484F91BEC2}.Release|x64.Build.0 = Release|x64
- {778259E7-3481-41CC-891C-375F6FAE1F19}.Debug|Win32.ActiveCfg = Debug|Win32
- {778259E7-3481-41CC-891C-375F6FAE1F19}.Debug|Win32.Build.0 = Debug|Win32
- {778259E7-3481-41CC-891C-375F6FAE1F19}.Release|Win32.ActiveCfg = Release|Win32
- {778259E7-3481-41CC-891C-375F6FAE1F19}.Release|Win32.Build.0 = Release|Win32
{778259E7-3481-41CC-891C-375F6FAE1F19}.Debug|x64.ActiveCfg = Debug|x64
{778259E7-3481-41CC-891C-375F6FAE1F19}.Debug|x64.Build.0 = Debug|x64
{778259E7-3481-41CC-891C-375F6FAE1F19}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/trans/WFPSampler/exe/WFPSampler.vcxproj b/network/trans/WFPSampler/exe/WFPSampler.vcxproj
index 34c79187..3a80bd7c 100644
--- a/network/trans/WFPSampler/exe/WFPSampler.vcxproj
+++ b/network/trans/WFPSampler/exe/WFPSampler.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,41 +22,45 @@
<ProjectGuid>{778259E7-3481-41CC-891C-375F6FAE1F19}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{FB205303-28A2-4DC2-A648-6A009F5B5C23}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
@@ -65,26 +69,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -108,7 +112,7 @@
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib;ws2_32.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -129,7 +133,7 @@
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib;ws2_32.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -150,7 +154,7 @@
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib;ws2_32.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
diff --git a/network/trans/WFPSampler/exe/WFPSampler.vcxproj.Filters b/network/trans/WFPSampler/exe/WFPSampler.vcxproj.Filters
index 53a436b8..490ff8d2 100644
--- a/network/trans/WFPSampler/exe/WFPSampler.vcxproj.Filters
+++ b/network/trans/WFPSampler/exe/WFPSampler.vcxproj.Filters
@@ -64,4 +64,57 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/network/trans/WFPSampler/lib/HelperFunctions_Log.cpp b/network/trans/WFPSampler/lib/HelperFunctions_Log.cpp
index 79a183c1..a0670d60 100644
--- a/network/trans/WFPSampler/lib/HelperFunctions_Log.cpp
+++ b/network/trans/WFPSampler/lib/HelperFunctions_Log.cpp
@@ -84,9 +84,6 @@ VOID HlprLogError(_In_ PCWSTR pMessage,
argumentList);
if(status != NO_ERROR)
{
- wprintf(L"HlprLogError : StringCchVPrintf() [status: %#x]",
- status);
-
HLPR_BAIL;
}
@@ -95,9 +92,6 @@ VOID HlprLogError(_In_ PCWSTR pMessage,
&size);
if(status != NO_ERROR)
{
- wprintf(L"HlprLogError : StringCchLength() [status: %#x]",
- status);
-
HLPR_BAIL;
}
@@ -115,14 +109,9 @@ VOID HlprLogError(_In_ PCWSTR pMessage,
pLogMessage);
if(status != NO_ERROR)
{
- wprintf(L"HlprLogError : StringCchPrintf() [status: %#x]",
- status);
-
HLPR_BAIL;
}
- wprintf(pActualMessage);
-
HLPR_BAIL_LABEL:
va_end(argumentList);
@@ -201,8 +190,6 @@ VOID HlprLogInfo(_In_ PCWSTR pMessage,
HLPR_BAIL;
}
- wprintf(pActualMessage);
-
HLPR_BAIL_LABEL:
va_end(argumentList);
diff --git a/network/trans/WFPSampler/lib/WFPSampler.vcxproj b/network/trans/WFPSampler/lib/WFPSampler.vcxproj
index 713e363f..a905e396 100644
--- a/network/trans/WFPSampler/lib/WFPSampler.vcxproj
+++ b/network/trans/WFPSampler/lib/WFPSampler.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -23,41 +23,45 @@
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<SupportsPackaging>false</SupportsPackaging>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{266CA76A-7B80-446A-80F9-4322B0A18BC6}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
@@ -66,26 +70,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -105,11 +109,9 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\idl;$(SDK_INC_PATH);.\$(IntDir)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib;ws2_32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -126,11 +128,9 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\idl;$(SDK_INC_PATH);.\$(IntDir)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib;ws2_32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -147,11 +147,9 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\idl;$(SDK_INC_PATH);.\$(IntDir)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib;ws2_32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
@@ -168,8 +166,6 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\idl;$(SDK_INC_PATH);.\$(IntDir)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib;ws2_32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
diff --git a/network/trans/WFPSampler/svc/Scenarios_AppContainers.cpp b/network/trans/WFPSampler/svc/Scenarios_AppContainers.cpp
index e9ed9f4c..3a698bc0 100644
--- a/network/trans/WFPSampler/svc/Scenarios_AppContainers.cpp
+++ b/network/trans/WFPSampler/svc/Scenarios_AppContainers.cpp
@@ -585,7 +585,7 @@ UINT32 PrvScenarioAppContainerRegister()
{
UINT32 status = NO_ERROR;
- status = NetworkIsolationRegisterForAppContainerChanges(0,
+ status = NetworkIsolationRegisterForAppContainerChanges(INET_FIREWALL_AC_NONE,
PrvScenarioAppContainerActOnChange,
0,
&registrationHandle);
diff --git a/network/trans/WFPSampler/svc/WFPSamplerService.vcxproj b/network/trans/WFPSampler/svc/WFPSamplerService.vcxproj
index 00e24f27..1e3c0eac 100644
--- a/network/trans/WFPSampler/svc/WFPSamplerService.vcxproj
+++ b/network/trans/WFPSampler/svc/WFPSamplerService.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,7 +22,7 @@
<ProjectGuid>{E5EAD883-D15D-42DA-BCF6-78484F91BEC2}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{256D7B80-D376-4F69-B8B0-F835E2A36519}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -33,30 +33,34 @@
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
+ <UseDebugLibraries>False</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
@@ -65,26 +69,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>WFPSamplerService</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>WFPSamplerService</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>WFPSamplerService</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>WFPSamplerService</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -94,6 +98,10 @@
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\lib;$(SDK_INC_PATH);.\$(IntDir);.\..\lib\$(IntDir)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <SDLCheck>true</SDLCheck>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
@@ -105,16 +113,18 @@
</ResourceCompile>
<Link>
<AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;api-ms-win-net-isolation-l1-1-0.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;oneCoreUap.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\lib;$(SDK_INC_PATH);.\$(IntDir);.\..\lib\$(IntDir)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <SDLCheck>true</SDLCheck>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
@@ -126,16 +136,19 @@
</ResourceCompile>
<Link>
<AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;api-ms-win-net-isolation-l1-1-0.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;oneCoreUap.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\lib;$(SDK_INC_PATH);.\$(IntDir);.\..\lib\$(IntDir)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <SDLCheck>true</SDLCheck>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
@@ -146,17 +159,21 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\lib;$(SDK_INC_PATH);.\$(IntDir);.\..\lib\$(IntDir)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;api-ms-win-net-isolation-l1-1-0.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalOptions>%(AdditionalOptions) /integritycheck /VERBOSE:LIB</AdditionalOptions>
+ <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;oneCoreUap.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <IgnoreSpecificDefaultLibraries>libcmt.lib;msvcrt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\lib;$(SDK_INC_PATH);.\$(IntDir);.\..\lib\$(IntDir)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <CallingConvention>StdCall</CallingConvention>
+ <SDLCheck>true</SDLCheck>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE</PreprocessorDefinitions>
@@ -167,8 +184,9 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\lib;$(SDK_INC_PATH);.\$(IntDir);.\..\lib\$(IntDir)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalOptions>%(AdditionalOptions) /integritycheck</AdditionalOptions>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;api-ms-win-net-isolation-l1-1-0.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalOptions>%(AdditionalOptions) /integritycheck /VERBOSE:LIB</AdditionalOptions>
+ <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;setupapi.lib;rpcrt4.lib;rpcns4.lib;fwpuclnt.lib;ws2_32.lib;oneCoreUap.lib;.\..\lib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <IgnoreSpecificDefaultLibraries>libcmt.lib;msvcrt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
diff --git a/network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketExaminationCallouts.cpp b/network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketExaminationCallouts.cpp
index 64c0b401..cef0b6df 100644
--- a/network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketExaminationCallouts.cpp
+++ b/network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketExaminationCallouts.cpp
@@ -4199,7 +4199,7 @@ VOID PerformBasicPacketExaminationAtDiscard(_In_ CLASSIFY_DATA* pClassifyData)
break;
}
- case IpDiscardIPSNPIDrop:
+ case IpDiscardIpsnpiClientDrop:
{
pDiscardReason = "IPSNPI Drop";
diff --git a/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.cpp b/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.cpp
index 34dcc81d..7b074c5c 100644
--- a/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.cpp
+++ b/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.cpp
@@ -138,8 +138,6 @@ VOID NTAPI CompleteBasicStreamInjection(_In_ VOID* pContext,
NT_ASSERT(pContext);
NT_ASSERT(pNetBufferList);
- NT_ASSERT(NT_SUCCESS(pNetBufferList->Status) ||
- pNetBufferList->Status == STATUS_CONNECTION_ABORTED);
if(pNetBufferList->Status != STATUS_SUCCESS)
DbgPrintEx(DPFLTR_IHVNETWORK_ID,
diff --git a/network/trans/WFPSampler/sys/CompletionFunctions_FastStreamInjectionCallouts.cpp b/network/trans/WFPSampler/sys/CompletionFunctions_FastStreamInjectionCallouts.cpp
index 8dec0b9a..9437f586 100644
--- a/network/trans/WFPSampler/sys/CompletionFunctions_FastStreamInjectionCallouts.cpp
+++ b/network/trans/WFPSampler/sys/CompletionFunctions_FastStreamInjectionCallouts.cpp
@@ -60,8 +60,6 @@ VOID NTAPI CompleteFastStreamInjection(_In_ VOID* pContext,
UNREFERENCED_PARAMETER(pContext);
UNREFERENCED_PARAMETER(dispatchLevel);
- NT_ASSERT(NT_SUCCESS(pNetBufferList->Status));
-
FwpsFreeCloneNetBufferList(pNetBufferList,
0);
diff --git a/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.InX b/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.InX
index b101c772..c6aad050 100644
--- a/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.InX
+++ b/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.InX
@@ -24,7 +24,8 @@
ClassGuid = {57465043-616C-6C6F-7574-5F636C617373}
Provider = %ProviderString%
CatalogFile = WFPSamplerCalloutDriver.Cat
- DriverVer =
+ DriverVer =
+ PnpLockdown = 1
[SourceDisksNames.$ARCH$]
1 = %WFPSamplerCalloutDriverDiskId%,,,""
@@ -36,42 +37,36 @@
AddReg = WFPCalloutsClassReg
[DestinationDirs]
- DefaultDestDir = 12 ;/// %WinDir%\System32\Drivers
- WFPSamplerCalloutDriver.DriverFiles = 12 ;/// %WinDir%\System32\Drivers
+ WFPSamplerCalloutDriver.CopyFiles = 12 ;/// %WinDir%\System32\Drivers
+ WFPSamplerCalloutDriver.DelFiles = 12 ;/// %WinDir%\System32\Drivers
[DefaultInstall.nt$ARCH$]
OptionDesc = %WFPSamplerCalloutDriverDescription%
- CopyFiles = WFPSamplerCalloutDriver.DriverFiles
+ CopyFiles = WFPSamplerCalloutDriver.CopyFiles
[DefaultInstall.nt$ARCH$.Services]
AddService = %WFPSamplerCalloutDriverServiceName%,,WFPSamplerCalloutDriver.Service
[DefaultUninstall.nt$ARCH$]
- DelFiles = WFPSamplerCalloutDriver.DriverFiles
- DelReg = WFPCalloutClassReg
+ LegacyUninstall = 1
+ DelFiles = WFPSamplerCalloutDriver.DelFiles
+ DelReg = WFPCalloutsClassReg
[DefaultUninstall.nt$ARCH$.Services]
DelService = %WFPSamplerCalloutDriverServiceName%,0x200 ;/// SPSVCINST_STOPSERVICE
[WFPCalloutsClassReg]
- HKR,,,0,%WFPCalloutsClassName%
- HKR,,Icon,,-5
- HKR,,SilentInstall,,1
+ HKR,,,0
+ HKR,,Icon,,
+ HKR,,SilentInstall,,
HKR,,DeviceCharacteristics,0x10001,0x100 ;/// FLG_ADDREG_BINVALUETYPE | FLG_ADDREG_TYPE_MULTI_SZ, FILE_DEVICE_SECURE_OPEN
- HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GA;;;LS)" ;/// Permit Generic All access to SYstem, Built-in Admin, and Local System.
+ HKR,,Security,, ;/// Permit Generic All access to SYstem, Built-in Admin, and Local System.
-[WFPSamplerCalloutDriver.DriverFiles]
+[WFPSamplerCalloutDriver.CopyFiles]
WFPSamplerCalloutDriver.sys,,,0x00000040 ;/// COPYFLG_OVERWRITE_OLDER_ONLY
-[WFPSamplerCalloutDriver.NT.CoInstallers]
- AddReg = WFPSamplerCalloutDriver.CoInstaller.AddReg
- CopyFiles = WFPSamplerCalloutDriver.CoInstaller.CopyFiles
-
-[WFPSamplerCalloutDriver.CoInstaller.AddReg]
- HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller"
-
-[WFPSamplerCalloutDriver.CoInstaller.CopyFiles]
- WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll
+[WFPSamplerCalloutDriver.DelFiles]
+ WFPSamplerCalloutDriver.sys
[WFPSamplerCalloutDriver.Service]
DisplayName = %WFPSamplerCalloutDriverServiceName%
@@ -90,4 +85,4 @@
WFPSamplerCalloutDriverDescription = "WFP Sampler Callout Driver"
WFPSamplerCalloutDriverServiceName = "WFPSamplerCallouts"
WFPSamplerCalloutDriverServiceDescription = "WFP Sampler Service - Callouts"
- WFPSamplerCalloutDriverDiskId = "WFPSampler Installation Disk"
+ WFPSamplerCalloutDriverDiskId = "WFPSampler Installation Disk" \ No newline at end of file
diff --git a/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.vcxproj b/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.vcxproj
index 8e69a8a0..af141891 100644
--- a/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.vcxproj
+++ b/network/trans/WFPSampler/sys/WFPSamplerCalloutDriver.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,40 +22,40 @@
<ProjectGuid>{909C6B51-0D92-440A-9FEB-B7A2715D8EDE}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
- <KMDF_VERSION_MINOR>11</KMDF_VERSION_MINOR>
+ <KMDF_VERSION_MINOR>15</KMDF_VERSION_MINOR>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{0AEE6AAB-0332-4F13-9D87-16C8FE0B32F8}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -67,13 +67,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -108,13 +108,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>WFPSamplerCalloutDriver</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>WFPSamplerCalloutDriver</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>WFPSamplerCalloutDriver</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>WFPSamplerCalloutDriver</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -122,75 +122,75 @@
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;$(SDK_LIB_PATH)\UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;$(SDK_LIB_PATH)\UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;$(SDK_LIB_PATH)\UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ClCompile>
<Midl>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;UNICODE;_UNICODE;NDIS630</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;.\..\syslib;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;$(SDK_LIB_PATH)\UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(DDK_LIB_PATH)\WDMSec.lib;UUID.lib;.\..\syslib\$(IntDir)\WFPSampler.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
@@ -204,8 +204,14 @@
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
+ <Link>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ </Link>
+ <Link>
+ <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ </Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<ExceptionHandling>
</ExceptionHandling>
@@ -213,8 +219,14 @@
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
+ <Link>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ </Link>
+ <Link>
+ <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ </Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ExceptionHandling>
</ExceptionHandling>
@@ -222,8 +234,14 @@
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
+ <Link>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ </Link>
+ <Link>
+ <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ </Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<ExceptionHandling>
</ExceptionHandling>
@@ -231,6 +249,12 @@
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
+ <Link>
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
+ </Link>
+ <Link>
+ <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ </Link>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="Framework_WFPSamplerCalloutDriver.rc" />
diff --git a/network/trans/WFPSampler/sys/Wfp_Annotations.h b/network/trans/WFPSampler/sys/Wfp_Annotations.h
new file mode 100644
index 00000000..3bfd56c6
--- /dev/null
+++ b/network/trans/WFPSampler/sys/Wfp_Annotations.h
@@ -0,0 +1,213 @@
+#pragma once
+/*****************************************************************************\
+* *
+* DriverSpecs.h - markers for documenting the semantics of WFP callout driver *
+* APIs *
+* *
+* Version 1.0.0 *
+* *
+* Copyright (c) Microsoft Corporation. All rights reserved. *
+* *
+\*****************************************************************************/
+
+/*****************************************************************************\
+* NOTE *
+* NOTE *
+* NOTE *
+* The macro bodies in this file are subject to change without notice. *
+* Attempting to use the annotations in the macro bodies directly is not *
+* supported. *
+* NOTE *
+* NOTE *
+* NOTE *
+\*****************************************************************************/
+
+/*****************************************************************************\
+* The annotations described by wfp_annotations.h are used to annotate drivers.
+*
+* Wfp_annotations.h contains those annotations which are appropriate to userspace
+* code, or which might appear in headers that are shared between user space
+* and kernel space.
+*
+* Many annotations are context dependent. They only apply to certain versions
+* of Windows, or only to certain classes of driver. These rules can be written
+* using something like __drv_when(NTDDI_VERSION >= NTDDI_WINXP, ...)
+* which causes the rule only to apply to Windows XP and later. Many of these
+* symbols are already defined in various Windows headers.
+*
+* To facilitate using this sort of conditional rule, we collect here the
+* various known symbols that are (or reasonably might) be used in such
+* a conditional annotation. Some are speculative in that the symbol has
+* not yet been defined because there are no known uses of it yet.
+// @@BEGIN_DDKSPLIT
+* It is expected that the first user of that symbol will add it to the
+* appropriate system header AND update this comment to reflect that.
+* Adding additional similar comments is encouraged.
+// @@END_DDKSPLIT
+*
+* Where the symbol already exists its relevant header is
+* noted below (excluding the "really well known" ones).
+*
+* Each symbol is listed with the currently known possible values.
+*
+* Some symbols are marked as #define symbols -- they are used with #ifdef
+* operators only. To use them in __drv_when, use something like
+* __drv_when(__drv_defined(NT), ...).
+*
+* WDK Version (copied for convenience from sdkddkver.h)
+* NTDDI_VERSION: NTDDI_WIN2K NTDDI_WIN2KSP1 NTDDI_WIN2KSP2 NTDDI_WIN2KSP3
+* NTDDI_WIN2KSP4 NTDDI_WINXP NTDDI_WINXPSP1 NTDDI_WINXPSP2
+* NTDDI_WS03 NTDDI_WS03SP1 NTDDI_VISTA
+* The WDK version is taken as the WDM version as well.
+*
+* OS Version: (copied for convenience from sdkddkver.h)
+* _WIN32_WINNT: _WIN32_WINNT_NT4 _WIN32_WINNT_WIN2K _WIN32_WINNT_WINXP
+* _WIN32_WINNT_WS03 _WIN32_WINNT_LONGHORN
+* WINVER: 0x030B 0x0400 0x0500 0x0600
+* NT (#define symbol)
+* (sdkddkver.h also defines symbols for IE versions should they be needed.)
+*
+* Compiler Version:
+* _MSC_VER: too many to list.
+* _MSC_FULL_VER: too many to list.
+*
+* KMDF Version: (Currently defined/used only in makefiles.)
+* KMDF_VERSION: 1
+*
+* UMDF Version: (Currently defined/used only in makefiles.)
+* UMDF_VERSION: 1
+*
+* Architecture kinds:
+* __WIN64 (#define symbols)
+* _X86_
+* _AMD64_
+* _IA64_
+*
+* Machine Architectures:
+* _M_IX86
+* _M_AMD64
+* _M_IA64
+*
+* Driver Kind (NYI: "not yet implemented")
+* Typically these will be defined in the most-common header for a
+* particular driver (or in individual source files if appropriate).
+* These are not intended to necessarily be orthogonal: more than one might
+* apply to a particular driver.
+* _DRIVER_TYPE_BUS: 1 // NYI
+* _DRIVER_TYPE_FUNCTIONAL: 1 // NYI
+* _DRIVER_TYPE_MINIPORT: 1 // NYI
+* _DRIVER_TYPE_STORAGE: 1 // NYI
+* _DRIVER_TYPE_DISPLAY: 1 // NYI
+* _DRIVER_TYPE_FILESYSTEM: 1
+* _DRIVER_TYPE_FILESYSTEM_FILTER: 1
+*
+* NDIS driver version: (see ndis.h for much more detail.)
+* These can be used to both identify an NDIS driver and to check the version.
+* NDIS40 NDIS50 NDIS51 NDIS60 (#defined symbols)
+* NDIS_PROTOCOL_MAJOR_VERSION.NDIS_PROTOCOL_MINOR_VERSION: 4.0 5.0 5.1 6.0
+* And many others in ndis.h (including MINIPORT)
+*
+\*****************************************************************************/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define _Wfp_Annotation_ __declspec("_Wfp_Annotation_")
+#define _Wfp_stream_injection_classify_ __declspec("_Wfp_stream_injection_classify_")
+#define _Wfp_stream_inspection_classify_ __declspec("_Wfp_stream_inspection_classify_")
+#define _Wfp_stream_inspection_notify_ __declspec("_Wfp_stream_inspection_notify_")
+#define _Wfp_flow_inspection_notify_ __declspec("_Wfp_flow_inspection_notify_")
+#define _Wfp_flow_inspection_classify_ __declspec("_Wfp_flow_inspection_classify_")
+#define _Wfp_flow_injection_classify_ __declspec("_Wfp_flow_injection_classify_")
+#define _Wfp_Transport_inspection_classify_ __declspec("_Wfp_Transport_inspection_classify_")
+#define _Wfp_transport_injection_classify_ __declspec("_Wfp_transport_injection_classify_")
+#define _Wfp_transport_injection_classify_inline_ __declspec("_Wfp_transport_injection_classify_inline_")
+#define _Wfp_ale_inspection_notify_ __declspec("_Wfp_ale_inspection_notify_")
+#define _Wfp_ale_inspection_classify_ __declspec("_Wfp_ale_inspection_classify_")
+#define _Wfp_connect_redirect_inline_classify_ __declspec("_Wfp_connect_redirect_inline_classify_")
+#define _Wfp_connect_redirect_classify_ __declspec("_Wfp_connect_redirect_classify_")
+//
+//
+//
+//#define __drv_declspec(x) __declspec(x)
+//#define __$drv_group(annotes) \
+// __drv_declspec("SAL_begin") annotes __drv_declspec("SAL_end")
+//#define __drv_nop(x) x
+//
+// /****************************************************************************\
+// Callout Classify Annotions
+// /****************************************************************************/
+//
+// //_Wfp_Annotation_
+// __ANNOTATION(SAL_wfpAnnotation(void);)
+//#define _Wfp_Annotation_ \
+// _SAL2_Source_(_Wfp_Annotation_, (), _Post_ _SA_annotes0(SAL_wfpAnnotation))
+//
+//// Stream Injection
+// __ANNOTATION(SAL_wfpStreamInjection(void);)
+//#define _Wfp_stream_injection_classify_ \
+// _SAL2_Source_(_Wfp_stream_injection_classify_, (), _Post_ _SA_annotes0(SAL_wfpStreamInjection))
+//
+//// Stream Inspection
+// __ANNOTATION(SAL_wfpStreamInspection(void);)
+//#define _Wfp_stream_inspection_classify_ \
+// _SAL2_Source_(_Wfp_stream_inspection_classify_, (), _Post_ _SA_annotes0(SAL_wfpStreamInspection))
+//
+//__ANNOTATION(SAL_wfpStreamInspectionNotify(void);)
+//#define _Wfp_stream_inspection_notify_ \
+// _SAL2_Source_(_Wfp_stream_inspection_notify_, (), _Post_ _SA_annotes0(SAL_wfpStreamInspectionNotify))
+//
+//// Flow Inspections
+//__ANNOTATION(SAL_wfpFlowInspectionNotify(void);)
+//#define _Wfp_flow_inspection_notify_ \
+// _SAL2_Source_(_Wfp_flow_inspection_notify_, (), _Post_ _SA_annotes0(SAL_wfpFlowInspectionNotify))
+//
+//__ANNOTATION(SAL_wfpFlowInspectionClassify(void);)
+//#define _Wfp_flow_inspection_classify_ \
+// _SAL2_Source_(_Wfp_flow_inspection_classify_, (), _Post_ _SA_annotes0(SAL_wfpFlowInspectionClassify))
+//
+//__ANNOTATION(SAL_wfpFlowInjectionClassify(void);)
+//#define _Wfp_flow_injection_classify_ \
+// _SAL2_Source_(_Wfp_flow_injection_classify_, (), _Post_ _SA_annotes0(SAL_wfpFlowInjectionClassify))
+//
+//// Transport Injection/Inspection
+//
+//__ANNOTATION(SAL_wfpTransportInspection(void);)
+//#define _Wfp_Transport_inspection_classify_ \
+// _SAL2_Source_(_Wfp_Transport_inspection_classify_, (), _Post_ _SA_annotes0(SAL_wfpTransportInspection)) \
+//
+//__ANNOTATION(SAL_wfpTransportInjection(void);)
+//#define _Wfp_transport_injection_classify_ \
+// _SAL2_Source_(_Wfp_transport_injection_classify_, (), _Post_ _SA_annotes0(SAL_wfpTransportInjection)) \
+//
+//__ANNOTATION(SAL_wfpTransportInjectionInline(void);)
+//#define _Wfp_transport_injection_classify_inline_ \
+// _SAL2_Source_(_Wfp_transport_injection_classify_inline_, (), _Post_ _SA_annotes0(SAL_wfpTransportInjectionInline)) \
+//
+//
+//
+//// ALE Inspection Notify and Classify
+//__ANNOTATION(SAL_wfpAleInspectionNotify(void);)
+//#define _Wfp_ale_inspection_notify_ \
+// _SAL2_Source_(_Wfp_ale_inspection_notify_, (), _Post_ _SA_annotes0(SAL_wfpAleInspectionNotify)) \
+//
+//__ANNOTATION(SAL_wfpAleInspectionClassify(void);)
+//#define _Wfp_ale_inspection_classify_ \
+// _SAL2_Source_(_Wfp_ale_inspection_classify_, (), _Post_ _SA_annotes0(SAL_wfpAleInspectionClassify)) \
+//
+//// Connection Redirection Classify
+//__ANNOTATION(SAL_wfpConnectRedirectInlineClassify(void);)
+//#define _Wfp_connect_redirect_inline_classify_ \
+// _SAL2_Source_(_Wfp_connect_redirect_inline_classify_, (), _Post_ _SA_annotes0(SAL_wfpConnectRedirectInlineClassify)) \
+//
+//__ANNOTATION(SAL_wfpConnectRedirectClassify(void);)
+//#define _Wfp_connect_redirect_classify_ \
+// _SAL2_Source_(_Wfp_connect_redirect_classify_, (), _Post_ _SA_annotes0(SAL_wfpConnectRedirectClassify)) \
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.cpp
index fa2d4103..8ee9072c 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.cpp
@@ -67,7 +67,7 @@ INT64 g_OutstandingNBLReferences = 0;
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprClassifyDataReleaseLocalCopy(_Inout_ CLASSIFY_DATA* pClassifyData)
+VOID KrnlHlprClassifyDataReleaseLocalCopy(_Inout_ CLASSIFY_DATA* pClassifyData)
{
#if DBG
@@ -179,7 +179,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppClassifyData == 0)
-inline VOID KrnlHlprClassifyDataDestroyLocalCopy(_Inout_ CLASSIFY_DATA** ppClassifyData)
+VOID KrnlHlprClassifyDataDestroyLocalCopy(_Inout_ CLASSIFY_DATA** ppClassifyData)
{
#if DBG
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.h b/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.h
index 6aa6e838..64f0090c 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.h
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_ClassifyData.h
@@ -44,7 +44,7 @@ typedef struct CLASSIFY_DATA_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprClassifyDataReleaseLocalCopy(_Inout_ CLASSIFY_DATA* pClassifyData);
+VOID KrnlHlprClassifyDataReleaseLocalCopy(_Inout_ CLASSIFY_DATA* pClassifyData);
_At_(*ppClassifyData, _Pre_ _Notnull_)
_At_(*ppClassifyData, _Post_ _Null_ __drv_freesMem(Pool))
@@ -52,7 +52,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppClassifyData == 0)
-inline VOID KrnlHlprClassifyDataDestroyLocalCopy(_Inout_ CLASSIFY_DATA** ppClassifyData);
+VOID KrnlHlprClassifyDataDestroyLocalCopy(_Inout_ CLASSIFY_DATA** ppClassifyData);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.cpp
index 071c43f4..ad486000 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.cpp
@@ -70,7 +70,7 @@
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPurge(_Inout_ DPC_DATA* pDPCData)
+VOID KrnlHlprDPCDataPurge(_Inout_ DPC_DATA* pDPCData)
{
#if DBG
@@ -111,7 +111,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppDPCData == 0)
-inline VOID KrnlHlprDPCDataDestroy(_Inout_ DPC_DATA** ppDPCData)
+VOID KrnlHlprDPCDataDestroy(_Inout_ DPC_DATA** ppDPCData)
{
#if DBG
@@ -155,7 +155,7 @@ inline VOID KrnlHlprDPCDataDestroy(_Inout_ DPC_DATA** ppDPCData)
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_opt_ INJECTION_DATA* pInjectionData, /* 0 */
_In_opt_ VOID* pContext) /* 0 */
@@ -198,7 +198,7 @@ inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ PEND_DATA* pPendData,
_In_opt_ VOID* pContext) /* 0 */
@@ -243,7 +243,7 @@ inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ REDIRECT_DATA* pRedirectData,
_In_opt_ VOID* pContext) /* 0 */
@@ -287,7 +287,7 @@ inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ NOTIFY_DATA* pNotifyData,
_In_opt_ VOID* pContext) /* 0 */
{
@@ -328,7 +328,7 @@ inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ PEND_DATA* pPendData,
_In_opt_ VOID* pContext) /* 0 */
{
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.h b/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.h
index 4de525e9..0d334e09 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.h
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_DeferredProcedureCalls.h
@@ -44,7 +44,7 @@ typedef struct DPC_DATA_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPurge(_Inout_ DPC_DATA* pDPCData);
+VOID KrnlHlprDPCDataPurge(_Inout_ DPC_DATA* pDPCData);
_At_(*ppDPCData, _Pre_ _Notnull_)
_At_(*ppDPCData, _Post_ _Null_ __drv_freesMem(Pool))
@@ -52,39 +52,39 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppDPCData == 0)
-inline VOID KrnlHlprDPCDataDestroy(_Inout_ DPC_DATA** ppDPCData);
+VOID KrnlHlprDPCDataDestroy(_Inout_ DPC_DATA** ppDPCData);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_opt_ INJECTION_DATA* pInjectionData = 0,
_In_opt_ VOID* pContext = 0);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ PEND_DATA* pPendData,
_In_opt_ VOID* pContext = 0);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ REDIRECT_DATA* pRedirectData,
_In_opt_ VOID** pContext = 0);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ NOTIFY_DATA* pNotifyData,
_In_opt_ VOID* pContext = 0);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
+VOID KrnlHlprDPCDataPopulate(_Inout_ DPC_DATA* pDPCData,
_In_ PEND_DATA* pPendData,
_In_opt_ VOID* pContext = 0);
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.cpp
index b6d561d6..a21dcf8a 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.cpp
@@ -105,7 +105,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(return == STATUS_SUCCESS && *ppFlowContext == 0)
-inline NTSTATUS KrnlHlprFlowContextDestroy(_Inout_ FLOW_CONTEXT** ppFlowContext)
+NTSTATUS KrnlHlprFlowContextDestroy(_Inout_ FLOW_CONTEXT** ppFlowContext)
{
#if DBG
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.h b/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.h
index 72689de5..6e180e7a 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.h
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_FlowContext.h
@@ -113,7 +113,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(return == STATUS_SUCCESS && *ppFlowContext == 0)
-inline NTSTATUS KrnlHlprFlowContextDestroy(_Inout_ FLOW_CONTEXT** ppFlowContext);
+NTSTATUS KrnlHlprFlowContextDestroy(_Inout_ FLOW_CONTEXT** ppFlowContext);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.cpp
index cc9a0646..77324785 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.cpp
@@ -132,7 +132,7 @@ HANDLE g_pRedirectionHandles[2] = {0};
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpByteBlobPurgeLocalCopy(_Inout_ FWP_BYTE_BLOB* pBlob)
+VOID KrnlHlprFwpByteBlobPurgeLocalCopy(_Inout_ FWP_BYTE_BLOB* pBlob)
{
#if DBG
@@ -173,7 +173,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppBlob == 0)
-inline VOID KrnlHlprFwpByteBlobDestroyLocalCopy(_Inout_ FWP_BYTE_BLOB** ppBlob)
+VOID KrnlHlprFwpByteBlobDestroyLocalCopy(_Inout_ FWP_BYTE_BLOB** ppBlob)
{
#if DBG
@@ -352,7 +352,7 @@ FWP_BYTE_BLOB* KrnlHlprFwpByteBlobCreateLocalCopy(_In_ const FWP_BYTE_BLOB* pOri
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmDisplayDataPurgeLocalCopy(_Inout_ FWPM_DISPLAY_DATA* pData)
+VOID KrnlHlprFwpmDisplayDataPurgeLocalCopy(_Inout_ FWPM_DISPLAY_DATA* pData)
{
#if DBG
@@ -396,7 +396,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppDisplayData == 0)
-inline VOID KrnlHlprFwpmDisplayDataDestroyLocalCopy(_Inout_ FWPM_DISPLAY_DATA** ppDisplayData)
+VOID KrnlHlprFwpmDisplayDataDestroyLocalCopy(_Inout_ FWPM_DISPLAY_DATA** ppDisplayData)
{
#if DBG
@@ -630,7 +630,7 @@ FWPM_DISPLAY_DATA* KrnlHlprFwpmDisplayDataCreateLocalCopy(_In_ const FWPM_DISPLA
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmClassifyOptionPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION* pOption)
+VOID KrnlHlprFwpmClassifyOptionPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION* pOption)
{
#if DBG
@@ -672,7 +672,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppOption == 0)
-inline VOID KrnlHlprFwpmClassifyOptionDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION** ppOption)
+VOID KrnlHlprFwpmClassifyOptionDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION** ppOption)
{
#if DBG
@@ -845,7 +845,7 @@ FWPM_CLASSIFY_OPTION* KrnlHlprFwpmClassifyOptionCreateLocalCopy(_In_ const FWPM_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmClassifyOptionsPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS* pOptions)
+VOID KrnlHlprFwpmClassifyOptionsPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS* pOptions)
{
#if DBG
@@ -890,7 +890,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppOptions == 0)
-inline VOID KrnlHlprFwpmClassifyOptionsDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS** ppOptions)
+VOID KrnlHlprFwpmClassifyOptionsDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS** ppOptions)
{
#if DBG
@@ -1075,7 +1075,7 @@ FWPM_CLASSIFY_OPTIONS* KrnlHlprFwpmClassifyOptionsCreateLocalCopy(_In_ const FWP
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprIPsecDoSPOptionsPurgeLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS* pOptions)
+VOID KrnlHlprIPsecDoSPOptionsPurgeLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS* pOptions)
{
#if DBG
@@ -1119,7 +1119,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppOptions == 0)
-inline VOID KrnlHlprIPsecDoSPOptionsDestroyLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS** ppOptions)
+VOID KrnlHlprIPsecDoSPOptionsDestroyLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS** ppOptions)
{
#if DBG
@@ -1311,7 +1311,7 @@ IPSEC_DOSP_OPTIONS* KrnlHlprIPsecDoSPOptionsCreateLocalCopy(_In_ const IPSEC_DOS
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpTokenInformationPurgeLocalCopy(_Inout_ FWP_TOKEN_INFORMATION* pTokenInfo)
+VOID KrnlHlprFwpTokenInformationPurgeLocalCopy(_Inout_ FWP_TOKEN_INFORMATION* pTokenInfo)
{
#if DBG
@@ -1371,7 +1371,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppTokenInfo == 0)
-inline VOID KrnlHlprFwpTokenInformationDestroyLocalCopy(_Inout_ FWP_TOKEN_INFORMATION** ppTokenInfo)
+VOID KrnlHlprFwpTokenInformationDestroyLocalCopy(_Inout_ FWP_TOKEN_INFORMATION** ppTokenInfo)
{
#if DBG
@@ -4389,7 +4389,7 @@ FWP_VALUE* KrnlHlprFwpValueGetFromFwpsIncomingValues(_In_ const FWPS_INCOMING_VA
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpValuePurgeLocalCopy(_Inout_ FWP_VALUE* pValue)
+VOID KrnlHlprFwpValuePurgeLocalCopy(_Inout_ FWP_VALUE* pValue)
{
#if DBG
@@ -4516,7 +4516,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppValue == 0)
-inline VOID KrnlHlprFwpValueDestroyLocalCopy(_Inout_ FWP_VALUE** ppValue)
+VOID KrnlHlprFwpValueDestroyLocalCopy(_Inout_ FWP_VALUE** ppValue)
{
#if DBG
@@ -4849,7 +4849,7 @@ FWP_VALUE* KrnlHlprFwpValueCreateLocalCopy(_In_ const FWP_VALUE* pOriginalValue)
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpV4AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK* pAddrMask)
+VOID KrnlHlprFwpV4AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK* pAddrMask)
{
#if DBG
@@ -4890,7 +4890,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppAddrMask == 0)
-inline VOID KrnlHlprFwpV4AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK** ppAddrMask)
+VOID KrnlHlprFwpV4AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK** ppAddrMask)
{
#if DBG
@@ -5050,7 +5050,7 @@ FWP_V4_ADDR_AND_MASK* KrnlHlprFwpV4AddrAndMaskCreateLocalCopy(_In_ const FWP_V4_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpV6AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK* pAddrMask)
+VOID KrnlHlprFwpV6AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK* pAddrMask)
{
#if DBG
@@ -5091,7 +5091,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppAddrMask == 0)
-inline VOID KrnlHlprFwpV6AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK** ppAddrMask)
+VOID KrnlHlprFwpV6AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK** ppAddrMask)
{
#if DBG
@@ -5254,7 +5254,7 @@ FWP_V6_ADDR_AND_MASK* KrnlHlprFwpV6AddrAndMaskCreateLocalCopy(_In_ const FWP_V6_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpRangePurgeLocalCopy(_Inout_ FWP_RANGE* pRange)
+VOID KrnlHlprFwpRangePurgeLocalCopy(_Inout_ FWP_RANGE* pRange)
{
#if DBG
@@ -5296,7 +5296,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppRange == 0)
-inline VOID KrnlHlprFwpRangeDestroyLocalCopy(_Inout_ FWP_RANGE** ppRange)
+VOID KrnlHlprFwpRangeDestroyLocalCopy(_Inout_ FWP_RANGE** ppRange)
{
#if DBG
@@ -5471,7 +5471,7 @@ FWP_RANGE* KrnlHlprFwpRangeCreateLocalCopy(_In_ const FWP_RANGE* pOriginalRange)
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpConditionValuePurgeLocalCopy(_Inout_ FWP_CONDITION_VALUE* pValue)
+VOID KrnlHlprFwpConditionValuePurgeLocalCopy(_Inout_ FWP_CONDITION_VALUE* pValue)
{
#if DBG
@@ -5624,7 +5624,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppValue == 0)
-inline VOID KrnlHlprFwpConditionValueDestroyLocalCopy(_Inout_ FWP_CONDITION_VALUE** ppValue)
+VOID KrnlHlprFwpConditionValueDestroyLocalCopy(_Inout_ FWP_CONDITION_VALUE** ppValue)
{
#if DBG
@@ -6040,7 +6040,7 @@ BOOLEAN KrnlHlprFwpsIncomingValueConditionFlagsAreSet(_In_ const FWPS_INCOMING_V
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsIncomingValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_VALUES* pValues)
+VOID KrnlHlprFwpsIncomingValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_VALUES* pValues)
{
#if DBG
@@ -6088,7 +6088,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppValues == 0)
-inline VOID KrnlHlprFwpsIncomingValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_VALUES** ppValues)
+VOID KrnlHlprFwpsIncomingValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_VALUES** ppValues)
{
#if DBG
@@ -6269,7 +6269,7 @@ FWPS_INCOMING_VALUES* KrnlHlprFwpsIncomingValuesCreateLocalCopy(_In_ const FWPS_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsIncomingMetadataValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES* pMetadata)
+VOID KrnlHlprFwpsIncomingMetadataValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES* pMetadata)
{
#if DBG
@@ -6331,7 +6331,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppMetadata == 0)
-inline VOID KrnlHlprFwpsIncomingMetadataValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES** ppMetadata)
+VOID KrnlHlprFwpsIncomingMetadataValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES** ppMetadata)
{
#if DBG
@@ -6713,7 +6713,7 @@ FWPS_INCOMING_METADATA_VALUES* KrnlHlprFwpsIncomingMetadataValuesCreateLocalCopy
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsClassifyOutPurgeLocalCopy(_Inout_ FWPS_CLASSIFY_OUT* pOriginalClassifyOut)
+VOID KrnlHlprFwpsClassifyOutPurgeLocalCopy(_Inout_ FWPS_CLASSIFY_OUT* pOriginalClassifyOut)
{
#if DBG
@@ -6796,7 +6796,7 @@ VOID KrnlHlprFwpsClassifyOutDestroyLocalCopy(_Inout_ FWPS_CLASSIFY_OUT** ppClass
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsClassifyOutPopulateLocalCopy(_In_ const FWPS_CLASSIFY_OUT* pOriginalClassifyOut,
+VOID KrnlHlprFwpsClassifyOutPopulateLocalCopy(_In_ const FWPS_CLASSIFY_OUT* pOriginalClassifyOut,
_Inout_ FWPS_CLASSIFY_OUT* pClassifyOut)
{
#if DBG
@@ -6902,7 +6902,7 @@ FWPS_CLASSIFY_OUT* KrnlHlprFwpsClassifyOutCreateLocalCopy(_In_ const FWPS_CLASSI
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsStreamDataPurgeLocalCopy(_Inout_ FWPS_STREAM_DATA* pStreamData)
+VOID KrnlHlprFwpsStreamDataPurgeLocalCopy(_Inout_ FWPS_STREAM_DATA* pStreamData)
{
#if DBG
@@ -6956,7 +6956,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppStreamData == 0)
-inline VOID KrnlHlprFwpsStreamDataDestroyLocalCopy(_Inout_ FWPS_STREAM_DATA** ppStreamData)
+VOID KrnlHlprFwpsStreamDataDestroyLocalCopy(_Inout_ FWPS_STREAM_DATA** ppStreamData)
{
#if DBG
@@ -7126,7 +7126,7 @@ FWPS_STREAM_DATA* KrnlHlprFwpsStreamDataCreateLocalCopy(_In_ const FWPS_STREAM_D
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsStreamCalloutIOPacketPurgeLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET* pIOPacket)
+VOID KrnlHlprFwpsStreamCalloutIOPacketPurgeLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET* pIOPacket)
{
#if DBG
@@ -7169,7 +7169,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppIOPacket == 0)
-inline VOID KrnlHlprFwpsStreamCalloutIOPacketDestroyLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET** ppIOPacket)
+VOID KrnlHlprFwpsStreamCalloutIOPacketDestroyLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET** ppIOPacket)
{
#if DBG
@@ -7341,7 +7341,7 @@ FWPS_STREAM_CALLOUT_IO_PACKET* KrnlHlprFwpsStreamCalloutIOPacketCreateLocalCopy(
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmProviderContextPurgeLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT* pContext)
+VOID KrnlHlprFwpmProviderContextPurgeLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT* pContext)
{
#if DBG
@@ -7461,7 +7461,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppContext == 0)
-inline VOID KrnlHlprFwpmProviderContextDestroyLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT** ppContext)
+VOID KrnlHlprFwpmProviderContextDestroyLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT** ppContext)
{
#if DBG
@@ -7721,7 +7721,7 @@ FWPM_PROVIDER_CONTEXT* KrnlHlprFwpmProviderContextCreateLocalCopy(_In_ const FWP
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsFilterConditionPurgeLocalCopy(_Inout_ FWPS_FILTER_CONDITION* pCondition)
+VOID KrnlHlprFwpsFilterConditionPurgeLocalCopy(_Inout_ FWPS_FILTER_CONDITION* pCondition)
{
#if DBG
@@ -7766,7 +7766,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppConditions == 0)
-inline VOID KrnlHlprFwpsFilterConditionDestroyLocalCopy(_Inout_ FWPS_FILTER_CONDITION** ppConditions,
+VOID KrnlHlprFwpsFilterConditionDestroyLocalCopy(_Inout_ FWPS_FILTER_CONDITION** ppConditions,
_In_ UINT32 numConditions) /* 1 */
{
#if DBG
@@ -7949,7 +7949,7 @@ FWPS_FILTER_CONDITION* KrnlHlprFwpsFilterConditionCreateLocalCopy(_In_reads_(num
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsFilterPurgeLocalCopy(_Inout_ FWPS_FILTER* pFilter)
+VOID KrnlHlprFwpsFilterPurgeLocalCopy(_Inout_ FWPS_FILTER* pFilter)
{
#if DBG
@@ -7996,7 +7996,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppFilter == 0)
-inline VOID KrnlHlprFwpsFilterDestroyLocalCopy(_Inout_ FWPS_FILTER** ppFilter)
+VOID KrnlHlprFwpsFilterDestroyLocalCopy(_Inout_ FWPS_FILTER** ppFilter)
{
#if DBG
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.h b/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.h
index 39f69f54..0e6f0eb8 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.h
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.h
@@ -75,7 +75,7 @@ extern HANDLE g_pRedirectionHandles[2];
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpByteBlobPurgeLocalCopy(_Inout_ FWP_BYTE_BLOB* pBlob);
+VOID KrnlHlprFwpByteBlobPurgeLocalCopy(_Inout_ FWP_BYTE_BLOB* pBlob);
_At_(*ppBlob, _Pre_ _Notnull_)
_At_(*ppBlob, _Post_ _Null_ __drv_freesMem(Pool))
@@ -83,7 +83,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppBlob == 0)
-inline VOID KrnlHlprFwpByteBlobDestroyLocalCopy(_Inout_ FWP_BYTE_BLOB** ppBlob);
+VOID KrnlHlprFwpByteBlobDestroyLocalCopy(_Inout_ FWP_BYTE_BLOB** ppBlob);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -104,7 +104,7 @@ FWP_BYTE_BLOB* KrnlHlprFwpByteBlobCreateLocalCopy(_In_ const FWP_BYTE_BLOB* pOri
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmDisplayDataPurgeLocalCopy(_Inout_ FWPM_DISPLAY_DATA* pData);
+VOID KrnlHlprFwpmDisplayDataPurgeLocalCopy(_Inout_ FWPM_DISPLAY_DATA* pData);
_At_(*ppDisplayData, _Pre_ _Notnull_)
_At_(*ppDisplayData, _Post_ _Null_ __drv_freesMem(Pool))
@@ -112,7 +112,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppDisplayData == 0)
-inline VOID KrnlHlprFwpmDisplayDataDestroyLocalCopy(_Inout_ FWPM_DISPLAY_DATA** ppDisplayData);
+VOID KrnlHlprFwpmDisplayDataDestroyLocalCopy(_Inout_ FWPM_DISPLAY_DATA** ppDisplayData);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -134,7 +134,7 @@ FWPM_DISPLAY_DATA* KrnlHlprFwpmDisplayDataCreateLocalCopy(_In_ const FWPM_DISPLA
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmClassifyOptionPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION* pOption);
+VOID KrnlHlprFwpmClassifyOptionPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION* pOption);
_At_(*ppOption, _Pre_ _Notnull_)
_At_(*ppOption, _Post_ _Null_ __drv_freesMem(Pool))
@@ -142,7 +142,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppOption == 0)
-inline VOID KrnlHlprFwpmClassifyOptionDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION** ppOption);
+VOID KrnlHlprFwpmClassifyOptionDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTION** ppOption);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -163,7 +163,7 @@ FWPM_CLASSIFY_OPTION* KrnlHlprFwpmClassifyOptionCreateLocalCopy(_In_ const FWPM_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmClassifyOptionsPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS* pOptions);
+VOID KrnlHlprFwpmClassifyOptionsPurgeLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS* pOptions);
_At_(*ppOptions, _Pre_ _Notnull_)
_At_(*ppOptions, _Post_ _Null_ __drv_freesMem(Pool))
@@ -171,7 +171,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppOptions == 0)
-inline VOID KrnlHlprFwpmClassifyOptionsDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS** ppOptions);
+VOID KrnlHlprFwpmClassifyOptionsDestroyLocalCopy(_Inout_ FWPM_CLASSIFY_OPTIONS** ppOptions);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -194,7 +194,7 @@ FWPM_CLASSIFY_OPTIONS* KrnlHlprFwpmClassifyOptionsCreateLocalCopy(_In_ const FWP
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprIPsecDoSPOptionsPurgeLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS* pOptions);
+VOID KrnlHlprIPsecDoSPOptionsPurgeLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS* pOptions);
_At_(*ppOptions, _Pre_ _Notnull_)
_At_(*ppOptions, _Post_ _Null_ __drv_freesMem(Pool))
@@ -202,7 +202,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppOptions == 0)
-inline VOID KrnlHlprIPsecDoSPOptionsDestroyLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS** ppOptions);
+VOID KrnlHlprIPsecDoSPOptionsDestroyLocalCopy(_Inout_ IPSEC_DOSP_OPTIONS** ppOptions);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -225,7 +225,7 @@ IPSEC_DOSP_OPTIONS* KrnlHlprIPsecDoSPOptionsCreateLocalCopy(_In_ const IPSEC_DOS
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpTokenInformationPurgeLocalCopy(_Inout_ FWP_TOKEN_INFORMATION* pTokenInfo);
+VOID KrnlHlprFwpTokenInformationPurgeLocalCopy(_Inout_ FWP_TOKEN_INFORMATION* pTokenInfo);
_At_(*ppTokenInfo, _Pre_ _Notnull_)
_At_(*ppTokenInfo, _Post_ _Null_ __drv_freesMem(Pool))
@@ -233,7 +233,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppTokenInfo == 0)
-inline VOID KrnlHlprFwpTokenInformationDestroyLocalCopy(_Inout_ FWP_TOKEN_INFORMATION** ppTokenInfo);
+VOID KrnlHlprFwpTokenInformationDestroyLocalCopy(_Inout_ FWP_TOKEN_INFORMATION** ppTokenInfo);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -270,7 +270,7 @@ FWP_VALUE* KrnlHlprFwpValueGetFromFwpsIncomingValues(_In_ const FWPS_INCOMING_VA
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpValuePurgeLocalCopy(_Inout_ FWP_VALUE* pValue);
+VOID KrnlHlprFwpValuePurgeLocalCopy(_Inout_ FWP_VALUE* pValue);
_At_(*ppValue, _Pre_ _Notnull_)
_At_(*ppValue, _Post_ _Null_ __drv_freesMem(Pool))
@@ -278,7 +278,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppValue == 0)
-inline VOID KrnlHlprFwpValueDestroyLocalCopy(_Inout_ FWP_VALUE** ppValue);
+VOID KrnlHlprFwpValueDestroyLocalCopy(_Inout_ FWP_VALUE** ppValue);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -299,7 +299,7 @@ FWP_VALUE* KrnlHlprFwpValueCreateLocalCopy(_In_ const FWP_VALUE* pOriginalValue)
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpV4AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK* pAddrMask);
+VOID KrnlHlprFwpV4AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK* pAddrMask);
_At_(*ppAddrMask, _Pre_ _Notnull_)
_At_(*ppAddrMask, _Post_ _Null_ __drv_freesMem(Pool))
@@ -307,7 +307,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppAddrMask == 0)
-inline VOID KrnlHlprFwpV4AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK** ppAddrMask);
+VOID KrnlHlprFwpV4AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V4_ADDR_AND_MASK** ppAddrMask);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -328,7 +328,7 @@ FWP_V4_ADDR_AND_MASK* KrnlHlprFwpV4AddrAndMaskCreateLocalCopy(_In_ const FWP_V4_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpV6AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK* pAddrMask);
+VOID KrnlHlprFwpV6AddrAndMaskPurgeLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK* pAddrMask);
_At_(*ppAddrMask, _Pre_ _Notnull_)
_At_(*ppAddrMask, _Post_ _Null_ __drv_freesMem(Pool))
@@ -336,7 +336,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppAddrMask == 0)
-inline VOID KrnlHlprFwpV6AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK** ppAddrMask);
+VOID KrnlHlprFwpV6AddrAndMaskDestroyLocalCopy(_Inout_ FWP_V6_ADDR_AND_MASK** ppAddrMask);
__drv_allocatesMem(Pool)
_IRQL_requires_min_(PASSIVE_LEVEL)
@@ -359,7 +359,7 @@ FWP_V6_ADDR_AND_MASK* KrnlHlprFwpV6AddrAndMaskCreateLocalCopy(_In_ const FWP_V6_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpRangePurgeLocalCopy(_Inout_ FWP_RANGE* pRange);
+VOID KrnlHlprFwpRangePurgeLocalCopy(_Inout_ FWP_RANGE* pRange);
_At_(*ppRange, _Pre_ _Notnull_)
_At_(*ppRange, _Post_ _Null_ __drv_freesMem(Pool))
@@ -367,7 +367,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppRange == 0)
-inline VOID KrnlHlprFwpRangeDestroyLocalCopy(_Inout_ FWP_RANGE** ppRange);
+VOID KrnlHlprFwpRangeDestroyLocalCopy(_Inout_ FWP_RANGE** ppRange);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -388,7 +388,7 @@ FWP_RANGE* KrnlHlprFwpRangeCreateLocalCopy(_In_ const FWP_RANGE* pOriginalRange)
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpConditionValuePurgeLocalCopy(_Inout_ FWP_CONDITION_VALUE* pValue);
+VOID KrnlHlprFwpConditionValuePurgeLocalCopy(_Inout_ FWP_CONDITION_VALUE* pValue);
_At_(*ppValue, _Pre_ _Notnull_)
_At_(*ppValue, _Post_ _Null_ __drv_freesMem(Pool))
@@ -396,7 +396,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppValue == 0)
-inline VOID KrnlHlprFwpConditionValueDestroyLocalCopy(_Inout_ FWP_CONDITION_VALUE** ppValue);
+VOID KrnlHlprFwpConditionValueDestroyLocalCopy(_Inout_ FWP_CONDITION_VALUE** ppValue);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -424,7 +424,7 @@ BOOLEAN KrnlHlprFwpsIncomingValueConditionFlagsAreSet(_In_ const FWPS_INCOMING_V
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsIncomingValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_VALUES* pOriginalValues);
+VOID KrnlHlprFwpsIncomingValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_VALUES* pOriginalValues);
_At_(*ppValues, _Pre_ _Notnull_)
_At_(*ppValues, _Post_ _Null_ __drv_freesMem(Pool))
@@ -432,7 +432,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppValues == 0)
-inline VOID KrnlHlprFwpsIncomingValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_VALUES** ppValues);
+VOID KrnlHlprFwpsIncomingValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_VALUES** ppValues);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -453,7 +453,7 @@ FWPS_INCOMING_VALUES* KrnlHlprFwpsIncomingValuesCreateLocalCopy(_In_ const FWPS_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsIncomingMetadataValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES* pMetadata);
+VOID KrnlHlprFwpsIncomingMetadataValuesPurgeLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES* pMetadata);
_At_(*ppMetadata, _Pre_ _Notnull_)
_At_(*ppMetadata, _Post_ _Null_ __drv_freesMem(Pool))
@@ -461,7 +461,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppMetadata == 0)
-inline VOID KrnlHlprFwpsIncomingMetadataValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES** ppMetadata);
+VOID KrnlHlprFwpsIncomingMetadataValuesDestroyLocalCopy(_Inout_ FWPS_INCOMING_METADATA_VALUES** ppMetadata);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -483,7 +483,7 @@ FWPS_INCOMING_METADATA_VALUES* KrnlHlprFwpsIncomingMetadataValuesCreateLocalCopy
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsClassifyOutPurgeLocalCopy(_Inout_ FWPS_CLASSIFY_OUT* pOriginalClassifyOut);
+VOID KrnlHlprFwpsClassifyOutPurgeLocalCopy(_Inout_ FWPS_CLASSIFY_OUT* pOriginalClassifyOut);
_At_(*ppClassifyOut, _Pre_ _Notnull_)
_At_(*ppClassifyOut, _Post_ _Null_ __drv_freesMem(Pool))
@@ -496,7 +496,7 @@ VOID KrnlHlprFwpsClassifyOutDestroyLocalCopy(_Inout_ FWPS_CLASSIFY_OUT** ppClass
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsIncomingValuesPopulateLocalCopy(_In_ const FWPS_CLASSIFY_OUT* pOriginalClassifyOut,
+VOID KrnlHlprFwpsIncomingValuesPopulateLocalCopy(_In_ const FWPS_CLASSIFY_OUT* pOriginalClassifyOut,
_Inout_ FWPS_CLASSIFY_OUT* pClassifyOut);
__drv_allocatesMem(Pool)
@@ -511,7 +511,7 @@ FWPS_CLASSIFY_OUT* KrnlHlprFwpsClassifyOutCreateLocalCopy(_In_ const FWPS_CLASSI
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsStreamDataPurgeLocalCopy(_Inout_ FWPS_STREAM_DATA* pStreamData);
+VOID KrnlHlprFwpsStreamDataPurgeLocalCopy(_Inout_ FWPS_STREAM_DATA* pStreamData);
_At_(*ppStreamData, _Pre_ _Notnull_)
_At_(*ppStreamData, _Post_ _Null_ __drv_freesMem(Pool))
@@ -519,7 +519,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppStreamData == 0)
-inline VOID KrnlHlprFwpsStreamDataDestroyLocalCopy(_Inout_ FWPS_STREAM_DATA** ppStreamData);
+VOID KrnlHlprFwpsStreamDataDestroyLocalCopy(_Inout_ FWPS_STREAM_DATA** ppStreamData);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -540,7 +540,7 @@ FWPS_STREAM_DATA* KrnlHlprFwpsStreamDataCreateLocalCopy(_In_ const FWPS_STREAM_D
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsStreamCalloutIOPacketPurgeLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET* pIOPacket);
+ VOID KrnlHlprFwpsStreamCalloutIOPacketPurgeLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET* pIOPacket);
_At_(*ppIOPacket, _Pre_ _Notnull_)
_At_(*ppIOPacket, _Post_ _Null_ __drv_freesMem(Pool))
@@ -548,7 +548,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppIOPacket == 0)
-inline VOID KrnlHlprFwpsStreamCalloutIOPacketDestroyLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET** ppIOPacket);
+VOID KrnlHlprFwpsStreamCalloutIOPacketDestroyLocalCopy(_Inout_ FWPS_STREAM_CALLOUT_IO_PACKET** ppIOPacket);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
@@ -569,7 +569,7 @@ FWPS_STREAM_CALLOUT_IO_PACKET* KrnlHlprFwpsStreamCalloutIOPacketCreateLocalCopy(
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpmProviderContextPurgeLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT* pContext);
+VOID KrnlHlprFwpmProviderContextPurgeLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT* pContext);
_At_(*ppContext, _Pre_ _Notnull_)
_At_(*ppContext, _Post_ _Null_ __drv_freesMem(Pool))
@@ -577,7 +577,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppContext == 0)
-inline VOID KrnlHlprFwpmProviderContextDestroyLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT** ppContext);
+VOID KrnlHlprFwpmProviderContextDestroyLocalCopy(_Inout_ FWPM_PROVIDER_CONTEXT** ppContext);
__drv_allocatesMem(Pool)
_IRQL_requires_min_(PASSIVE_LEVEL)
@@ -599,7 +599,7 @@ FWPM_PROVIDER_CONTEXT* KrnlHlprFwpmProviderContextCreateLocalCopy(_In_ const FWP
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsFilterConditionPurgeLocalCopy(_Inout_ FWPS_FILTER_CONDITION* pCondition);
+VOID KrnlHlprFwpsFilterConditionPurgeLocalCopy(_Inout_ FWPS_FILTER_CONDITION* pCondition);
_At_(*ppConditions, _Pre_ _Notnull_)
_At_(*ppConditions, _Post_ _Null_ __drv_freesMem(Pool))
@@ -607,7 +607,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppConditions == 0)
-inline VOID KrnlHlprFwpsFilterConditionDestroyLocalCopy(_Inout_ FWPS_FILTER_CONDITION** ppConditions,
+VOID KrnlHlprFwpsFilterConditionDestroyLocalCopy(_Inout_ FWPS_FILTER_CONDITION** ppConditions,
_In_ UINT32 numConditions = 1);
_IRQL_requires_min_(PASSIVE_LEVEL)
@@ -630,7 +630,7 @@ FWPS_FILTER_CONDITION* KrnlHlprFwpsFilterConditionCreateLocalCopy(_In_reads_(num
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprFwpsFilterPurgeLocalCopy(_Inout_ FWPS_FILTER* pFilter);
+VOID KrnlHlprFwpsFilterPurgeLocalCopy(_Inout_ FWPS_FILTER* pFilter);
_At_(*ppFilter, _Pre_ _Notnull_)
_At_(*ppFilter, _Post_ _Null_ __drv_freesMem(Pool))
@@ -638,7 +638,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppFilter == 0)
-inline VOID KrnlHlprFwpsFilterDestroyLocalCopy(_Inout_ FWPS_FILTER** ppFilter);
+VOID KrnlHlprFwpsFilterDestroyLocalCopy(_Inout_ FWPS_FILTER** ppFilter);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.cpp
index 663f7c60..64de129d 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.cpp
@@ -71,7 +71,7 @@
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprInjectionDataPurge(_Inout_ INJECTION_DATA* pInjectionData)
+VOID KrnlHlprInjectionDataPurge(_Inout_ INJECTION_DATA* pInjectionData)
{
#if DBG
@@ -118,7 +118,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppInjectionData == 0)
-inline VOID KrnlHlprInjectionDataDestroy(_Inout_ INJECTION_DATA** ppInjectionData)
+VOID KrnlHlprInjectionDataDestroy(_Inout_ INJECTION_DATA** ppInjectionData)
{
#if DBG
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.h b/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.h
index d3d5d795..9967c1e7 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.h
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_InjectionData.h
@@ -49,7 +49,7 @@ typedef struct INJECTION_HANDLE_DATA_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprInjectionDataPurge(_Inout_ INJECTION_DATA* pInjectionData);
+VOID KrnlHlprInjectionDataPurge(_Inout_ INJECTION_DATA* pInjectionData);
_At_(*ppInjectionData, _Pre_ _Notnull_)
_At_(*ppInjectionData, _Post_ _Null_ __drv_freesMem(Pool))
@@ -57,7 +57,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppInjectionData == 0)
-inline VOID KrnlHlprInjectionDataDestroy(_Inout_ INJECTION_DATA** ppInjectionData);
+VOID KrnlHlprInjectionDataDestroy(_Inout_ INJECTION_DATA** ppInjectionData);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_PendData.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_PendData.cpp
index 1ad4338f..bc2528a0 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_PendData.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_PendData.cpp
@@ -142,7 +142,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppPendData == 0)
-inline VOID KrnlHlprPendDataDestroy(_Inout_ PEND_DATA** ppPendData)
+VOID KrnlHlprPendDataDestroy(_Inout_ PEND_DATA** ppPendData)
{
#if DBG
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_PendData.h b/network/trans/WFPSampler/syslib/HelperFunctions_PendData.h
index 17174e32..12e06b41 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_PendData.h
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_PendData.h
@@ -51,7 +51,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppPendData == 0)
-inline VOID KrnlHlprPendDataDestroy(_Inout_ PEND_DATA** ppPendData);
+VOID KrnlHlprPendDataDestroy(_Inout_ PEND_DATA** ppPendData);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
index 23f4a6df..3a5f7696 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
@@ -68,7 +68,7 @@
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPurge(_Inout_ WORKITEM_DATA* pWorkItemData)
+VOID KrnlHlprWorkItemDataPurge(_Inout_ WORKITEM_DATA* pWorkItemData)
{
#if DBG
@@ -112,7 +112,7 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppWorkItemData == 0)
-inline VOID KrnlHlprWorkItemDataDestroy(_Inout_ WORKITEM_DATA** ppWorkItemData)
+VOID KrnlHlprWorkItemDataDestroy(_Inout_ WORKITEM_DATA** ppWorkItemData)
{
#if DBG
@@ -156,7 +156,7 @@ inline VOID KrnlHlprWorkItemDataDestroy(_Inout_ WORKITEM_DATA** ppWorkItemData)
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_opt_ INJECTION_DATA* pInjectionData, /* 0 */
_In_opt_ PIO_WORKITEM pIOWorkItem, /* 0 */
@@ -202,7 +202,7 @@ inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ PEND_DATA* pPendData,
_In_opt_ PIO_WORKITEM pIOWorkItem, /* 0 */
@@ -249,7 +249,7 @@ inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ REDIRECT_DATA* pRedirectData,
_In_opt_ PIO_WORKITEM pIOWorkItem, /* 0 */
@@ -296,7 +296,7 @@ inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ NOTIFY_DATA* pNotifyData,
_In_opt_ PIO_WORKITEM pIOWorkItem, /* 0 */
_In_opt_ VOID* pContext) /* 0 */
@@ -340,7 +340,7 @@ inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ PEND_DATA* pPendData,
_In_opt_ PIO_WORKITEM pIOWorkItem, /* 0 */
_In_opt_ VOID* pContext) /* 0 */
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.h b/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.h
index cbbc77bc..4d78844f 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.h
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.h
@@ -44,7 +44,7 @@ typedef struct WORKITEM_DATA_
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPurge(_Inout_ WORKITEM_DATA* pWorkItemData);
+ VOID KrnlHlprWorkItemDataPurge(_Inout_ WORKITEM_DATA* pWorkItemData);
_At_(*ppWorkItemData, _Pre_ _Notnull_)
_At_(*ppWorkItemData, _Post_ _Null_ __drv_freesMem(Pool))
@@ -52,12 +52,12 @@ _IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
_Success_(*ppWorkItemData == 0)
-inline VOID KrnlHlprWorkItemDataDestroy(_Inout_ WORKITEM_DATA** ppWorkItemData);
+VOID KrnlHlprWorkItemDataDestroy(_Inout_ WORKITEM_DATA** ppWorkItemData);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+ VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_opt_ INJECTION_DATA* pInjectionData = 0,
_In_opt_ PIO_WORKITEM pIOWorkItem = 0,
@@ -65,7 +65,7 @@ inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+ VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ PEND_DATA* pPendData,
_In_opt_ PIO_WORKITEM pIOWorkItem = 0,
@@ -73,7 +73,7 @@ inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+ VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ CLASSIFY_DATA* pClassifyData,
_In_ REDIRECT_DATA* pRedirectData,
_In_opt_ PIO_WORKITEM pIOWorkItem = 0,
@@ -81,14 +81,14 @@ inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+ VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ NOTIFY_DATA* pNotifyData,
_In_opt_ PIO_WORKITEM pIOWorkItem = 0,
_In_opt_ VOID* pContext = 0);
_IRQL_requires_min_(PASSIVE_LEVEL)
_IRQL_requires_max_(DISPATCH_LEVEL)
_IRQL_requires_same_
-inline VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
+ VOID KrnlHlprWorkItemDataPopulate(_Inout_ WORKITEM_DATA* pWorkItemData,
_In_ PEND_DATA* pPendData,
_In_opt_ PIO_WORKITEM pIOWorkItem = 0,
_In_opt_ VOID* pContext = 0);
diff --git a/network/trans/WFPSampler/syslib/WFPSampler.vcxproj b/network/trans/WFPSampler/syslib/WFPSampler.vcxproj
index dd6c1a42..cc19afc6 100644
--- a/network/trans/WFPSampler/syslib/WFPSampler.vcxproj
+++ b/network/trans/WFPSampler/syslib/WFPSampler.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,44 +22,48 @@
<ProjectGuid>{6F3E7DC1-C828-463C-BC9E-290B56D0F58C}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
- <KMDF_VERSION_MINOR>11</KMDF_VERSION_MINOR>
+ <KMDF_VERSION_MINOR>15</KMDF_VERSION_MINOR>
<SupportsPackaging>false</SupportsPackaging>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{702C5BD2-236E-422B-83F1-B830DC4B94F0}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
@@ -68,13 +72,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -92,13 +96,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>WFPSampler</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -119,13 +123,12 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;$(DDK_INC_PATH);$(IFSKIT_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(SDK_LIB_PATH)\UUID.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -143,13 +146,12 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;$(DDK_INC_PATH);$(IFSKIT_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(SDK_LIB_PATH)\UUID.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -167,13 +169,12 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;$(DDK_INC_PATH);$(IFSKIT_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(SDK_LIB_PATH)\UUID.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -191,7 +192,6 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc;$(DDK_INC_PATH);$(IFSKIT_INC_PATH)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\NTOSKrnl.lib;$(DDK_LIB_PATH)\FwpKClnt.lib;$(DDK_LIB_PATH)\NetIO.lib;$(DDK_LIB_PATH)\NDIS.lib;$(SDK_LIB_PATH)\UUID.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
diff --git a/network/trans/ddproxy/ddproxy.sln b/network/trans/ddproxy/ddproxy.sln
index f5f56da8..1e9b096c 100644
--- a/network/trans/ddproxy/ddproxy.sln
+++ b/network/trans/ddproxy/ddproxy.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -7,16 +7,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ddproxy", "sys\ddproxy.vcxp
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Debug|Win32.ActiveCfg = Debug|Win32
- {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Debug|Win32.Build.0 = Debug|Win32
- {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Release|Win32.ActiveCfg = Release|Win32
- {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Release|Win32.Build.0 = Release|Win32
+ {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Debug|ARM64.Build.0 = Debug|ARM64
+ {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Release|ARM64.ActiveCfg = Release|ARM64
+ {FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Release|ARM64.Build.0 = Release|ARM64
{FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Debug|x64.ActiveCfg = Debug|x64
{FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Debug|x64.Build.0 = Debug|x64
{FEABD37B-18D6-4A7B-9AD2-F5A65A904A57}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/trans/ddproxy/sys/DD_proxy.c b/network/trans/ddproxy/sys/DD_proxy.c
index aa41f060..089c273c 100644
--- a/network/trans/ddproxy/sys/DD_proxy.c
+++ b/network/trans/ddproxy/sys/DD_proxy.c
@@ -103,8 +103,8 @@ DDProxyFlowEstablishedClassify(
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)
UNREFERENCED_PARAMETER(flowContext);
- flowContextLocal = ExAllocatePoolZero(
- NonPagedPool,
+ flowContextLocal = ExAllocatePool2(
+ POOL_FLAG_NON_PAGED,
sizeof(DD_PROXY_FLOW_CONTEXT),
DD_PROXY_FLOW_CONTEXT_POOL_TAG
);
@@ -333,8 +333,8 @@ DDProxyClassify(
goto Exit;
}
- packet = ExAllocatePoolZero(
- NonPagedPool,
+ packet = ExAllocatePool2(
+ POOL_FLAG_NON_PAGED,
sizeof(DD_PROXY_PENDED_PACKET),
DD_PROXY_PENDED_PACKET_POOL_TAG
);
@@ -410,8 +410,8 @@ DDProxyClassify(
{
NT_ASSERT(inMetaValues->controlDataLength > 0);
- packet->controlData = ExAllocatePoolZero(
- NonPagedPool,
+ packet->controlData = ExAllocatePool2(
+ POOL_FLAG_NON_PAGED,
inMetaValues->controlDataLength,
DD_PROXY_CONTROL_DATA_POOL_TAG
);
diff --git a/network/trans/ddproxy/sys/ddproxy.inf b/network/trans/ddproxy/sys/ddproxy.inf
index 3792b003..be09889a 100644
--- a/network/trans/ddproxy/sys/ddproxy.inf
+++ b/network/trans/ddproxy/sys/ddproxy.inf
@@ -21,23 +21,15 @@
DDProxy.sys = 1,,
[DestinationDirs]
- DefaultDestDir = 12 ; %WinDir%\System32\Drivers
- DDProxy.DriverFiles = 12 ; %WinDir%\System32\Drivers
+ DDProxy.DriverFiles = 13 ; %WinDir%\System32\Drivers
-[DefaultInstall]
+[DefaultInstall.NT$ARCH$]
OptionDesc = %DDProxyServiceDesc%
CopyFiles = DDProxy.DriverFiles
-[DefaultInstall.Services]
+[DefaultInstall.NT$ARCH$.Services]
AddService = %DDProxyServiceName%,,DDProxy.Service
-[DefaultUninstall]
- DelFiles = DDProxy.DriverFiles
-
-[DefaultUninstall.Services]
- DelService = %DDProxyServiceName%,0x200 ; SPSVCINST_STOPSERVICE
- DelReg = DDProxy.DelRegistry
-
[DDProxy.DriverFiles]
DDProxy.sys,,,0x00000040 ; COPYFLG_OVERWRITE_OLDER_ONLY
@@ -47,16 +39,13 @@
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
- ServiceBinary = %12%\DDProxy.sys ; %WinDir%\System32\Drivers\DDProxy.sys
+ ServiceBinary = %13%\DDProxy.sys ; %WinDir%\System32\Drivers\DDProxy.sys
AddReg = DDProxy.AddRegistry
[DDProxy.AddRegistry]
HKR,"Parameters","DestinationAddressToIntercept",0x00000000,"10.0.0.1" ; FLG_ADDREG_TYPE_SZ
HKR,"Parameters","NewDestinationAddress",0x00000000,"10.0.0.2" ; FLG_ADDREG_TYPE_SZ
-[DDProxy.DelRegistry]
- HKR,"Parameters",,,
-
[Strings]
ProviderString = "TODO-Set-Provider"
DDProxyDisk = "DatagramData Proxy Installation Disk"
diff --git a/network/trans/ddproxy/sys/ddproxy.vcxproj b/network/trans/ddproxy/sys/ddproxy.vcxproj
index ae9cface..235c74d1 100644
--- a/network/trans/ddproxy/sys/ddproxy.vcxproj
+++ b/network/trans/ddproxy/sys/ddproxy.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -23,35 +23,35 @@
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{6462DC10-B4DC-441C-8A08-D8E436A4566C}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
@@ -66,26 +66,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>ddproxy</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>ddproxy</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>ddproxy</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>ddproxy</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -104,35 +104,35 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
@@ -148,29 +148,29 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
diff --git a/network/trans/inspect/inspect.sln b/network/trans/inspect/inspect.sln
index 3f3ae438..ab24034f 100644
--- a/network/trans/inspect/inspect.sln
+++ b/network/trans/inspect/inspect.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30114.105
@@ -7,18 +7,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "inspect", "sys\inspect.vcxp
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Debug|Win32.ActiveCfg = Debug|x64
- {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Debug|Win32.Build.0 = Debug|x64
+ {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Debug|ARM64.Build.0 = Debug|ARM64
+ {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Release|ARM64.ActiveCfg = Release|ARM64
+ {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Release|ARM64.Build.0 = Release|ARM64
{5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Debug|x64.ActiveCfg = Debug|x64
{5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Debug|x64.Build.0 = Debug|x64
- {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Release|Win32.ActiveCfg = Release|Win32
- {5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Release|Win32.Build.0 = Release|Win32
{5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Release|x64.ActiveCfg = Release|x64
{5CF7CFC1-02B4-4938-AC5F-47D743D82E8A}.Release|x64.Build.0 = Release|x64
EndGlobalSection
diff --git a/network/trans/inspect/sys/inspect.inf b/network/trans/inspect/sys/inspect.inf
index 9fb9674e..cf7f7e76 100644
--- a/network/trans/inspect/sys/inspect.inf
+++ b/network/trans/inspect/sys/inspect.inf
Binary files differ
diff --git a/network/trans/inspect/sys/inspect.vcxproj b/network/trans/inspect/sys/inspect.vcxproj
index 3b874a1f..bf65fa59 100644
--- a/network/trans/inspect/sys/inspect.vcxproj
+++ b/network/trans/inspect/sys/inspect.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -30,31 +30,31 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -66,13 +66,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -82,13 +82,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>inspect</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>inspect</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>inspect</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>inspect</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -107,35 +107,35 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
@@ -151,29 +151,29 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
diff --git a/network/trans/inspect/sys/utils.c b/network/trans/inspect/sys/utils.c
index f474704f..c1b85ae8 100644
--- a/network/trans/inspect/sys/utils.c
+++ b/network/trans/inspect/sys/utils.c
@@ -291,8 +291,8 @@ AllocateAndInitializePendedPacket(
{
TL_INSPECT_PENDED_PACKET* pendedPacket;
- pendedPacket = ExAllocatePoolZero(
- NonPagedPool,
+ pendedPacket = ExAllocatePool2(
+ POOL_FLAG_NON_PAGED,
sizeof(TL_INSPECT_PENDED_PACKET),
TL_INSPECT_PENDED_PACKET_POOL_TAG
);
@@ -344,8 +344,8 @@ AllocateAndInitializePendedPacket(
{
NT_ASSERT(inMetaValues->controlDataLength > 0);
- pendedPacket->controlData = ExAllocatePoolZero(
- NonPagedPool,
+ pendedPacket->controlData = ExAllocatePool2(
+ POOL_FLAG_NON_PAGED,
inMetaValues->controlDataLength,
TL_INSPECT_CONTROL_DATA_POOL_TAG
);
diff --git a/network/trans/msnmntr/exe/monitor.vcxproj b/network/trans/msnmntr/exe/monitor.vcxproj
index 242045dd..a8b0bc45 100644
--- a/network/trans/msnmntr/exe/monitor.vcxproj
+++ b/network/trans/msnmntr/exe/monitor.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,7 +22,7 @@
<ProjectGuid>{A775BC8D-48D4-4332-B731-6135FDD0C94A}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{2142A4F7-2EDA-43A2-AA9B-237435A8B04E}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -34,23 +34,23 @@
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
+ <UseDebugLibraries>False</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType />
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
@@ -65,26 +65,26 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>monitor</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>monitor</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>monitor</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>monitor</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -99,7 +99,7 @@
<AdditionalOptions>%(AdditionalOptions) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32</PreprocessorDefinitions>
</ClCompile>
@@ -111,7 +111,7 @@
<AdditionalOptions>%(AdditionalOptions) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32</PreprocessorDefinitions>
</ClCompile>
@@ -123,7 +123,7 @@
<AdditionalOptions>%(AdditionalOptions) -N</AdditionalOptions>
</ResourceCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32</PreprocessorDefinitions>
</ClCompile>
@@ -141,19 +141,19 @@
<RuntimeTypeInfo>true</RuntimeTypeInfo>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
</ClCompile>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
@@ -163,15 +163,15 @@
<UseOfAtl>Static</UseOfAtl>
<NTDDI_VERSION>NTDDI_WIN7</NTDDI_VERSION>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<UseOfAtl>Static</UseOfAtl>
<NTDDI_VERSION>NTDDI_WIN7</NTDDI_VERSION>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<UseOfAtl>Static</UseOfAtl>
<NTDDI_VERSION>NTDDI_WIN7</NTDDI_VERSION>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<UseOfAtl>Static</UseOfAtl>
<NTDDI_VERSION>NTDDI_WIN7</NTDDI_VERSION>
</PropertyGroup>
@@ -189,7 +189,7 @@
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SDK_INC_PATH);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
</ResourceCompile>
@@ -203,7 +203,7 @@
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SDK_INC_PATH);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
</ResourceCompile>
@@ -217,7 +217,7 @@
<AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;comctl32.lib;kernel32.lib;netapi32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;ntdll.lib;kernel32.lib;setupapi.lib;rpcrt4.lib;fwpuclnt.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SDK_INC_PATH);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
</ResourceCompile>
diff --git a/network/trans/msnmntr/msnmntr.sln b/network/trans/msnmntr/msnmntr.sln
index 364b4268..169fc9d4 100644
--- a/network/trans/msnmntr/msnmntr.sln
+++ b/network/trans/msnmntr/msnmntr.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -13,24 +13,24 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msnmntr", "sys\msnmntr.vcxp
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Debug|Win32.ActiveCfg = Debug|Win32
- {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Debug|Win32.Build.0 = Debug|Win32
- {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Release|Win32.ActiveCfg = Release|Win32
- {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Release|Win32.Build.0 = Release|Win32
+ {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Debug|ARM64.Build.0 = Debug|ARM64
+ {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Debug|ARM64.Build.0 = Debug|ARM64
+ {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Release|ARM64.ActiveCfg = Release|ARM64
+ {A775BC8D-48D4-4332-B731-6135FDD0C94A}.Release|ARM64.Build.0 = Release|ARM64
+ {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Release|ARM64.ActiveCfg = Release|ARM64
+ {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Release|ARM64.Build.0 = Release|ARM64
{A775BC8D-48D4-4332-B731-6135FDD0C94A}.Debug|x64.ActiveCfg = Debug|x64
{A775BC8D-48D4-4332-B731-6135FDD0C94A}.Debug|x64.Build.0 = Debug|x64
{A775BC8D-48D4-4332-B731-6135FDD0C94A}.Release|x64.ActiveCfg = Release|x64
{A775BC8D-48D4-4332-B731-6135FDD0C94A}.Release|x64.Build.0 = Release|x64
- {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Debug|Win32.ActiveCfg = Debug|Win32
- {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Debug|Win32.Build.0 = Debug|Win32
- {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Release|Win32.ActiveCfg = Release|Win32
- {0334D910-32A8-48D1-945A-A58B9F2FAD22}.Release|Win32.Build.0 = Release|Win32
{0334D910-32A8-48D1-945A-A58B9F2FAD22}.Debug|x64.ActiveCfg = Debug|x64
{0334D910-32A8-48D1-945A-A58B9F2FAD22}.Debug|x64.Build.0 = Debug|x64
{0334D910-32A8-48D1-945A-A58B9F2FAD22}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/trans/msnmntr/sys/msnmntr.inf b/network/trans/msnmntr/sys/msnmntr.inf
index 17ebcb7c..38589761 100644
--- a/network/trans/msnmntr/sys/msnmntr.inf
+++ b/network/trans/msnmntr/sys/msnmntr.inf
Binary files differ
diff --git a/network/trans/msnmntr/sys/msnmntr.vcxproj b/network/trans/msnmntr/sys/msnmntr.vcxproj
index 19091c05..17a5433a 100644
--- a/network/trans/msnmntr/sys/msnmntr.vcxproj
+++ b/network/trans/msnmntr/sys/msnmntr.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -23,38 +23,38 @@
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{E5A95292-DFAE-41E4-A0B2-62D97EC6575F}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -66,13 +66,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -84,13 +84,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>msnmntr</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>msnmntr</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>msnmntr</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>msnmntr</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -111,37 +111,37 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -159,31 +159,31 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS630;NDIS_SUPPORT_NDIS630POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
diff --git a/network/trans/stmedit/stmedit.sln b/network/trans/stmedit/stmedit.sln
index 8ae2d839..38117f6f 100644
--- a/network/trans/stmedit/stmedit.sln
+++ b/network/trans/stmedit/stmedit.sln
@@ -1,29 +1,32 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.24720.0
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34511.84
MinimumVisualStudioVersion = 12.0
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stmedit", "sys\stmedit.vcxproj", "{9CE912A5-6210-4EF8-B22D-611D13254D4C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|Win32.ActiveCfg = Debug|Win32
- {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|Win32.Build.0 = Debug|Win32
- {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|x64.ActiveCfg = Release|Win32
- {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|x64.Build.0 = Release|Win32
- {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|x64.Deploy.0 = Release|Win32
- {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Release|Win32.ActiveCfg = Release|Win32
- {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Release|Win32.Build.0 = Release|Win32
+ {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|ARM64.Build.0 = Debug|ARM64
+ {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Release|ARM64.ActiveCfg = Release|ARM64
+ {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Release|ARM64.Build.0 = Release|ARM64
+ {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|x64.ActiveCfg = Debug|x64
+ {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|x64.Build.0 = Debug|x64
+ {9CE912A5-6210-4EF8-B22D-611D13254D4C}.Debug|x64.Deploy.0 = Debug|x64
{9CE912A5-6210-4EF8-B22D-611D13254D4C}.Release|x64.ActiveCfg = Release|x64
{9CE912A5-6210-4EF8-B22D-611D13254D4C}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {6157DAF8-6877-4D1D-8FEE-19CF8DA146F0}
+ EndGlobalSection
EndGlobal
diff --git a/network/trans/stmedit/sys/InlineEdit.c b/network/trans/stmedit/sys/InlineEdit.c
index 74b5bd25..2586072e 100644
--- a/network/trans/stmedit/sys/InlineEdit.c
+++ b/network/trans/stmedit/sys/InlineEdit.c
@@ -55,7 +55,7 @@ InlineEditFlushData(
if (DataLength == 0)
break;
- Buffer = ExAllocatePoolZero(NonPagedPool, DataLength, STMEDIT_TAG_MDL_DATA);
+ Buffer = ExAllocatePool2(POOL_FLAG_NON_PAGED, DataLength, STMEDIT_TAG_MDL_DATA);
if (Buffer == NULL)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
@@ -316,8 +316,8 @@ InlineEditClassify(
// If a FIN/RST has been classified, flush any data and permit the FIN/RST.
//
if ((!FlowContext->bFlowActive) ||
- (streamData->flags & FWPS_STREAM_FLAG_SEND_DISCONNECT) ||
- (streamData->flags & FWPS_STREAM_FLAG_RECEIVE_DISCONNECT))
+ (streamData->flags & FWPS_STREAM_FLAG_SEND_DISCONNECT) || // must also handle FWPS_STREAM_FLAG_SEND_ABORT
+ (streamData->flags & FWPS_STREAM_FLAG_RECEIVE_DISCONNECT)) // must also handle FWPS_STREAM_FLAG_RECEIVE_ABORT
{
DoTraceLevelMessage(TRACE_LEVEL_INFORMATION, CO_GENERAL, "FlowCtx %p, FIN/RST classified (Flow Active %d)!", FlowContext, FlowContext->bFlowActive);
diff --git a/network/trans/stmedit/sys/LwQueue.c b/network/trans/stmedit/sys/LwQueue.c
index 2d46585d..27154d70 100644
--- a/network/trans/stmedit/sys/LwQueue.c
+++ b/network/trans/stmedit/sys/LwQueue.c
@@ -37,8 +37,8 @@ LwInitializeQueue(
KeInitializeSpinLock(&Queue->Lock);
Queue->WorkItem =
- ExAllocatePoolZero(
- NonPagedPool, IoSizeofWorkItem(), STMEDIT_TAG_LQWI);
+ ExAllocatePool2(
+ POOL_FLAG_NON_PAGED, IoSizeofWorkItem(), STMEDIT_TAG_LQWI);
if (Queue->WorkItem == NULL)
{
diff --git a/network/trans/stmedit/sys/OobEdit.c b/network/trans/stmedit/sys/OobEdit.c
index 0b24e1bc..285dff9f 100644
--- a/network/trans/stmedit/sys/OobEdit.c
+++ b/network/trans/stmedit/sys/OobEdit.c
@@ -379,8 +379,8 @@ StreamOobReinjectData(
do
{
- DataCopy = ExAllocatePoolZero(
- NonPagedPool,
+ DataCopy = ExAllocatePool2(
+ POOL_FLAG_NON_PAGED,
Length,
STMEDIT_TAG_MDL_DATA
);
diff --git a/network/trans/stmedit/sys/StreamEdit.c b/network/trans/stmedit/sys/StreamEdit.c
index 512fb159..e4f91c61 100644
--- a/network/trans/stmedit/sys/StreamEdit.c
+++ b/network/trans/stmedit/sys/StreamEdit.c
@@ -464,9 +464,7 @@ StreamEditFlowEstablishedClassify(
do
{
- StreamFlowContext = ExAllocatePoolZero(NonPagedPoolNx,
- sizeof(STREAM_FLOW_CONTEXT),
- STMEDIT_TAG_FLOWCTX);
+ StreamFlowContext = ExAllocatePool2(POOL_FLAG_NON_PAGED, sizeof(STREAM_FLOW_CONTEXT), STMEDIT_TAG_FLOWCTX);
if (StreamFlowContext == NULL)
{
@@ -1560,8 +1558,8 @@ _In_ SIZE_T BytesToCopy
{
size_t NewBufferSize = BytesToCopy + ExistingDataLength;
- PVOID NewBuffer = ExAllocatePoolZero(
- NonPagedPool,
+ PVOID NewBuffer = ExAllocatePool2(
+ POOL_FLAG_NON_PAGED,
(NewBufferSize + (NewBufferSize >> 1) ), // 1.5 times the needed size.
STMEDIT_TAG_FLAT_BUFFER);
@@ -1570,7 +1568,7 @@ _In_ SIZE_T BytesToCopy
// We are not able to allocate a much bigger buffer ... lets try an exact fit.
//
- NewBuffer = ExAllocatePoolZero(NonPagedPool, NewBufferSize, STMEDIT_TAG_FLAT_BUFFER);
+ NewBuffer = ExAllocatePool2(POOL_FLAG_NON_PAGED, NewBufferSize, STMEDIT_TAG_FLAT_BUFFER);
}
if (NewBuffer != NULL)
diff --git a/network/trans/stmedit/sys/stmedit.inf b/network/trans/stmedit/sys/stmedit.inf
index 39cd2109..3615ce6b 100644
--- a/network/trans/stmedit/sys/stmedit.inf
+++ b/network/trans/stmedit/sys/stmedit.inf
@@ -11,7 +11,7 @@
ClassGuid = {57465043-616C-6C6F-7574-5F636C617373}
Provider = %Contoso%
CatalogFile = StmEdit.cat
- DriverVer = 01/01/2015,1.0.09.15
+ DriverVer = 01/26/2024,1.0.09.24
PnpLockdown = 1
[SourceDisksNames]
@@ -21,48 +21,15 @@
StmEdit.sys = 1,,
[DestinationDirs]
- DefaultDestDir = 12 ; %WinDir%\System32\Drivers
- StmEdit.DriverFiles = 12 ; %WinDir%\System32\Drivers
+ StmEdit.DriverFiles = 13 ; %WinDir%\System32\Drivers
-[DefaultInstall.NT$ARCH$]
+[DefaultInstall.NTAMD64]
OptionDesc = %StmEditServiceDesc%
CopyFiles = StmEdit.DriverFiles
-
-[DefaultInstall.NT$ARCH$.Services]
- AddService = %StmEditServiceName%,,StmEdit.Service
-
-[DefaultUninstall.NT$ARCH$]
- LegacyUninstall=1
- DelFiles = StmEdit.DriverFiles
-
-[DefaultUninstall.NT$ARCH$.Services]
- LegacyUninstall=1
- DelService = %StmEditServiceName%,0x200 ; SPSVCINST_STOPSERVICE
- DelReg = StmEdit.DelRegistry
-
[StmEdit.DriverFiles]
StmEdit.sys,,,0x00000040 ; COPYFLG_OVERWRITE_OLDER_ONLY
-[StmEdit.Service]
- DisplayName = %StmEditServiceName%
- Description = %StmEditServiceDesc%
- ServiceType = 1 ; SERVICE_KERNEL_DRIVER
- StartType = 3 ; SERVICE_DEMAND_START
- ErrorControl = 1 ; SERVICE_ERROR_NORMAL
- ServiceBinary = %12%\StmEdit.sys ; %WinDir%\System32\Drivers\StmEdit.sys
- AddReg = StmEdit.AddRegistry
-
-[StmEdit.AddRegistry]
- HKR,"Parameters","MultipleCallouts", 0x00010001, 1 ; FLG_ADDREG_TYPE_DWORD
- HKR,"Parameters","StringToFind", 0x00000000, "rainy" ; FLG_ADDREG_TYPE_SZ
- HKR,"Parameters","InspectionRemotePort", 0x00010001, 0 ; FLG_ADDREG_TYPE_DWORD
- HKR,"Parameters","InspectionLocalPort", 0x00010001, 8888 ; FLG_ADDREG_TYPE_DWORD
-
-
-[StmEdit.DelRegistry]
- HKR,"Parameters",,,
-
[Strings]
Contoso = "Contoso Ltd."
StmEditDisk = "Stream Edit Installation Disk"
diff --git a/network/trans/stmedit/sys/stmedit.vcxproj b/network/trans/stmedit/sys/stmedit.vcxproj
index cdfcc9e7..acd6c422 100644
--- a/network/trans/stmedit/sys/stmedit.vcxproj
+++ b/network/trans/stmedit/sys/stmedit.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,43 +22,46 @@
<ProjectGuid>{9CE912A5-6210-4EF8-B22D-611D13254D4C}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
+ <KMDF_VERSION_MINOR>15</KMDF_VERSION_MINOR>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{8FEDC4BC-EFA4-4BF4-91B6-E33FA555EB15}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
- <SupportsPackaging>false</SupportsPackaging>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
+ <SupportsPackaging>false</SupportsPackaging>
+ <Driver_SpectreMitigation>Spectre</Driver_SpectreMitigation>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
+ <SupportsPackaging>false</SupportsPackaging>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
@@ -67,62 +70,63 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>stmedit</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>stmedit</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>stmedit</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>stmedit</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS60;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS630;POOL_NX_OPTIN</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<WppEnabled>true</WppEnabled>
<WppTraceFunction>DoTraceLevelMessage(LEVEL,FLAGS,MSG,...)</WppTraceFunction>
<WppModuleName>StmEdit</WppModuleName>
<WppScanConfigurationData>Trace.h</WppScanConfigurationData>
+ <Optimization>MaxSpeed</Optimization>
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS60;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS630;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS630;POOL_NX_OPTIN</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<WppEnabled>true</WppEnabled>
@@ -132,49 +136,49 @@
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS630;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS60;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS630;NDIS60;POOL_NX_OPTIN</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
- <WppTraceFunction>DoTraceLevelMessage(LEVEL,FLAGS,MSG,...)</WppTraceFunction>
<WppEnabled>true</WppEnabled>
+ <WppTraceFunction>DoTraceLevelMessage(LEVEL,FLAGS,MSG,...)</WppTraceFunction>
<WppModuleName>StmEdit</WppModuleName>
<WppScanConfigurationData>Trace.h</WppScanConfigurationData>
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS60;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ResourceCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS630;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</ResourceCompile>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE;NDIS630;POOL_NX_OPTIN</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<WppEnabled>true</WppEnabled>
@@ -184,10 +188,10 @@
</ClCompile>
<Midl>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);BINARY_COMPATIBLE=0;NT;UNICODE;_UNICODE;NDIS60;NDIS_SUPPORT_NDIS6;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions)NT;UNICODE;_UNICODE;NDIS630;POOL_NX_OPTIN_AUTO</PreprocessorDefinitions>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)\wdmsec.lib;$(DDK_LIB_PATH)\fwpkclnt.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
diff --git a/network/trans/stmedit/sys/stmedit.vcxproj.Filters b/network/trans/stmedit/sys/stmedit.vcxproj.Filters
index 662fe098..8286c235 100644
--- a/network/trans/stmedit/sys/stmedit.vcxproj.Filters
+++ b/network/trans/stmedit/sys/stmedit.vcxproj.Filters
@@ -33,16 +33,18 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="LwQueue.h">
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="StreamEdit.h" />
- <ClInclude Include="Trace.h" />
- <ClInclude Include="LwQueue.h">
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="StreamEdit.h" />
- <ClInclude Include="Trace.h" />
<ClInclude Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/network/wlan/WDI/COMMON/common.vcxproj b/network/wlan/WDI/COMMON/common.vcxproj
index 339f1c94..2842595d 100644
--- a/network/wlan/WDI/COMMON/common.vcxproj
+++ b/network/wlan/WDI/COMMON/common.vcxproj
@@ -1,28 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Win10 Debug|Arm">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|Win32">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|x64">
- <Configuration>Win10 Debug</Configuration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Arm">
- <Configuration>Win10 Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Win32">
- <Configuration>Win10 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|x64">
- <Configuration>Win10 Release</Configuration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
@@ -31,14 +15,13 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<DriverType>KMDF</DriverType>
<TARGETNAME>$(ProjectName)</TARGETNAME>
- <Configuration>Win10 Debug</Configuration>
+ <Configuration>Debug</Configuration>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="PropertySheets">
<ConversionToolVersion>1.0</ConversionToolVersion>
<BUILD_ALT_DIR>$(Configuration.Replace(' ',''))</BUILD_ALT_DIR>
- <IntDir Condition="'$(Platform)'!='Win32'">$(BUILD_ALT_DIR)\$(Platform)\</IntDir>
- <IntDir Condition="'$(Platform)'=='Win32'">$(BUILD_ALT_DIR)\</IntDir>
+ <IntDir>$(BUILD_ALT_DIR)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)COMMON\$(Configuration)\$(Platform)\</OutDir>
</PropertyGroup>
<ImportGroup Label="PreConfiguration">
@@ -47,83 +30,21 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{956B060D-1055-4584-9CF4-9FE14C428545}</ProjectGuid>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <SupportsPackaging>
- </SupportsPackaging>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'" Label="Configuration">
- <TargetVersion>
- </TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
</PropertyGroup>
<PropertyGroup>
<DebuggerFlavor Condition="'$(IsKernelModeToolset)'=='true'">DbgengKernelDebugger</DebuggerFlavor>
<DebuggerFlavor Condition="'$(IsUserModeToolset)'=='true'">DbgengRemoteDebugger</DebuggerFlavor>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ExecutablePath>
- </ExecutablePath>
- <ReferencePath>$(VC_ReferencesPath_x86);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x86);</ExcludePath>
- <ExtensionsToDeleteOnClean>*.cdf;*.cache;*.obj;*.ilk;*.ipdb;*.iobj;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.xml;*.metagen;*.bi</ExtensionsToDeleteOnClean>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencePath_x86);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x86);</ExcludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencePath_Arm);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_Arm);$(WindowsSDK_LibraryPath_Arm);$(NETFXKitsDir)Lib\um\arm</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_arm);</ExcludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencePath_Arm);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_Arm);$(WindowsSDK_LibraryPath_Arm);$(NETFXKitsDir)Lib\um\arm</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_arm);</ExcludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
@@ -131,7 +52,7 @@
<SourcePath>$(VC_SourcePath);</SourcePath>
<ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x64);</ExcludePath>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
@@ -139,208 +60,7 @@
<SourcePath>$(VC_SourcePath);</SourcePath>
<ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x64);</ExcludePath>
</PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- <ClCompile>
- <PreprocessorDefinitions>_X86_;DBG;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;</AdditionalIncludeDirectories>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <MinimalRebuild>true</MinimalRebuild>
- <ExceptionHandling>
- </ExceptionHandling>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <Lib>
- <AdditionalDependencies>
- </AdditionalDependencies>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <ClCompile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_X86_;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <WppEnabled>true</WppEnabled>
- <DebugInformationFormat>None</DebugInformationFormat>
- </ClCompile>
- <Lib>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- </Lib>
- <Lib>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <ClCompile>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;</AdditionalIncludeDirectories>
- <DebugInformationFormat>None</DebugInformationFormat>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <PreprocessorDefinitions>_ARM_;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <Lib>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <ClCompile>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;</AdditionalIncludeDirectories>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <ClCompile>
- <DebugInformationFormat>None</DebugInformationFormat>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <ClCompile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <PreprocessorDefinitions>_ARM_;DBG;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <Lib>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;</AdditionalIncludeDirectories>
<SuppressStartupBanner>true</SuppressStartupBanner>
@@ -388,7 +108,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WppEnabled>true</WppEnabled>
<AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;</AdditionalIncludeDirectories>
diff --git a/network/wlan/WDI/HAL/HALSOURCE/hal.vcxproj b/network/wlan/WDI/HAL/HALSOURCE/hal.vcxproj
index 7fe68165..a4044511 100644
--- a/network/wlan/WDI/HAL/HALSOURCE/hal.vcxproj
+++ b/network/wlan/WDI/HAL/HALSOURCE/hal.vcxproj
@@ -1,78 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Win10 Debug|Arm">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|Win32">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|x64">
- <Configuration>Win10 Debug</Configuration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Arm">
- <Configuration>Win10 Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Win32">
- <Configuration>Win10 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|x64">
- <Configuration>Win10 Release</Configuration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|Arm">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Arm">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|Arm">
- <Configuration>WinBlue Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Arm">
- <Configuration>Win8 Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|Win32">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Win32">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Debug|Win32">
- <Configuration>Win7 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Debug|Win32">
- <Configuration>Vista Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|Win32">
- <Configuration>WinBlue Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Win32">
- <Configuration>Win8 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Release|Win32">
- <Configuration>Win7 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Release|Win32">
- <Configuration>Vista Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
<ProjectConfiguration Include="WinBlue Debug|x64">
<Configuration>WinBlue Debug</Configuration>
<Platform>x64</Platform>
@@ -118,8 +54,7 @@
<PropertyGroup Label="PropertySheets">
<ConversionToolVersion>1.0</ConversionToolVersion>
<BUILD_ALT_DIR>$(Configuration.Replace(' ',''))</BUILD_ALT_DIR>
- <IntDir Condition="'$(Platform)'!='Win32'">$(BUILD_ALT_DIR)\$(Platform)\</IntDir>
- <IntDir Condition="'$(Platform)'=='Win32'">$(BUILD_ALT_DIR)\x86\</IntDir>
+ <IntDir>$(BUILD_ALT_DIR)\$(Platform)\</IntDir>
<OutDir>$(IntDir)</OutDir>
</PropertyGroup>
<ImportGroup Label="PreConfiguration">
@@ -128,77 +63,11 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{316BB9D3-0947-4431-BC09-1C71C7201001}</ProjectGuid>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Arm'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Mobile</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Arm'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Arm'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Mobile</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Arm'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Release|Win32'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|x64'">
<TargetVersion>WindowsV6.3</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
</PropertyGroup>
@@ -218,7 +87,7 @@
<TargetVersion>WindowsV6.3</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
</PropertyGroup>
diff --git a/network/wlan/WDI/HEADER/PlatformDef.h b/network/wlan/WDI/HEADER/PlatformDef.h
index cad6fb7a..a8f4fb55 100644
--- a/network/wlan/WDI/HEADER/PlatformDef.h
+++ b/network/wlan/WDI/HEADER/PlatformDef.h
@@ -813,42 +813,42 @@ PlatformRequestPreAuthentication(
RT_STATUS
PlatformReadFile(
- IN PVOID Adapter,
- IN ps1Byte szFileName,
- IN OUT pu1Byte pBufOfLines,
- IN s4Byte nMaxNumLine,
- IN s4Byte nMaxByteCntLine,
- OUT ps4Byte pnNumLines
+ IN PVOID Adapter,
+ IN UNICODE_STRING* fileName,
+ IN OUT pu1Byte pBufOfLines,
+ IN s4Byte nMaxNumLine,
+ IN s4Byte nMaxByteCntLine,
+ OUT ps4Byte pnNumLinesRead
);
RT_STATUS
PlatformOpenFile(
- IN PVOID Adapter,
- IN ps1Byte szFileName,
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN UNICODE_STRING* fileName,
+ IN OUT HANDLE* fileHandle
);
RT_STATUS
PlatformMapFile(
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN OUT HANDLE* fileHandle,
+ OUT u1Byte* contentBuffer,
+ OUT s4Byte* contentBufferLength
);
VOID
PlatformUnMapFile(
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN OUT u1Byte* contentBuffer
);
VOID
PlatformCloseFile(
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN OUT HANDLE* fileHandle
);
RT_STATUS
PlatformReadAndMapFile(
- IN PVOID Adapter,
- IN ps1Byte szFileName,
- IN OUT pu1Byte pOutFile,
- IN OUT pu4Byte UNALIGNED pFileSize
+ IN UNICODE_STRING* fileName,
+ OUT u1Byte* outFileBuffer,
+ OUT u4Byte* outFileBufferLength
);
BOOLEAN
diff --git a/network/wlan/WDI/LIB/Arm/hal.lib b/network/wlan/WDI/LIB/Arm/hal.lib
deleted file mode 100644
index 794359a7..00000000
--- a/network/wlan/WDI/LIB/Arm/hal.lib
+++ /dev/null
Binary files differ
diff --git a/network/wlan/WDI/LIB/Arm/rtklibcom.lib b/network/wlan/WDI/LIB/Arm/rtklibcom.lib
deleted file mode 100644
index 356e3860..00000000
--- a/network/wlan/WDI/LIB/Arm/rtklibcom.lib
+++ /dev/null
Binary files differ
diff --git a/network/wlan/WDI/LIB/x86/hal.lib b/network/wlan/WDI/LIB/x86/hal.lib
deleted file mode 100644
index 41be4e25..00000000
--- a/network/wlan/WDI/LIB/x86/hal.lib
+++ /dev/null
Binary files differ
diff --git a/network/wlan/WDI/LIB/x86/rtklibcom.lib b/network/wlan/WDI/LIB/x86/rtklibcom.lib
deleted file mode 100644
index b18054af..00000000
--- a/network/wlan/WDI/LIB/x86/rtklibcom.lib
+++ /dev/null
Binary files differ
diff --git a/network/wlan/WDI/PLATFORM/NDIS6/Ndis6Common.c b/network/wlan/WDI/PLATFORM/NDIS6/Ndis6Common.c
index d122f0c0..a8eb835d 100644
--- a/network/wlan/WDI/PLATFORM/NDIS6/Ndis6Common.c
+++ b/network/wlan/WDI/PLATFORM/NDIS6/Ndis6Common.c
@@ -207,85 +207,105 @@ ParseFileBufToLines(
// which is a 2-dimention array, for example,
// u1Byte pBufOfLines[nMaxNumLine][nMaxByteCntLine].
//
-// Note:
-// In NDIS5, the file to open shall be placed at the directory the same as
-// driver binary.
-//
RT_STATUS
PlatformReadFile(
- IN PVOID Adapter,
- IN ps1Byte szFileName,
- IN OUT pu1Byte pBufOfLines,
- IN s4Byte nMaxNumLine,
- IN s4Byte nMaxByteCntLine,
- OUT ps4Byte pnNumLinesRead
+ IN PVOID Adapter,
+ IN UNICODE_STRING* fileName,
+ IN OUT pu1Byte pBufOfLines,
+ IN s4Byte nMaxNumLine,
+ IN s4Byte nMaxByteCntLine,
+ OUT ps4Byte pnNumLinesRead
)
{
- RT_STATUS rtStatus = RT_STATUS_FAILURE;
- NDIS_STRING NdisStrFileName;
- NDIS_PHYSICAL_ADDRESS ndisPhyAddr;
- NDIS_STATUS ndisStatus;
- NDIS_HANDLE hFileHandle;
- UINT ulFileLength;
- pu1Byte pMappedFile = NULL;
+ RT_STATUS rtStatus = RT_STATUS_FAILURE;
+ OBJECT_ATTRIBUTES objectAttributes;
+ HANDLE fileHandle;
+ IO_STATUS_BLOCK iostatBlock;
+ NTSTATUS ntStatus;
- // Check input parameters.
- if(szFileName == NULL)
- {
- RT_TRACE(COMP_INIT, DBG_WARNING, ("PlatformReadFile(): szFileName should not be NULL!\n"));
- return rtStatus;
- }
+ // Check Input parameters.
if(pBufOfLines == NULL)
{
RT_TRACE(COMP_INIT, DBG_WARNING, ("PlatformReadFile(): pBufOfLines should not be NULL!\n"));
return rtStatus;
}
- // Convert szFileName to NDIS_STRING.
- NdisInitializeString(&NdisStrFileName, (PUCHAR)szFileName);
- if(NdisStrFileName.Buffer != NULL && NdisStrFileName.Length > 0)
- {
- // Open the file specified.
- ndisPhyAddr.LowPart = ndisPhyAddr.HighPart = -1;
- NdisOpenFile(&ndisStatus,
- &hFileHandle,
- &ulFileLength,
- &NdisStrFileName,
- ndisPhyAddr);
- if(ndisStatus == NDIS_STATUS_SUCCESS)
- {
- // Map the file into memory.
- NdisMapFile(&ndisStatus, (PVOID *)(&pMappedFile), hFileHandle);
- if(ndisStatus == NDIS_STATUS_SUCCESS)
- {
- // Read the file into pBufOfLines.
- ParseFileBufToLines(Adapter, pMappedFile, ulFileLength, pBufOfLines, nMaxNumLine, nMaxByteCntLine, pnNumLinesRead);
-
- // Return Success only when Config Success
- rtStatus = RT_STATUS_SUCCESS;
-
- // Relase the memory for mapping the file.
- NdisUnmapFile(hFileHandle);
+ // Initialize the object attributes of the file we want to open
+ InitializeObjectAttributes(
+ &objectAttributes,
+ fileName,
+ OBJ_KERNEL_HANDLE | OBJ_CASE_INSENSITIVE,
+ NULL, // RootDirectory
+ NULL // Default Security
+ );
+
+ // Open the file using the object attributes to get a Handle
+ ntStatus = ZwOpenFile(
+ &fileHandle,
+ GENERIC_READ,
+ &objectAttributes,
+ &iostatBlock,
+ 0, // Do not share the file
+ FILE_NON_DIRECTORY_FILE
+ );
+
+ if (NT_SUCCESS(ntStatus)) {
+ FILE_STANDARD_INFORMATION fileInformation = { 0 };
+
+ // Get the file information to know the size we need to alloc
+ ntStatus = ZwQueryInformationFile(
+ fileHandle,
+ &iostatBlock,
+ &fileInformation,
+ sizeof(fileInformation),
+ FileStandardInformation
+ );
+
+ if (NT_SUCCESS(ntStatus)) {
+ u1Byte* buffer = NULL;
+ s4Byte bufferLength = (s4Byte)fileInformation.EndOfFile.QuadPart;
+
+ // Try to allocate space to read the file
+ buffer = ExAllocatePool2(POOL_FLAG_NON_PAGED, bufferLength, 'frP');
+ if (buffer) {
+
+ // If alloc was successful, then read the file
+ ntStatus = ZwReadFile(
+ fileHandle,
+ NULL,
+ NULL,
+ NULL,
+ &iostatBlock,
+ buffer,
+ bufferLength,
+ 0, // No offset
+ NULL
+ );
+
+ if (NT_SUCCESS(ntStatus)) {
+ // Read the buffer into pBufOfLines.
+ ParseFileBufToLines(Adapter, buffer, bufferLength, pBufOfLines, nMaxNumLine, nMaxByteCntLine, pnNumLinesRead);
+ rtStatus = RT_STATUS_SUCCESS;
+ }
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to read file, ntStatus: %#X\n", ntStatus));
+ }
+
+ ExFreePool(buffer);
+
}
- else
- {
- RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to map the file, %s!, ndisStatus: %#X\n", szFileName, ndisStatus));
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to allocate space for file!\n"));
}
-
- // Close the file.
- NdisCloseFile(hFileHandle);
}
- else
- {
- RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to open the file, %s!, ndisStatus: %#X\n", szFileName, ndisStatus));
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to read file attributes!, ntStatus: %#X\n", ntStatus));
}
-
- // Release the NDIS_STRING allocated via NdisInitializeString().
- NdisFreeString(NdisStrFileName);
+
+ ZwClose(fileHandle);
}
- else
- {
- RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): NdisInitializeString() failed! szFileName: %s\n", szFileName));
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to open the file!, ntStatus: %#X\n", ntStatus));
}
return rtStatus;
@@ -293,51 +313,39 @@ PlatformReadFile(
RT_STATUS
PlatformOpenFile(
- IN PVOID Adapter,
- IN ps1Byte szFileName,
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN UNICODE_STRING* fileName,
+ IN OUT HANDLE* fileHandle
)
{
- RT_STATUS rtStatus = RT_STATUS_FAILURE;
- NDIS_STRING NdisStrFileName;
- NDIS_PHYSICAL_ADDRESS ndisPhyAddr;
- NDIS_STATUS ndisStatus;
- pu1Byte pMappedFile = NULL;
+ RT_STATUS rtStatus = RT_STATUS_FAILURE;
+ OBJECT_ATTRIBUTES objectAttributes;
+ IO_STATUS_BLOCK iostatBlock;
+ NTSTATUS ntStatus;
-
- // Check input parameters.
- if(szFileName == NULL)
- {
- RT_TRACE(COMP_INIT, DBG_LOUD, ("PlatformOpenFile(): szFileName should not be NULL!\n"));
- return rtStatus;
- }
+ // Initialize the object attributes of the file we want to open
+ InitializeObjectAttributes(
+ &objectAttributes,
+ fileName,
+ OBJ_KERNEL_HANDLE | OBJ_CASE_INSENSITIVE,
+ NULL, // RootDirectory
+ NULL // Default Security
+ );
- // Convert szFileName to NDIS_STRING.
- NdisInitializeString(&NdisStrFileName, (PUCHAR)szFileName);
- if(NdisStrFileName.Buffer != NULL && NdisStrFileName.Length > 0)
- {
- // Open the file specified.
- ndisPhyAddr.LowPart = ndisPhyAddr.HighPart = -1;
- NdisOpenFile(&ndisStatus,
- &(pFileHandler->FileHandler),
- &(pFileHandler->FileLength),
- &NdisStrFileName,
- ndisPhyAddr);
-
- NdisFreeString(NdisStrFileName);
- if(ndisStatus == NDIS_STATUS_SUCCESS)
- {
- rtStatus = RT_STATUS_SUCCESS;
- }
- else
- {
- RT_TRACE(COMP_INIT, DBG_LOUD, ("PlatformOpenFile(): failed to open the file, %s!, ndisStatus: %#X\n", szFileName, ndisStatus));
- }
-
+ // Open the file using the object attributes to get a Handle
+ ntStatus = ZwOpenFile(
+ fileHandle,
+ GENERIC_READ,
+ &objectAttributes,
+ &iostatBlock,
+ 0, // Do not share the file
+ FILE_NON_DIRECTORY_FILE
+ );
+
+ if (NT_SUCCESS(ntStatus)) {
+ rtStatus = RT_STATUS_SUCCESS;
}
- else
- {
- RT_TRACE(COMP_INIT, DBG_LOUD, ("PlatformOpenFile(): NdisInitializeString() failed! szFileName: %s\n", szFileName));
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to open the file!, ntStatus: %#X, fileName: %wZ\n", ntStatus, fileName));
}
return rtStatus;
@@ -345,20 +353,66 @@ PlatformOpenFile(
RT_STATUS
PlatformMapFile(
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN OUT HANDLE* fileHandle,
+ OUT u1Byte* contentBuffer,
+ OUT s4Byte* contentBufferLength
)
{
- RT_STATUS rtStatus = RT_STATUS_FAILURE;
- NDIS_STATUS ndisStatus;
-
- // Map the file into memory.
- NdisMapFile(&ndisStatus, (PVOID *)(&(pFileHandler->MappedFile)), pFileHandler->FileHandler);
- if(ndisStatus == NDIS_STATUS_SUCCESS) {
- rtStatus = RT_STATUS_SUCCESS;
+ RT_STATUS rtStatus = RT_STATUS_FAILURE;
+ OBJECT_ATTRIBUTES objectAttributes;
+ IO_STATUS_BLOCK iostatBlock;
+ NTSTATUS ntStatus;
+
+
+ FILE_STANDARD_INFORMATION fileInformation = { 0 };
+
+ // Get the file information to know the size we need to alloc
+ ntStatus = ZwQueryInformationFile(
+ *fileHandle,
+ &iostatBlock,
+ &fileInformation,
+ sizeof(fileInformation),
+ FileStandardInformation
+ );
+
+ if (NT_SUCCESS(ntStatus)) {
+ u1Byte* buffer = NULL;
+ s4Byte bufferLength = (s4Byte)fileInformation.EndOfFile.QuadPart;
+
+ // Try to allocate space to read the file
+ buffer = ExAllocatePool2(POOL_FLAG_NON_PAGED, bufferLength, 'frP');
+ if (buffer) {
+
+ // If alloc was successful, then read the file
+ ntStatus = ZwReadFile(
+ fileHandle,
+ NULL,
+ NULL,
+ NULL,
+ &iostatBlock,
+ buffer,
+ bufferLength,
+ 0, // No offset
+ NULL
+ );
+
+ if (NT_SUCCESS(ntStatus)) {
+ contentBuffer = buffer;
+ *contentBufferLength = bufferLength;
+ rtStatus = RT_STATUS_SUCCESS;
+ }
+ else {
+ ExFreePool(buffer);
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to read file, ntStatus: %#X\n", ntStatus));
+ }
+ }
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to allocate space for file!\n"));
+ }
}
else {
- RT_TRACE(COMP_INIT, DBG_LOUD, ("PlatformMapFile(): failed to map the file!, ndisStatus: %#X\n", ndisStatus));
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadFile(): failed to read file attributes!, ntStatus: %#X\n", ntStatus));
}
return rtStatus;
@@ -366,22 +420,65 @@ PlatformMapFile(
VOID
PlatformUnMapFile(
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN OUT u1Byte* contentBuffer
)
{
// Relase the memory for mapping the file.
- NdisUnmapFile(pFileHandler->FileHandler);
+ ExFreePool(contentBuffer);
}
+
VOID
PlatformCloseFile(
- IN OUT PRT_FILE_HANDLER pFileHandler
+ IN OUT HANDLE* fileHandle
)
{
// Relase the memory for mapping the file.
- NdisCloseFile(pFileHandler->FileHandler);
+ ZwClose(fileHandle);
+}
+
+//
+// Description:
+// Open the file specifed and copy the file into an byte buffer,
+//
+RT_STATUS
+PlatformReadAndMapFile(
+ IN UNICODE_STRING* fileName,
+ OUT u1Byte* outFileBuffer,
+ OUT u4Byte* outFileBufferLength
+)
+{
+ RT_STATUS rtStatus = RT_STATUS_FAILURE;
+ HANDLE fileHandle;
+ RT_STATUS callStatus;
+
+ callStatus = PlatformOpenFile(fileName, &fileHandle);
+
+ if (callStatus == RT_STATUS_SUCCESS) {
+ u1Byte* fileBuffer = NULL;
+ u4Byte* fileBufferLength = NULL;
+
+ callStatus = PlatformMapFile(&fileHandle, fileBuffer, fileBufferLength);
+
+ if (callStatus == RT_STATUS_SUCCESS) {
+ outFileBuffer = fileBuffer;
+ outFileBufferLength = fileBufferLength;
+ rtStatus = RT_STATUS_SUCCESS;
+ }
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadAndMapFile(): failed to map file!, rtStatus: %#X\n", callStatus));
+ }
+
+ PlatformCloseFile(fileHandle);
+ }
+ else {
+ RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadAndMapFile(): failed to open the file!, rtStatus: %#X\n", callStatus));
+ }
+
+ return rtStatus;
}
+
//
// Description:
// Indication for PHY power state changed.
@@ -2722,85 +2819,6 @@ N6InitializeNative80211MIBs(
Adapter->pNdisCommon->PrivacyExemptionEntrieNum = 0;
}
-//
-// Description:
-// Open the file specifed and copy the file into an array,
-//
-RT_STATUS
-PlatformReadAndMapFile(
- IN PVOID Adapter,
- IN ps1Byte szFileName,
- IN OUT pu1Byte pOutFile,
- IN OUT pu4Byte UNALIGNED pFileSize
- )
-{
- RT_STATUS rtStatus = RT_STATUS_FAILURE;
- NDIS_STRING NdisStrFileName;
- NDIS_PHYSICAL_ADDRESS ndisPhyAddr;
- NDIS_STATUS ndisStatus;
- NDIS_HANDLE hFileHandle;
- UINT ulFileLength;
- pu1Byte pMappedFile = NULL;
-
- // Check input parameters.
- if(szFileName == NULL)
- {
- RT_TRACE(COMP_INIT, DBG_WARNING, ("PlatformReadAndMapFile(): szFileName should not be NULL!\n"));
- return rtStatus;
- }
-
-
- // Convert szFileName to NDIS_STRING.
- NdisInitializeString(&NdisStrFileName, (PUCHAR)szFileName);
- if(NdisStrFileName.Buffer != NULL && NdisStrFileName.Length > 0)
- {
- // Open the file specified.
- ndisPhyAddr.LowPart = ndisPhyAddr.HighPart = -1;
- NdisOpenFile(&ndisStatus,
- &hFileHandle,
- &ulFileLength,
- &NdisStrFileName,
- ndisPhyAddr);
- if(ndisStatus == NDIS_STATUS_SUCCESS)
- {
- // Map the file into memory.
- NdisMapFile(&ndisStatus, (PVOID *)(&pMappedFile), hFileHandle);
- if(ndisStatus == NDIS_STATUS_SUCCESS)
- {
- // Copy File into array
- PlatformMoveMemory(pOutFile, pMappedFile, ulFileLength);
- *pFileSize = ulFileLength;
-
- // Return Success only when Config Success
- rtStatus = RT_STATUS_SUCCESS;
-
- // Relase the memory for mapping the file.
- NdisUnmapFile(hFileHandle);
- }
- else
- {
- RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadAndMapFile(): failed to map the file, %s!, ndisStatus: %#X\n", szFileName, ndisStatus));
- }
-
- // Close the file.
- NdisCloseFile(hFileHandle);
- }
- else
- {
- RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadAndMapFile(): failed to open the file, %s!, ndisStatus: %#X\n", szFileName, ndisStatus));
- }
-
- // Release the NDIS_STRING allocated via NdisInitializeString().
- NdisFreeString(NdisStrFileName);
- }
- else
- {
- RT_TRACE(COMP_INIT, DBG_SERIOUS, ("PlatformReadAndMapFile(): NdisInitializeString() failed! szFileName: %s\n", szFileName));
- }
-
- return rtStatus;
-}
-
//
// Description:
diff --git a/network/wlan/WDI/PLATFORM/NDIS6/SDIO/sdio.vcxproj b/network/wlan/WDI/PLATFORM/NDIS6/SDIO/sdio.vcxproj
index 963ab013..cfc0e2fa 100644
--- a/network/wlan/WDI/PLATFORM/NDIS6/SDIO/sdio.vcxproj
+++ b/network/wlan/WDI/PLATFORM/NDIS6/SDIO/sdio.vcxproj
@@ -1,108 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Win10 Debug|Arm">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|Arm">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Arm">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Arm">
- <Configuration>Win10 Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|Arm">
- <Configuration>WinBlue Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Arm">
- <Configuration>Win8 Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|Win32">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|Win32">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Win32">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Debug|Win32">
- <Configuration>Win7 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Debug|Win32">
- <Configuration>Vista Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Win32">
- <Configuration>Win10 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|Win32">
- <Configuration>WinBlue Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Win32">
- <Configuration>Win8 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Release|Win32">
- <Configuration>Win7 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Release|Win32">
- <Configuration>Vista Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|x64">
- <Configuration>Win10 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|x64">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|x64">
- <Configuration>Win8 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Debug|x64">
- <Configuration>Win7 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Debug|x64">
- <Configuration>Vista Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|x64">
- <Configuration>Win10 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|x64">
- <Configuration>WinBlue Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|x64">
- <Configuration>Win8 Release</Configuration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Release|x64">
- <Configuration>Win7 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Release|x64">
- <Configuration>Vista Release</Configuration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
@@ -118,8 +22,6 @@
<ConversionToolVersion>1.0</ConversionToolVersion>
<BUILD_ALT_DIR>$(Configuration.Replace(' ',''))</BUILD_ALT_DIR>
<IntDir Condition="'$(Platform)'!='Win32'">$(BUILD_ALT_DIR)\$(Platform)\</IntDir>
- <IntDir Condition="'$(Platform)'=='Win32'">
- </IntDir>
<OutDir>$(SolutionDir)\DrvBin\$(Configuration)\$(Platform)</OutDir>
</PropertyGroup>
<ImportGroup Label="PreConfiguration">
@@ -128,186 +30,23 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{105EA485-B9B6-48AE-B8B0-96BBEA575973}</ProjectGuid>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <TargetVersion>
- </TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <SupportsPackaging>true</SupportsPackaging>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Arm'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Arm'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <TargetVersion>
- </TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <SupportsPackaging>
- </SupportsPackaging>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Arm'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Arm'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <SupportsPackaging>
- </SupportsPackaging>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<SupportsPackaging>true</SupportsPackaging>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Release|Win32'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <SupportsPackaging>true</SupportsPackaging>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<SupportsPackaging>true</SupportsPackaging>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
<PropertyGroup>
<DebuggerFlavor Condition="'$(IsKernelModeToolset)'=='true'">DbgengKernelDebugger</DebuggerFlavor>
<DebuggerFlavor Condition="'$(IsUserModeToolset)'=='true'">DbgengRemoteDebugger</DebuggerFlavor>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <TargetExt>.sys</TargetExt>
- <ReferencePath>$(VC_ReferencesPath_x86);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x86);</ExcludePath>
- <EnableInf2cat>true</EnableInf2cat>
- <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
- <Inf2CatUseLocalTime>true</Inf2CatUseLocalTime>
- <Inf2CatVerbose>true</Inf2CatVerbose>
- <Inf2CatNoCatalog>false</Inf2CatNoCatalog>
- <Inf2CatWindowsVersionList>10_x86;$(Inf2CatWindowsVersionList)</Inf2CatWindowsVersionList>
- <ApiValidator_Enable>true</ApiValidator_Enable>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencesPath_x86);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x86);</ExcludePath>
- <EnableInf2cat>true</EnableInf2cat>
- <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
- <TargetExt>.sys</TargetExt>
- <Inf2CatWindowsVersionList>10_X86;$(Inf2CatWindowsVersionList)</Inf2CatWindowsVersionList>
- <Inf2CatUseLocalTime>true</Inf2CatUseLocalTime>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <TargetExt>.sys</TargetExt>
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencesPath_arm);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_arm);$(WindowsSDK_LibraryPath_arm);$(NETFXKitsDir)Lib\um\arm</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_arm);</ExcludePath>
- <EnableInf2cat>false</EnableInf2cat>
- <Inf2CatWindowsVersionList>6_3_ARM;$(Inf2CatWindowsVersionList)</Inf2CatWindowsVersionList>
- <Inf2CatUseLocalTime>true</Inf2CatUseLocalTime>
- <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <TargetExt>.sys</TargetExt>
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencesPath_arm);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_arm);$(WindowsSDK_LibraryPath_arm);$(NETFXKitsDir)Lib\um\arm</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_arm);</ExcludePath>
- <EnableInf2cat>false</EnableInf2cat>
- <Inf2CatWindowsVersionList>6_3_Arm;$(Inf2CatWindowsVersionList)</Inf2CatWindowsVersionList>
- <Inf2CatUseLocalTime>true</Inf2CatUseLocalTime>
- <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
<EnableInf2cat>true</EnableInf2cat>
<Inf2CatWindowsVersionList>10_x64;$(Inf2CatWindowsVersionList)</Inf2CatWindowsVersionList>
@@ -320,7 +59,7 @@
<SourcePath>$(VC_SourcePath);</SourcePath>
<ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x64);</ExcludePath>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetExt>.sys</TargetExt>
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
@@ -333,233 +72,7 @@
<Inf2CatUseLocalTime>true</Inf2CatUseLocalTime>
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
</PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- <Link>
- <AdditionalDependencies>$(SolutionDir)COMMON\$(Configuration)\common.lib;$(SolutionDir)PLATFORM\NdisComm\$(Configuration)\NdisComm.lib;$(SolutionDir)\LIB\x86\hal.lib;$(SolutionDir)\LIB\x86\rtklibcom.lib;$(WindowsSDK_LibraryPath_x86)km\x86\ndis.lib;$(WindowsSDK_LibraryPath_x86)km\x86\ntoskrnl.lib;$(WindowsSDK_LibraryPath_x86)km\x86\sdbus.lib;$(WindowsSDK_LibraryPath_x86)km\x86\wlan\1.0\TlvGeneratorParser.lib;</AdditionalDependencies>
- <!-- warning LNK4099: PDB 'rtklibcom.pdb' was not found with 'rtklibcom.lib(multichannels.obj)' -->
- <AdditionalOptions>$(AdditionalOptions) /IGNORE:4099</AdditionalOptions>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>_X86_;DBG;NDIS60_MINIPORT;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)Include\km\;$(WindowsSdkDir)Include\shared\;$(WindowsSdkDir)Include\wdf\kmdf\1.15\;$(WindowsSdkDir)Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)COMMON\;$(SolutionDir)PLATFORM\NDIS6;</AdditionalIncludeDirectories>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <MinimalRebuild>true</MinimalRebuild>
- <ExceptionHandling>
- </ExceptionHandling>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <TreatWarningAsError>true</TreatWarningAsError>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- <WppMinimalRebuildFromTracking>true</WppMinimalRebuildFromTracking>
- </ClCompile>
- <ProjectReference>
- <LinkLibraryDependencies>true</LinkLibraryDependencies>
- <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <ClCompile>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)Include\km\;$(WindowsSdkDir)Include\shared\;$(WindowsSdkDir)Include\wdf\kmdf\1.15\;$(WindowsSdkDir)Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)COMMON\;$(SolutionDir)PLATFORM\NDIS6;</AdditionalIncludeDirectories>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <TreatWarningAsError>true</TreatWarningAsError>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <PreprocessorDefinitions>_X86_;NDIS60_MINIPORT;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- <DebugInformationFormat>None</DebugInformationFormat>
- </ClCompile>
- <Link>
- <!-- warning LNK4099: PDB 'rtklibcom.pdb' was not found with 'rtklibcom.lib(multichannels.obj)' -->
- <AdditionalOptions>$(AdditionalOptions) /IGNORE:4099</AdditionalOptions>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <AdditionalDependencies>$(SolutionDir)COMMON\$(Configuration)\common.lib;$(SolutionDir)PLATFORM\NdisComm\$(Configuration)\NdisComm.lib;$(SolutionDir)\LIB\x86\hal.lib;$(SolutionDir)\LIB\x86\rtklibcom.lib;$(WindowsSDK_LibraryPath_x86)km\x86\ndis.lib;$(WindowsSDK_LibraryPath_x86)km\x86\ntoskrnl.lib;$(WindowsSDK_LibraryPath_x86)km\x86\sdbus.lib;$(WindowsSDK_LibraryPath_x86)km\x86\wlan\1.0\TlvGeneratorParser.lib;</AdditionalDependencies>
- <GenerateDebugInformation>
- </GenerateDebugInformation>
- <GenerateMapFile>
- </GenerateMapFile>
- <AssemblyDebug>
- </AssemblyDebug>
- </Link>
- <ProjectReference>
- <LinkLibraryDependencies>true</LinkLibraryDependencies>
- </ProjectReference>
- <ProjectReference>
- <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <ClCompile>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)Include\km\;$(WindowsSdkDir)Include\shared\;$(WindowsSdkDir)Include\wdf\kmdf\1.15\;$(WindowsSdkDir)Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)COMMON\;$(SolutionDir)PLATFORM\NDIS6;</AdditionalIncludeDirectories>
- <DebugInformationFormat>None</DebugInformationFormat>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <TreatWarningAsError>true</TreatWarningAsError>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <PreprocessorDefinitions>_ARM_;NDIS60_MINIPORT;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <Link>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <AdditionalDependencies>$(SolutionDir)COMMON\$(Configuration)\$(Platform)\common.lib;$(SolutionDir)PLATFORM\NdisComm\$(Configuration)\$(Platform)\NdisComm.lib;$(SolutionDir)\LIB\Arm\hal.lib;$(SolutionDir)\LIB\Arm\rtklibcom.lib;$(WindowsSDK_LibraryPath_arm)km\arm\ndis.lib;$(WindowsSDK_LibraryPath_arm)km\arm\ntoskrnl.lib;$(WindowsSDK_LibraryPath_arm)km\arm\sdbus.lib;$(WindowsSDK_LibraryPath_arm)km\arm\wlan\1.0\TlvGeneratorParser.lib;</AdditionalDependencies>
- </Link>
- <ProjectReference>
- <LinkLibraryDependencies>true</LinkLibraryDependencies>
- </ProjectReference>
- <ProjectReference>
- <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <ClCompile>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)Include\km\;$(WindowsSdkDir)Include\shared\;$(WindowsSdkDir)Include\wdf\kmdf\1.15\;$(WindowsSdkDir)Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)COMMON\;$(SolutionDir)PLATFORM\NDIS6;</AdditionalIncludeDirectories>
- <DebugInformationFormat>None</DebugInformationFormat>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <TreatWarningAsError>true</TreatWarningAsError>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <PreprocessorDefinitions>_ARM_;DBG;NDIS60_MINIPORT;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <Link>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <AdditionalDependencies>$(SolutionDir)COMMON\$(Configuration)\common.lib;$(SolutionDir)PLATFORM\NdisComm\$(Configuration)\NdisComm.lib;$(SolutionDir)\LIB\Arm\hal.lib;$(SolutionDir)\LIB\Arm\rtklibcom.lib;$(WindowsSDK_LibraryPath_arm)km\arm\ndis.lib;$(WindowsSDK_LibraryPath_arm)km\arm\ntoskrnl.lib;$(WindowsSDK_LibraryPath_arm)km\arm\sdbus.lib;$(WindowsSDK_LibraryPath_arm)km\arm\wlan\1.0\TlvGeneratorParser.lib;</AdditionalDependencies>
- </Link>
- <ProjectReference>
- <LinkLibraryDependencies>true</LinkLibraryDependencies>
- </ProjectReference>
- <ProjectReference>
- <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WppEnabled>true</WppEnabled>
<AdditionalIncludeDirectories>$(WindowsSdkDir)Include\km\;$(WindowsSdkDir)Include\shared\;$(WindowsSdkDir)Include\wdf\kmdf\1.15\;$(WindowsSdkDir)Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)COMMON\;$(SolutionDir)PLATFORM\NDIS6;</AdditionalIncludeDirectories>
@@ -612,7 +125,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>$(WindowsSdkDir)Include\km\;$(WindowsSdkDir)Include\shared\;$(WindowsSdkDir)Include\wdf\kmdf\1.15\;$(WindowsSdkDir)Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)PLATFORM\NDIS6\SDIO;$(SolutionDir)COMMON\;$(SolutionDir)PLATFORM\NDIS6;</AdditionalIncludeDirectories>
<DebugInformationFormat>None</DebugInformationFormat>
@@ -665,159 +178,25 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
<!-- Needed by any VcxProj -->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup Label="UserMacros" />
<!-- The WrappedTaskItems label is used by the conversion tool to identify the location where items
associated with wrapped tasks will reside.-->
<ItemGroup Label="WrappedTaskItems">
- <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x64\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x64\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PackageRelativeDirectory>
</PackageRelativeDirectory>
</FilesToPackage>
- <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x64\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x64\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PackageRelativeDirectory>
</PackageRelativeDirectory>
</FilesToPackage>
- <PackagePath Include="$(OutDir)" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- </PackagePath>
- <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
+ <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PackageRelativeDirectory>
</PackageRelativeDirectory>
</FilesToPackage>
- <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\arm\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x86\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x86\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <PackageRelativeDirectory>
- </PackageRelativeDirectory>
- </FilesToPackage>
- <FilesToPackage Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x86\netrtwlans.inf" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
+ <FilesToPackage Include="$(OutDir)$(TargetName)$(TargetExt)" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PackageRelativeDirectory>
</PackageRelativeDirectory>
</FilesToPackage>
@@ -878,6 +257,9 @@
<ItemGroup>
<ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
</ItemGroup>
+ <ItemGroup>
+ <Inf Include="$(SolutionDir)\PLATFORM\WinInf\SDIO\x64\netrtwlans.inf" />
+ </ItemGroup>
<!-- /Necessary to pick up propper files from local directory when in the IDE-->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project> \ No newline at end of file
diff --git a/network/wlan/WDI/PLATFORM/NdisComm/NdisComm.vcxproj b/network/wlan/WDI/PLATFORM/NdisComm/NdisComm.vcxproj
index 112e7ea9..a7bdea25 100644
--- a/network/wlan/WDI/PLATFORM/NdisComm/NdisComm.vcxproj
+++ b/network/wlan/WDI/PLATFORM/NdisComm/NdisComm.vcxproj
@@ -1,108 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Win10 Debug|Arm">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|Win32">
- <Configuration>Win10 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Debug|x64">
- <Configuration>Win10 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Arm">
- <Configuration>Win10 Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|Win32">
- <Configuration>Win10 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win10 Release|x64">
- <Configuration>Win10 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|Arm">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Arm">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|Arm">
- <Configuration>WinBlue Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Arm">
- <Configuration>Win8 Release</Configuration>
- <Platform>Arm</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|Win32">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Win32">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Debug|Win32">
- <Configuration>Win7 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Debug|Win32">
- <Configuration>Vista Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|Win32">
- <Configuration>WinBlue Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Win32">
- <Configuration>Win8 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Release|Win32">
- <Configuration>Win7 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Release|Win32">
- <Configuration>Vista Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Debug|x64">
- <Configuration>WinBlue Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|x64">
- <Configuration>Win8 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Debug|x64">
- <Configuration>Win7 Debug</Configuration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Vista Debug|x64">
- <Configuration>Vista Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="WinBlue Release|x64">
- <Configuration>WinBlue Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|x64">
- <Configuration>Win8 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Release|x64">
- <Configuration>Win7 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Vista Release|x64">
- <Configuration>Vista Release</Configuration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
@@ -119,7 +23,6 @@
<ConversionToolVersion>1.0</ConversionToolVersion>
<BUILD_ALT_DIR>$(Configuration.Replace(' ',''))</BUILD_ALT_DIR>
<IntDir Condition="'$(Platform)'!='Win32'">$(BUILD_ALT_DIR)\$(Platform)\</IntDir>
- <IntDir Condition="'$(Platform)'=='Win32'">$(BUILD_ALT_DIR)\</IntDir>
<OutDir>$(SolutionDir)PLATFORM\NdisComm\$(Configuration)\$(Platform)\</OutDir>
</PropertyGroup>
<ImportGroup Label="PreConfiguration">
@@ -128,153 +31,21 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{C0A51792-1338-4294-ADAA-EDC4EE30CF05}</ProjectGuid>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Arm'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Arm'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Arm'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'" Label="Configuration">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Arm'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Release|Win32'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
- <TargetVersion>Win8</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
- <TargetVersion>Win7</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">
- <TargetVersion>Vista</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
</PropertyGroup>
<PropertyGroup>
<DebuggerFlavor Condition="'$(IsKernelModeToolset)'=='true'">DbgengKernelDebugger</DebuggerFlavor>
<DebuggerFlavor Condition="'$(IsUserModeToolset)'=='true'">DbgengRemoteDebugger</DebuggerFlavor>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencesPath_x86);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x86);</ExcludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencePath_x86);</ReferencePath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86</LibraryPath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x86);</ExcludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencePath_arm);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_arm);$(WindowsSDK_LibraryPath_arm);$(NETFXKitsDir)Lib\um\arm</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_arm);</ExcludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
- <ReferencePath>$(VC_ReferencePath_arm);</ReferencePath>
- <LibraryPath>$(VC_LibraryPath_arm);$(WindowsSDK_LibraryPath_arm);$(NETFXKitsDir)Lib\um\arm</LibraryPath>
- <LibraryWPath>$(WindowsSDK_MetadataPath);</LibraryWPath>
- <SourcePath>$(VC_SourcePath);</SourcePath>
- <ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_arm);</ExcludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
@@ -282,7 +53,7 @@
<SourcePath>$(VC_SourcePath);</SourcePath>
<ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x64);</ExcludePath>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
@@ -290,220 +61,7 @@
<SourcePath>$(VC_SourcePath);</SourcePath>
<ExcludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(MSBuild_ExecutablePath);$(VC_LibraryPath_x64);</ExcludePath>
</PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
- <ClCompile>
- <PreprocessorDefinitions>_X86_;DBG;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)COMMON\;</AdditionalIncludeDirectories>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <MinimalRebuild>true</MinimalRebuild>
- <ExceptionHandling>
- </ExceptionHandling>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <ExpandAttributedSource>false</ExpandAttributedSource>
- <DebugInformationFormat>None</DebugInformationFormat>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <TreatWarningAsError>true</TreatWarningAsError>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <Lib>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <Lib>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- </Lib>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <Lib>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <ClCompile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)COMMON\;</AdditionalIncludeDirectories>
- <DebugInformationFormat>None</DebugInformationFormat>
- <TreatWarningAsError>true</TreatWarningAsError>
- <PreprocessorDefinitions>_X86_;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Arm'">
- <ClCompile>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)COMMON\;</AdditionalIncludeDirectories>
- <DebugInformationFormat>None</DebugInformationFormat>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <TreatWarningAsError>true</TreatWarningAsError>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <PreprocessorDefinitions>_ARM_;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- <WppEnabled>true</WppEnabled>
- </ClCompile>
- <Lib>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Arm'">
- <ClCompile>
- <WppEnabled>true</WppEnabled>
- <AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)COMMON\;</AdditionalIncludeDirectories>
- <DebugInformationFormat>None</DebugInformationFormat>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <TreatWarningAsError>true</TreatWarningAsError>
- <Optimization>Disabled</Optimization>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <IntrinsicFunctions>false</IntrinsicFunctions>
- <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
- <OmitFramePointers>false</OmitFramePointers>
- <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <PreprocessorDefinitions>_ARM_;DBG;USE_KLOCKS=1;BINARY_COMPATIBLE=0;NDIS650_MINIPORT=1;NDIS640_MINIPORT=1;NDIS630_MINIPORT=1;NDIS620_MINIPORT=1;NDIS61_MINIPORT=1;NDIS_MINIPORT_DRIVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
- <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
- <PreprocessToFile>false</PreprocessToFile>
- <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
- <PreprocessKeepComments>false</PreprocessKeepComments>
- <MinimalRebuild>true</MinimalRebuild>
- <SmallerTypeCheck>false</SmallerTypeCheck>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <StructMemberAlignment>Default</StructMemberAlignment>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
- <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
- <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <CallingConvention>Cdecl</CallingConvention>
- <CompileAs>Default</CompileAs>
- <ShowIncludes>false</ShowIncludes>
- <UseFullPaths>false</UseFullPaths>
- <OmitDefaultLibName>false</OmitDefaultLibName>
- <ErrorReporting>Prompt</ErrorReporting>
- </ClCompile>
- <Lib>
- <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- </Lib>
- <ProjectReference>
- <LinkLibraryDependencies>false</LinkLibraryDependencies>
- </ProjectReference>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WppEnabled>true</WppEnabled>
<AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)COMMON\;</AdditionalIncludeDirectories>
@@ -553,7 +111,7 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WppEnabled>true</WppEnabled>
<AdditionalIncludeDirectories>$(WindowsSdkDir)\Include\km\;$(WindowsSdkDir)\Include\shared\;$(WindowsSdkDir)\Include\wdf\kmdf\1.15\;$(WindowsSdkDir)\Include\km\crt\;$(SolutionDir)HEADER;$(SolutionDir)PLATFORM\NDIS6\;$(SolutionDir)PLATFORM\NdisComm\;$(SolutionDir)PLATFORM\NDIS6\SDIO\;$(SolutionDir)HAL\;$(SolutionDir)HAL\phydm\;$(SolutionDir)HAL\rtl8723B\;$(SolutionDir)HAL\rtl8723B\rtl8723bs\;$(SolutionDir)HAL\phydm\rtl8723b\;$(SolutionDir)COMMON\;</AdditionalIncludeDirectories>
@@ -603,106 +161,6 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Arm'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|Win32'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Debug|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='WinBlue Release|x64'">
- <DriverSign>
- <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
- </DriverSign>
- </ItemDefinitionGroup>
<!-- Needed by any VcxProj -->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup Label="UserMacros" />
diff --git a/network/wlan/WDI/PLATFORM/WinInf/SDIO/arm/netrtwlans.inf b/network/wlan/WDI/PLATFORM/WinInf/SDIO/arm/netrtwlans.inf
deleted file mode 100644
index e18bf510..00000000
--- a/network/wlan/WDI/PLATFORM/WinInf/SDIO/arm/netrtwlans.inf
+++ /dev/null
@@ -1,1259 +0,0 @@
-;; netrtwlans.inf
-;;
-;; Realtek Wireless 802.11b/g/n SDIO Network Adapter
-;;
-;; Copyright (C) 2012 Realtek Semiconductor Corp.
-;;
-;; This release is primarily for WHQL test.
-;;
-
-;; FOR XP/Vista/Win7/Win8
-
-[Version]
-Signature = "$Windows NT$"
-Class = Net
-ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
-Provider = %Realtek%
-CatalogFile.NT = netrtwlans.cat ;; for WHQL certified
-DriverVer = 11/23/2015,3008.22.1030.2015
-
-[Manufacturer]
-%Realtek% = Realtek,NTArm.10.0
-
-[ControlFlags]
-ExcludeFromSelect = *
-
-[Realtek.NTArm.10.0]
-;; For 8723 RTK common ================================================================
-
-;; For 8723 RTK common ================================================================
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_8753
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_B723
-;; Acer
-%RTL8723bs.DeviceDesc% = ACER8723bs.ndi, SD\VID_024C&PID_0623
-;; HP
-%RTL8723bs.DeviceDesc% = HP8723bs.ndi, SD\VID_024C&PID_0523
-;; ECS
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0524
-;; bestbuy
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0240
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0241
-;; For Braswell platform
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0626
-;; Reserved
-%RTL8723bs.DeviceDesc% = RSVD8723bs.ndi, SD\VID_024C&PID_0624
-
-;; For 8188E RTK common ================================================================
-%RTL8188es.DeviceDesc% = RTL8188es.ndi, SD\VID_024C&PID_8188
-%RTL8188es.DeviceDesc% = RTL8188es.ndi, SD\VID_024C&PID_8179
-
-;; For 8812A RTK common ================================================================
-
-;; For 8814A RTK common ================================================================
-%RTL8814as.DeviceDesc% = RTL8814as.ndi, SD\VID_024C&PID_8813
-
-;; For 8821A RTK common ================================================================
-%RTL8821as.DeviceDesc% = RTL8821as.ndi, SD\VID_024C&PID_8821
-
-;; For 8192ES RTK common ================================================================
-%RTL8192es.DeviceDesc% = RTL8192es.ndi, SD\VID_024C&PID_818B
-
-
-;; For 8703 RTK common ================================================================
-%RTL8703bs.DeviceDesc% = RTL8703bs.ndi, SD\VID_024C&PID_B703
-
-;; For 8188 RTK common ================================================================
-%RTL8188fs.DeviceDesc% = RTL8188fs.ndi, SD\VID_024C&PID_F179
-
-;; For 8822B RTK common ================================================================
-%RTL8822bs.DeviceDesc% = RTL8822bs.ndi, SD\VID_024C&PID_B822
-
-;; For 8723D RTK common ================================================================
-%RTL8723ds.DeviceDesc% = RTL8723ds.ndi, SD\VID_024C&PID_D723
-
-;;----------------------------------------------------------------------------
-;; Realtek 8723as default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8723as.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723as.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723as.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8723bs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, MCC.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;;----------------------------------------------------------------------------
-;; Acer 8723bs installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, RSSI2GridMode_2.reg, MCC.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[ACER8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[ACER8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;;----------------------------------------------------------------------------
-;; HP 8723bs installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[HP8723bs.ndi.NT]
-AddReg = NDIS_64.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[HP8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[HP8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; RSVD 8723bs installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, WowlanDisable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RSVD8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RSVD8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8188eu default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8188es.ndi.NT]
-AddReg = NDIS_64.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188es.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188es.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8821as default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8821as.ndi.NT]
-AddReg = NDIS_64.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8821as.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8821as.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8814as default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8814as.ndi.NT]
-AddReg = NDIS_64.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8814as.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8814as.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8192es default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8192es.ndi.NT]
-AddReg = NDIS_64.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8192es.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8192es.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8703bs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, KFREE_COMMON.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8703bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8703bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8188fs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188fs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188fs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-;;----------------------------------------------------------------------------
-;; Realtek 8822bs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8822bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8822bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8822bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8723ds default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8723ds.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723ds.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723ds.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723ds.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-;;----------------------------------------------------------------------------
-;; OS relative registry.
-;;----------------------------------------------------------------------------
-[NDIS_64.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5,mdcwifi"
-HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet,vwifi"
-HKR, Ndi, Service, 0, "RtlWlans"
-;;
-;; OS relative service.
-;;
-[RtlWlans.Service]
-DisplayName = %RtlWlans.DeviceDesc.DispName%
-ServiceType = 1 ; %SERVICE_KERNEL_DRIVER%
-StartType = 3 ; %SERRVICE_DEMAND_START%
-ErrorControl = 1 ; %SERRVICE_ERROR_NORMAL%
-ServiceBinary = %12%\rtwlans.sys
-LoadOrderGroup = NDIS
-
-;;
-;; OS relative event log.
-;;
-[RtlWlans.EventLog]
-AddReg = RtlWlans.AddEventLog.reg
-
-[RtlWlans.AddEventLog.reg]
-HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
-HKR, , TypesSupported , 0x00010001, 7
-
-[CIHVS.reg]
-HKR, Ndi\IHVExtensions, ExtensibilityDLL, 0, "%SystemRoot%\system32\Rtlihvs.dll"
-HKR, Ndi\IHVExtensions, UIExtensibilityCLSID, 0, "{6C2A8CCA-B2A2-4d81-A3B2-4E15F445C312}"
-HKR, Ndi\IHVExtensions, GroupName, 0, "Realtek CCX SDK IHV Service"
-HKR, Ndi\IHVExtensions, AdapterOUI, 0x00010001, 0x00e04c
-
-;*******************************************************************************
-; WAPI section
-;*******************************************************************************
-[wapi.reg]
-HKR,defaults,WapiSupport,0,"1"
-HKR,,WapiSupport,0,"1"
-
-;*******************************************************************************
-; RTL8723as common paramters
-;*******************************************************************************
-[RTL8723as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-
-;*******************************************************************************
-; RTL8723bs common paramters
-;*******************************************************************************
-[RTL8723bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-;;HKR,defaults,EnableAdaptivity,0,"0"
-;;HKR,,EnableAdaptivity,0,"0"
-
-HKR,defaults,EnableCarrierSense,0,"0"
-HKR,,EnableCarrierSense,0,"0"
-
-; AOAC reconnect
-HKR,defaults,PnpKeepLink,0,"1"
-HKR,,PnpKeepLink,0,"1"
-
-;; $$ End of RTL8723bs.common.reg
-
-[HP8723bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-; Enable Adaptivity
-;;HKR,defaults,EnableAdaptivity,0,"1"
-;;HKR,,EnableAdaptivity,0,"1"
-
-HKR,defaults,EnableCarrierSense,0,"0"
-HKR,,EnableCarrierSense,0,"0"
-
-; Enable Customeized PowerLimit Table
-HKR,,EnableTxPowerLimit,0,"1"
-HKR,,DecryptCustomFile,,"1"
-HKR,,PwrLimitFile,0,"TXPWR_LMT_IEC0921_Enc.txt"
-
-; Regulation WorldWide
-HKR,defaults,PwrTblSel,0,"4"
-HKR,,PwrTblSel,0,"4"
-
-; AOAC reconnect
-HKR,defaults,PnpKeepLink,0,"1"
-HKR,,PnpKeepLink,0,"1"
-
-;; $$ End of HP8723bs.common.reg
-
-;*******************************************************************************
-; RTL8703bs common paramters
-;*******************************************************************************
-[RTL8703bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-
-;*******************************************************************************
-; RTL8188Fs common paramters
-;*******************************************************************************
-[RTL8188fs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"0"
-HKR,,RomDLFwEnable,0,"0"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-
-;*******************************************************************************
-; RTL8821as common paramters
-;*******************************************************************************
-[RTL8821as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-
-
-;*******************************************************************************
-; RTL8814as common paramters
-;*******************************************************************************
-[RTL8814as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-;; Add for 8814AS, based on 8821AS's modification
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-
-
-;*******************************************************************************
-; RTL8192es common paramters
-;*******************************************************************************
-[RTL8192es.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-;*******************************************************************************
-; RTL8822bs common paramters
-;*******************************************************************************
-[RTL8822bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-HKR,,ValidRFPath,0,"51"
-HKR,,PreInitMem,0,"1"
-
-
-;*******************************************************************************
-; RTL8723ds common paramters
-;*******************************************************************************
-[RTL8723ds.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,defaults,LdpcCap,0,"0"
-
-
-;;----------------------------------------------------------------------------
-;; Realtek WLAN NIC parameters
-;;----------------------------------------------------------------------------
-[RTLWLAN.reg]
-
-; Enable Adaptivity
-HKR,,EnableAdaptivity,0,"1"
-
-HKR,defaults,Channel,0,"1"
-HKR,,Channel,0,"1"
-
-;; Antenna Diversity Type
-HKR,defaults,AntennaDivType,0,"0"
-HKR,,AntennaDivType,0,"0"
-
-HKR,defaults,NetworkType,0,"1"
-HKR,,NetworkType,0,"1"
-
-HKR,defaults,StaUapsd,0,"0"
-HKR,,StaUapsd,0,"0"
-
-; For B/G mode and B/G/N mode switch, we will use different wireless mode registry in later section
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %IEEE_802_11BGN_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-
-;; For WiFi test, 1: WiFi Config and 0: Performance Config
-HKR,defaults,WiFiConfg,0,"0"
-HKR,,WiFiConfg,0,"0"
-
-HKR,defaults,RxReorder,0,"1"
-HKR,,RxReorder,0,"1"
-
-HKR,,DefaultKeyID,,"0"
-HKR,,DefaultKey0,,""
-HKR,,DefaultKey1,,""
-HKR,,DefaultKey2,,""
-HKR,,DefaultKey3,,""
-
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"0"
-HKR,,InactivePs,0,"0"
-
-;Leisure Power Save
-HKR,defaults,bLeisurePs,0,"2"
-HKR,,bLeisurePs,0,"2"
-
-;Fw Control LPS
-HKR,defaults,bFwCtrlLPS,0,"1"
-HKR,,bFwCtrlLPS,0,"1"
-
-;; LPS Interval
-;HKR,defaults,LPSIntvl,0,"3"
-HKR,,LPSIntvl,0,"3"
-
-HKR,,WEPinNmode,0,"0"
-
-HKR,defaults,RxSC,0,"0"
-HKR,,RxSC,0,"0"
-
-HKR,defaults,TxSC,0,"0"
-HKR,,TxSC,0,"0"
-
-HKR,defaults,NblRacingWA,0,"1"
-HKR,,NblRacingWA,0,"1"
-
-HKR,defaults,SuspendTimerInLowPwr,0,"1"
-HKR,,SuspendTimerInLowPwr,0,"1"
-
-;; Rx reorder pending time
-HKR,,RxReorder_PendTime,0,"100"
-
-;Antenna Diversity
-HKR,Ndi\params\AntDiv, ParamDesc, 0, "Antenna Diversity"
-HKR,Ndi\params\AntDiv, default, 0, "0"
-HKR,Ndi\params\AntDiv, type, 0, "enum"
-HKR,Ndi\params\AntDiv\enum, "0", 0, %DISABLED_STR%
-HKR,Ndi\params\AntDiv\enum, "1", 0, %ENABLED_STR%
-
-HKLM, SYSTEM\CurrentControlSet\Services\RtlWlans\Parameters, "BtAntennaInHw", 0x00010001,2
-
-[Ndis5Set.reg]
-HKR,Ndi\params\PSPXlinkMode, ParamDesc, 0, %PSP_XLINK_STR%
-HKR,Ndi\params\PSPXlinkMode, type, 0, "enum"
-HKR,Ndi\params\PSPXlinkMode, default, 0, "0"
-HKR,Ndi\params\PSPXlinkMode\enum, "0", 0, %DISABLE_STR%
-HKR,Ndi\params\PSPXlinkMode\enum, "1", 0, %ENABLE_STR%
-HKR,defaults,PSPXlinkMode,0,"0"
-HKR,,PSPXlinkMode,0,"0"
-
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"0"
-HKR,,InactivePs,0,"0"
-
-
-[Ndis6Set.reg]
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"2"
-HKR,,InactivePs,0,"2"
-
-
-;;----------------------------------------------------------------------------
-;; Wireless mode option parameters
-;;----------------------------------------------------------------------------
-[11nWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %IEEE_802_11BGN_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-;; 40MHz Support in 11n
-HKR,Ndi\params\BWSetting, ParamDesc, 0, "Bandwidth"
-HKR,Ndi\params\BWSetting, type, 0, "enum"
-HKR,Ndi\params\BWSetting, default, 0, "1"
-HKR,Ndi\params\BWSetting\enum, "0", 0, "20MHz Only"
-HKR,Ndi\params\BWSetting\enum, "1", 0, "20_40MHz"
-HKR,defaults,BWSetting,0,"1"
-HKR,,BWSetting,0,"1"
-HKR,,BWSetting,,"1"
-
-HKR,,Channel,0,"10"
-
-[11gWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,defaults,WirelessMode, 0, "4"
-HKR,,WirelessMode, 0, "4"
-
-HKR,,BWSetting,0,"0"
-
-HKR,,Channel,0,"10"
-
-[11acWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %AUTO_STR%
-HKR,Ndi\params\WirelessMode\enum, "1", 0, %IEEE_802_11A_STR%
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "16", 0, %IEEE_802_11BGN_STR%
-HKR,Ndi\params\WirelessMode\enum, "32", 0, %IEEE_802_11AN_STR%
-HKR,Ndi\params\WirelessMode\enum, "64", 0, %IEEE_802_11ANAC_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-HKR,,Channel,0,"36"
-
-;; RF Type
-HKR,,RFType,0,"15"
-
-
-HKR,defaults,BWSetting,0,"2"
-HKR,,BWSetting,0,"2"
-
-;;----------------------------------------------------------------------------
-;; LPS 32k Control Parameters
-;;----------------------------------------------------------------------------
-[32kEnable.reg]
-HKR,,bLowPowerEnable,0,"1"
-[32kDisable.reg]
-HKR,,bLowPowerEnable,0,"0"
-
-;-------------------------------------------------------------------------------
-; PnP pre-transition handling
-;-------------------------------------------------------------------------------
-[PnpPreTransOn.reg]
-HKR,,PreTransPnP,0,"1"
-[PnpPreTransOff.reg]
-HKR,,PreTransPnP,0,"0"
-
-;;----------------------------------------------------------------------------
-;; WOWLAN Control Parameters
-;;----------------------------------------------------------------------------
-[WowlanAllEnable.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-[WowlanDisable.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"0"
-HKR,,GTKOffloadEnable,0,"0"
-
-[WowlanAllEnableNoLPS.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-[WowlanEnableNoPatternMatch.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "0"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"0"
-
-[WowlanEnableNoLPSNoPatternMatch.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "0"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"0"
-
-[ConnectedStandbyEnable.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-HKR,,D2ListenIntvl,0,"4"
-HKR,,NSOffloadEnable,0,"1"
-HKR,,NLOEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "0"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"0"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-;; Packet coalescing should be enabled in WHCK test
-HKR,defaults,*PacketCoalescing,0,"0"
-HKR,,*PacketCoalescing,0,"0"
-
-;-------------------------------------------------------------------------------
-; Auto Channel Selection
-;-------------------------------------------------------------------------------
-[AutoChnlSelon.reg]
-HKR,,AutoChnlSel,0,"1"
-[AutoChnlSeloff.reg]
-HKR,,AutoChnlSel,0,"0"
-
-;;----------------------------------------------------------------------------
-;; RSSI to Grid Mode Parameters
-;;----------------------------------------------------------------------------
-[RSSI2GridRealMode.reg]
-HKR,,RSSI2GridMode,0,"1"
-[RSSI2GridMode_2.reg]
-HKR,,RSSI2GridMode,0,"2"
-[RSSI2GridMode_4.reg]
-HKR,,RSSI2GridMode,0,"4"
-
-;;----------------------------------------------------------------------------
-;; KFREE parameters
-;;----------------------------------------------------------------------------
-[KFREE_COMMON.reg]
-HKR,,RfKFreeEnable,0,"0"
-
-;*******************************************************************************
-; Customer reg section
-;*******************************************************************************
-[ScanType.reg]
-HKR,defaults,PassiveScan, 0, "0"
-HKR,,PassiveScan, 0, "0"
-
-;*******************************************************************************
-; Multi-Channel Concurrent section
-;*******************************************************************************
-[MCC.reg]
-HKR,Ndi\params\MultiChannelFcsMode, ParamDesc, 0, %MCC_STR%
-HKR,Ndi\params\MultiChannelFcsMode, type, 0, "enum"
-HKR,Ndi\params\MultiChannelFcsMode, default, 0, "0"
-HKR,Ndi\params\MultiChannelFcsMode\enum, "0", 0, %DISABLED_STR%
-HKR,Ndi\params\MultiChannelFcsMode\enum, "4", 0, %ENABLED_STR%
-HKR,defaults,MultiChannelFcsMode, 0, "0"
-HKR,,MultiChannelFcsMode, 0, "0"
-
-;*******************************************************************************
-; Destination Directory
-;*******************************************************************************
-[RTWlanS.CopyFiles]
-rtwlans.sys,,,2
-
-[DestinationDirs]
-DefaultDestDir = 11
-RTWlanS.CopyFiles = 12
-CIHVS.CopyFiles = 11
-RtlUI2.CopyFiles = 10
-
-;;****************************************************************************
-;; Source Files
-;;****************************************************************************
-[CIHVS.CopyFiles]
-Rtlihvs.dll,,,2
-
-[RegisterUIExt]
-11,,RtlExtUI.dll,1
-
-[RtlUI2.CopyFiles]
-RtlUI2.exe,,,2
-
-[SourceDisksFiles]
-rtwlans.sys = 1
-Rtlihvs.dll = 1
-
-[SourceDisksNames]
-1=%DISKNAME%,,,
-
-
-;*******************************************************************************
-; Strings
-;*******************************************************************************
-[Strings]
-SSID_STR = "SSID"
-CHANNEL_STR = "Channel"
-NETWORK_TYPE_STR = "Network Type"
-LED_CONTROL_STR = "LED Control"
-POWER_SAVE_STR = "Power Save Mode"
-WIFI_IBSS_STR = "IBSS Default 11b Mode"
-RATE_ADAPTIVE_STR = "Rate Adaptive"
-QOS_STR = "QoS"
-WiFiConfg_STR = "WiFiConfg"
-WMM_APSD = "WMM APSD"
-CCX_RM_STR = "CCX Radio Measurement"
-CCX_OFF_LINE_DUR_UP_LIMIT_STR = "CCX Max Off-Line Measurement (0: unlimited)"
-FORCE_PRIORITY_STR = "Forced Priority"
-HW_PARA_STR = "Init from HwParaFile"
-THREE_WIRE_MODE_STR = "Three Wire Programming Mode"
-BOARD_TYPE_STR = "Board Type"
-PROTECTION_MODE_STR = "Protection Mode"
-TPC_STR = "Transmit Power Control"
-TPC_POLARITY_STR = "TPC Polarity Select"
-HIGH_POWER_STR = "High Power Mechanism"
-INIT_GAIN_STR = "Initial Gain State"
-CW_MAX_MIN_STR = "Contention Window"
-PSP_XLINK_STR = "PSP XLink Mode"
-DISABLE_STR = "Disable"
-ENABLE_STR = "Enable"
-DISABLED_STR = "Disabled"
-ENABLED_STR = "Enabled"
-AUTO_STR = "Auto"
-AD_HOC_STR = "Ad Hoc"
-INFRASTRUCTURE_STR = "Infrastructure"
-AUTO_SELECT = "Auto select"
-WL_MODE_STR = "Wireless Mode"
-RX_REORDER_STR = "Rx Reorder"
-CAM_STR = "CAM"
-MAX_PSP_STR = "MAX_PSP"
-Fast_PSP_STR = "Fast_PSP"
-NO_AC_STR = "No AC (Disable)"
-ALL_AC_STR = "ALL AC"
-IEEE_802_11A_STR = "IEEE 802.11a"
-IEEE_802_11B_STR = "IEEE 802.11b"
-IEEE_802_11BG_STR = "IEEE 802.11b/g"
-IEEE_802_11BGN_STR = "IEEE 802.11b/g/n"
-IEEE_802_11AN_STR = "IEEE 802.11a/n"
-IEEE_802_11ANAC_STR = "IEEE 802.11a/n/ac"
-IEEE_802_11AC_STR = "IEEE 802.11 ac"
-WakeOnMagicPacket = "Wake on Magic Packet"
-WakeOnPattern = "Wake on Pattern Match"
-MCC_STR = "Multi-Channel Concurrent"
-
-;*******************************************************************************
-; manufacture description
-;*******************************************************************************
-Realtek = "Realtek Semiconductor Corp."
-
-
-;*******************************************************************************
-; Source disk name
-;*******************************************************************************
-DISKNAME = "Realtek Wireless LAN 802.11n SDIO Network Adapter Driver Disk"
-RtlWlans.DeviceDesc = "Realtek Wireless LAN 802.11n SDIO Network Adapter"
-RtlWlans.DeviceDesc.DispName = "Realtek Wireless LAN 802.11n SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8723as Device description
-;*******************************************************************************
-RTL8723as.DeviceDesc = "Realtek RTL8723AS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723as.DeviceDesc.DispName = "Realtek RTL8723AS Wireless LAN 802.11n SDIO Network Adapter"
-
-
-
-;*******************************************************************************
-; RTL8723bs Device description
-;*******************************************************************************
-RTL8723bs.DeviceDesc = "Realtek RTL8723BS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723bs.DeviceDesc.DispName = "Realtek RTL8723BS Wireless LAN 802.11n SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8814as Device description
-;*******************************************************************************
-RTL8814as.DeviceDesc = "Realtek RTL8814AS Wireless LAN 802.11ac SDIO Network Adapter"
-RTL8814as.DeviceDesc.DispName = "Realtek RTL8814AS Wireless LAN 802.11ac SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8188ES Device description
-;*******************************************************************************
-RTL8188es.DeviceDesc = "Realtek RTL8189ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-RTL8188es.DeviceDesc.DispName = "Realtek RTL8189ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-;*******************************************************************************
-; RTL8821as Device description
-;*******************************************************************************
-RTL8821as.DeviceDesc = "Realtek RTL8821AS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-RTL8821as.DeviceDesc.DispName = "Realtek RTL8821AS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-;*******************************************************************************
-; RTL8192E Device description
-;*******************************************************************************
-RTL8192es.DeviceDesc = "Realtek RTL8192ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-RTL8192es.DeviceDesc.DispName = "Realtek RTL8192ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-
-;*******************************************************************************
-; RTL8703bs Device description
-;*******************************************************************************
-RTL8703bs.DeviceDesc = "Realtek RTL8703BS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8703bs.DeviceDesc.DispName = "Realtek RTL8703BS Wireless LAN 802.11n SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8188Fs Device description
-;*******************************************************************************
-RTL8188fs.DeviceDesc = "Realtek RTL8189FTV Wireless LAN 802.11n SDIO Network Adapter"
-RTL8188fs.DeviceDesc.DispName = "Realtek RTL8189FTV Wireless LAN 802.11n SDIO Network Adapter"
-;*******************************************************************************
-; RTL8822bs Device description
-;*******************************************************************************
-RTL8822bs.DeviceDesc = "Realtek RTL8822BS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-RTL8822bs.DeviceDesc.DispName = "Realtek RTL8822BS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-
-;*******************************************************************************
-; RTL8723ds Device description
-;*******************************************************************************
-RTL8723ds.DeviceDesc = "Realtek RTL8723DS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723ds.DeviceDesc.DispName = "Realtek RTL8723DS Wireless LAN 802.11n SDIO Network Adapter"
diff --git a/network/wlan/WDI/PLATFORM/WinInf/SDIO/netrtwlans.inf b/network/wlan/WDI/PLATFORM/WinInf/SDIO/netrtwlans.inf
deleted file mode 100644
index 59166e9e..00000000
--- a/network/wlan/WDI/PLATFORM/WinInf/SDIO/netrtwlans.inf
+++ /dev/null
@@ -1,2711 +0,0 @@
-;; netrtwlans.inf
-;;
-;; Realtek Wireless 802.11b/g/n SDIO Network Adapter
-;;
-;; Copyright (C) 2012 Realtek Semiconductor Corp.
-;;
-;; This release is primarily for WHQL test.
-;;
-
-;; FOR XP/Vista/Win7/Win8
-
-[Version]
-Signature = "$Windows NT$"
-Class = Net
-ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
-Provider = %Realtek%
-CatalogFile.NT = netrtwlans.cat ;; for WHQL certified
-DriverVer = 10/30/2015,3008.22.1030.2015
-
-[Manufacturer]
-%Realtek% = Realtek, NTx86, NTamd64, NTx86.6.0, NTamd64.6.0, NTx86.6.1, NTamd64.6.1, NTx86.6.2, NTamd64.6.2, NTx86.6.3, NTamd64.6.3, NTx86.10.0, NTamd64.10.0, NTArm.10.0
-
-[ControlFlags]
-ExcludeFromSelect = *
-
-;; ## Manufacturer [Realtek]
-;; $$ ICtype 8723A Start
-;; For 8723 RTK common ================================================================
-;; $$ ICtype 8723A End
-
-;; $$ ICtype 8723B Start
-;; For 8723 RTK common ================================================================
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_8753
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_B723
-;; Acer
-%RTL8723bs.DeviceDesc% = ACER8723bs.ndi, SD\VID_024C&PID_0623
-;; HP
-%RTL8723bs.DeviceDesc% = HP8723bs.ndi, SD\VID_024C&PID_0523
-;; ECS
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0524
-;; bestbuy
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0240
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0241
-;; For Braswell platform
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0626
-;; Reserved
-%RTL8723bs.DeviceDesc% = RSVD8723bs.ndi, SD\VID_024C&PID_0624
-;; $$ ICtype 8723B End
-
-;; $$ ICtype 8188E Start
-;; For 8188E RTK common ================================================================
-%RTL8188es.DeviceDesc% = RTL8188es.ndi, SD\VID_024C&PID_8188
-%RTL8188es.DeviceDesc% = RTL8188es.ndi, SD\VID_024C&PID_8179
-;; $$ ICtype 8188E End
-
-;; $$ ICtype 8812A Start
-;; For 8812A RTK common ================================================================
-;; $$ ICtype 8812A End
-
-;; $$ ICtype 8814A Start
-;; For 8814A RTK common ================================================================
-%RTL8814as.DeviceDesc% = RTL8814as.ndi, SD\VID_024C&PID_8813
-;; $$ ICtype 8814A End
-
-;; $$ ICtype 8821A Start
-;; For 8821A RTK common ================================================================
-%RTL8821as.DeviceDesc% = RTL8821as.ndi, SD\VID_024C&PID_8821
-;; $$ ICtype 8821A End
-
-;; $$ ICtype 8192E Start
-;; For 8192ES RTK common ================================================================
-%RTL8192es.DeviceDesc% = RTL8192es.ndi, SD\VID_024C&PID_818B
-;; $$ ICtype 8192E End
-
-
-;; $$ ICtype 8703B Start
-;; For 8703 RTK common ================================================================
-%RTL8703bs.DeviceDesc% = RTL8703bs.ndi, SD\VID_024C&PID_B703
-;; $$ ICtype 8703B End
-
-;; $$ ICtype 8188F Start
-;; For 8188 RTK common ================================================================
-%RTL8188fs.DeviceDesc% = RTL8188fs.ndi, SD\VID_024C&PID_F179
-;; $$ ICtype 8188F End
-
-;; $$ ICtype 8822B Start
-;; For 8822B RTK common ================================================================
-%RTL8822bs.DeviceDesc% = RTL8822bs.ndi, SD\VID_024C&PID_B822
-;; $$ ICtype 8822B End
-
-;; $$ ICtype 8723D Start
-;; For 8723D RTK common ================================================================
-%RTL8723ds.DeviceDesc% = RTL8723ds.ndi, SD\VID_024C&PID_D723
-;; $$ ICtype 8723D End
-
-;; $$ ICtype 8723A Start
-;;----------------------------------------------------------------------------
-;; Realtek 8723as default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8723as_os51.ndi.NT]
-AddReg = NDIS_51.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis5Set.reg, 11nWirelessMode.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8723as_os51.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8723as_os60.ndi.NT]
-AddReg = NDIS_60.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723as_os60.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8723as_os61.ndi.NT]
-AddReg = NDIS_61.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723as_os61.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723as_os61.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8723as_os62.ndi.NT]
-AddReg = NDIS_62.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723as_os62.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723as_os62.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8723as_os63.ndi.NT]
-AddReg = NDIS_63.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723as_os63.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723as_os63.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8723as_os64.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723as_os64.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723as_os64.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8723A End
-
-;; $$ ICtype 8723B Start
-;;----------------------------------------------------------------------------
-;; Realtek 8723bs default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_51.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis5Set.reg, 11nWirelessMode.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_60.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-;; $$ FeatureType WAPI Start
-AddReg = wapi.reg
-RegisterDlls = RegisterUIExt
-CopyFiles = CIHVS.CopyFiles
-;; $$ FeatureType WAPI End
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_61.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-;; $$ FeatureType WAPI Start
-AddReg = wapi.reg
-RegisterDlls = RegisterUIExt
-CopyFiles = CIHVS.CopyFiles
-;; $$ FeatureType WAPI End
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_62.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, MCC.reg
-;; $$ FeatureType WAPI Start
-AddReg = wapi.reg
-RegisterDlls = RegisterUIExt
-CopyFiles = CIHVS.CopyFiles
-;; $$ FeatureType WAPI End
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_63.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, MCC.reg
-;; $$ FeatureType WAPI Start
-AddReg = wapi.reg
-RegisterDlls = RegisterUIExt
-CopyFiles = CIHVS.CopyFiles
-;; $$ FeatureType WAPI End
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, MCC.reg
-;; $$ FeatureType WAPI Start
-AddReg = wapi.reg
-RegisterDlls = RegisterUIExt
-CopyFiles = CIHVS.CopyFiles
-;; $$ FeatureType WAPI End
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-;;----------------------------------------------------------------------------
-;; Acer 8723bs installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_51.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis5Set.reg, 11nWirelessMode.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[ACER8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_60.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[ACER8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_61.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg, RSSI2GridMode_2.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[ACER8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[ACER8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_62.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, RSSI2GridMode_2.reg, MCC.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[ACER8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[ACER8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_63.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, RSSI2GridMode_2.reg, MCC.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[ACER8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[ACER8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, RSSI2GridMode_2.reg, MCC.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[ACER8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[ACER8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-;;----------------------------------------------------------------------------
-;; HP 8723bs installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[HP8723bs.ndi.NT]
-AddReg = NDIS_51.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis5Set.reg, 11nWirelessMode.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[HP8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[HP8723bs.ndi.NT]
-AddReg = NDIS_60.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[HP8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[HP8723bs.ndi.NT]
-AddReg = NDIS_61.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[HP8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[HP8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[HP8723bs.ndi.NT]
-AddReg = NDIS_62.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[HP8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[HP8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[HP8723bs.ndi.NT]
-AddReg = NDIS_63.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[HP8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[HP8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[HP8723bs.ndi.NT]
-AddReg = NDIS_64.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[HP8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[HP8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8723B End
-
-;;----------------------------------------------------------------------------
-;; RSVD 8723bs installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_51.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis5Set.reg, 11nWirelessMode.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RSVD8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_60.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RSVD8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_61.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RSVD8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RSVD8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_62.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, WowlanDisable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RSVD8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RSVD8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_63.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, WowlanDisable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RSVD8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RSVD8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, WowlanDisable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RSVD8723bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RSVD8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8723B End
-
-;; $$ ICtype 8188E Start
-;;----------------------------------------------------------------------------
-;; Realtek 8188eu default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8188es_os51.ndi.NT]
-AddReg = NDIS_51.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis5Set.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8188es_os51.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8188es_os60.ndi.NT]
-AddReg = NDIS_60.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg, ConnectedStandbyEnable.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188es_os60.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8188es_os61.ndi.NT]
-AddReg = NDIS_61.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg, ConnectedStandbyEnable.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188es_os61.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188es_os61.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8188es_os62.ndi.NT]
-AddReg = NDIS_62.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg, ConnectedStandbyEnable.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188es_os62.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188es_os62.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8188es_os63.ndi.NT]
-AddReg = NDIS_63.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188es_os63.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188es_os63.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8188es_os64.ndi.NT]
-AddReg = NDIS_64.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188es_os64.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188es_os64.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8188E End
-
-;; $$ ICtype 8821A Start
-;;----------------------------------------------------------------------------
-;; Realtek 8821as default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8821as_os51.ndi.NT]
-AddReg = NDIS_51.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis5Set.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8821as_os51.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8821as_os60.ndi.NT]
-AddReg = NDIS_60.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8821as_os60.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8821as_os61.ndi.NT]
-AddReg = NDIS_61.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8821as_os61.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8821as_os61.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8821as_os62.ndi.NT]
-AddReg = NDIS_62.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8821as_os62.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8821as_os62.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8821as_os63.ndi.NT]
-AddReg = NDIS_63.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8821as_os63.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8821as_os63.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8821as_os64.ndi.NT]
-AddReg = NDIS_64.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8821as_os64.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8821as_os64.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8821A End
-
-;; $$ ICtype 8814A Start
-;;----------------------------------------------------------------------------
-;; Realtek 8814as default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8814as_os51.ndi.NT]
-AddReg = NDIS_51.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis5Set.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8814as_os51.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8814as_os60.ndi.NT]
-AddReg = NDIS_60.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8814as_os60.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8814as_os61.ndi.NT]
-AddReg = NDIS_61.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8814as_os61.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8814as_os61.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8814as_os62.ndi.NT]
-AddReg = NDIS_62.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8814as_os62.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8814as_os62.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8814as_os63.ndi.NT]
-AddReg = NDIS_63.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8814as_os63.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8814as_os63.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8814as_os64.ndi.NT]
-AddReg = NDIS_64.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8814as_os64.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8814as_os64.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8814A End
-
-;; $$ ICtype 8192E Start
-;;----------------------------------------------------------------------------
-;; Realtek 8192es default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8192es_os51.ndi.NT]
-AddReg = NDIS_51.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis5Set.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8192es_os51.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8192es_os60.ndi.NT]
-AddReg = NDIS_60.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8192es_os60.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8192es_os61.ndi.NT]
-AddReg = NDIS_61.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8192es_os61.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8192es_os61.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8192es_os62.ndi.NT]
-AddReg = NDIS_62.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8192es_os62.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8192es_os62.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8192es_os63.ndi.NT]
-AddReg = NDIS_63.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8192es_os63.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8192es_os63.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8192es_os64.ndi.NT]
-AddReg = NDIS_64.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8192es_os64.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8192es_os64.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8192E End
-
-;; $$ ICtype 8703B Start
-;;----------------------------------------------------------------------------
-;; Realtek 8703bs default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_51.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis5Set.reg, 11nWirelessMode.reg, WowlanAllEnable.reg, KFREE_COMMON.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8703bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_60.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, WowlanAllEnable.reg, KFREE_COMMON.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8703bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_61.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, WowlanAllEnable.reg, KFREE_COMMON.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8703bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8703bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_62.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, KFREE_COMMON.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8703bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8703bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_63.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, KFREE_COMMON.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8703bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8703bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, KFREE_COMMON.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8703bs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8703bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8703B End
-
-;; $$ ICtype 8188F Start
-;;----------------------------------------------------------------------------
-;; Realtek 8188fs default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_51.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis5Set.reg, 11nWirelessMode.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8188fs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_60.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188fs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_61.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188fs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188fs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_62.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188fs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188fs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_63.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188fs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188fs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188fs.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188fs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8188F End
-;; $$ ICtype 8822B Start
-;;----------------------------------------------------------------------------
-;; Realtek 8822bs default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8822bs_os51.ndi.NT]
-AddReg = NDIS_51.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis5Set.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8822bs_os51.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8822bs_os60.ndi.NT]
-AddReg = NDIS_60.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8822bs_os60.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8822bs_os61.ndi.NT]
-AddReg = NDIS_61.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8822bs_os61.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8822bs_os61.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8822bs_os62.ndi.NT]
-AddReg = NDIS_62.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8822bs_os62.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8822bs_os62.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8822bs_os63.ndi.NT]
-AddReg = NDIS_63.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8822bs_os63.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8822bs_os63.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8822bs_os64.ndi.NT]
-AddReg = NDIS_64.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8822bs_os64.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8822bs_os64.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8822B End
-
-;; $$ ICtype 8723D Start
-;;----------------------------------------------------------------------------
-;; Realtek 8723ds default installation
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[RTL8723ds_os51.ndi.NT]
-AddReg = NDIS_51.reg, RTL8723ds.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis5Set.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-
-[RTL8723ds_os51.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os51 End
-
-;; ** Section for os60 Start
-[RTL8723ds_os60.ndi.NT]
-AddReg = NDIS_60.reg, RTL8723ds.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723ds_os60.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-;; ** Section for os60 End
-
-;; ** Section for os61 Start
-[RTL8723ds_os61.ndi.NT]
-AddReg = NDIS_61.reg, RTL8723ds.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723ds_os61.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723ds_os61.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os61 End
-
-;; ** Section for os62 Start
-[RTL8723ds_os62.ndi.NT]
-AddReg = NDIS_62.reg, RTL8723ds.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723ds_os62.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723ds_os62.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os62 End
-
-;; ** Section for os63 Start
-[RTL8723ds.ndi.NT]
-AddReg = NDIS_63.reg, RTL8723ds.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723ds.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723ds.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os63 End
-
-;; ** Section for os64 Start
-[RTL8723ds.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723ds.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723ds.ndi.NT.Services]
-;; $$ AddServiceName Start
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-;; $$ AddServiceName End
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723ds.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;; ** Section for os64 End
-
-;; $$ ICtype 8723D End
-;;----------------------------------------------------------------------------
-;; OS relative registry.
-;;----------------------------------------------------------------------------
-;; ** Section for os51 Start
-[NDIS_51.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
-HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
-;; $$ ServiceName Start
-HKR, Ndi, Service, 0, "RtlWlans"
-;; $$ ServiceName End
-;; ** Section for os51 End
-;; ** Section for os60 Start
-[NDIS_60.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5,mdcwifi"
-HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet"
-;; $$ ServiceName Start
-HKR, Ndi, Service, 0, "RtlWlans"
-;; $$ ServiceName End
-;; ** Section for os60 End
-;; ** Section for os61 Start
-[NDIS_61.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5,mdcwifi"
-HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet,vwifi"
-;; $$ ServiceName Start
-HKR, Ndi, Service, 0, "RtlWlans"
-;; $$ ServiceName End
-;; ** Section for os61 End
-;; ** Section for os62 Start
-[NDIS_62.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5,mdcwifi"
-HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet,vwifi"
-;; $$ ServiceName Start
-HKR, Ndi, Service, 0, "RtlWlans"
-;; $$ ServiceName End
-;; ** Section for os62 End
-;; ** Section for os63 Start
-[NDIS_63.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5,mdcwifi"
-HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet,vwifi"
-;; $$ ServiceName Start
-HKR, Ndi, Service, 0, "RtlWlans"
-;; $$ ServiceName End
-;; ** Section for os63 End
-;; ** Section for os64 Start
-[NDIS_64.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5,mdcwifi"
-HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet,vwifi"
-;; $$ ServiceName Start
-HKR, Ndi, Service, 0, "RtlWlans"
-;; $$ ServiceName End
-;; ** Section for os64 End
-;;
-;; OS relative service.
-;;
-[RtlWlans.Service]
-DisplayName = %RtlWlans.DeviceDesc.DispName%
-ServiceType = 1 ; %SERVICE_KERNEL_DRIVER%
-StartType = 3 ; %SERRVICE_DEMAND_START%
-ErrorControl = 1 ; %SERRVICE_ERROR_NORMAL%
-;; $$ DriverName Start
-ServiceBinary = %12%\rtwlans.sys
-;; $$ DriverName End
-LoadOrderGroup = NDIS
-
-;;
-;; OS relative event log.
-;;
-[RtlWlans.EventLog]
-AddReg = RtlWlans.AddEventLog.reg
-
-[RtlWlans.AddEventLog.reg]
-HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
-HKR, , TypesSupported , 0x00010001, 7
-
-[CIHVS.reg]
-HKR, Ndi\IHVExtensions, ExtensibilityDLL, 0, "%SystemRoot%\system32\Rtlihvs.dll"
-HKR, Ndi\IHVExtensions, UIExtensibilityCLSID, 0, "{6C2A8CCA-B2A2-4d81-A3B2-4E15F445C312}"
-HKR, Ndi\IHVExtensions, GroupName, 0, "Realtek CCX SDK IHV Service"
-HKR, Ndi\IHVExtensions, AdapterOUI, 0x00010001, 0x00e04c
-
-;*******************************************************************************
-; WAPI section
-;*******************************************************************************
-[wapi.reg]
-HKR,defaults,WapiSupport,0,"1"
-HKR,,WapiSupport,0,"1"
-
-;; $$ ICtype 8723A Start
-;*******************************************************************************
-; RTL8723as common paramters
-;*******************************************************************************
-[RTL8723as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-;; $$ ICtype 8723A End
-
-;; $$ ICtype 8723B Start
-;*******************************************************************************
-; RTL8723bs common paramters
-;*******************************************************************************
-[RTL8723bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-;;HKR,defaults,EnableAdaptivity,0,"0"
-;;HKR,,EnableAdaptivity,0,"0"
-
-HKR,defaults,EnableCarrierSense,0,"0"
-HKR,,EnableCarrierSense,0,"0"
-
-; AOAC reconnect
-HKR,defaults,PnpKeepLink,0,"1"
-HKR,,PnpKeepLink,0,"1"
-
-;; $$ End of RTL8723bs.common.reg
-
-[HP8723bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-; Enable Adaptivity
-;;HKR,defaults,EnableAdaptivity,0,"1"
-;;HKR,,EnableAdaptivity,0,"1"
-
-HKR,defaults,EnableCarrierSense,0,"0"
-HKR,,EnableCarrierSense,0,"0"
-
-; Enable Customeized PowerLimit Table
-HKR,,EnableTxPowerLimit,0,"1"
-HKR,,DecryptCustomFile,,"1"
-HKR,,PwrLimitFile,0,"TXPWR_LMT_IEC0921_Enc.txt"
-
-; Regulation WorldWide
-HKR,defaults,PwrTblSel,0,"4"
-HKR,,PwrTblSel,0,"4"
-
-; AOAC reconnect
-HKR,defaults,PnpKeepLink,0,"1"
-HKR,,PnpKeepLink,0,"1"
-
-;; $$ End of HP8723bs.common.reg
-;; $$ ICtype 8723B End
-
-;; $$ ICtype 8703B Start
-;*******************************************************************************
-; RTL8703bs common paramters
-;*******************************************************************************
-[RTL8703bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-;; $$ ICtype 8703B End
-
-;; $$ ICtype 8188F Start
-;*******************************************************************************
-; RTL8188Fs common paramters
-;*******************************************************************************
-[RTL8188fs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"0"
-HKR,,RomDLFwEnable,0,"0"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-;; $$ ICtype 8703B End
-
-;; $$ ICtype 8821A Start
-;*******************************************************************************
-; RTL8821as common paramters
-;*******************************************************************************
-[RTL8821as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-
-;; $$ ICtype 8821A End
-
-;; $$ ICtype 8814A Start
-;*******************************************************************************
-; RTL8814as common paramters
-;*******************************************************************************
-[RTL8814as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-;; Add for 8814AS, based on 8821AS's modification
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-
-;; $$ ICtype 8814A End
-
-;; $$ ICtype 8192E Start
-;*******************************************************************************
-; RTL8192es common paramters
-;*******************************************************************************
-[RTL8192es.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-;; $$ ICtype 8192E End
-
-;; $$ ICtype 8822B Start
-;*******************************************************************************
-; RTL8822bs common paramters
-;*******************************************************************************
-[RTL8822bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-HKR,,ValidRFPath,0,"51"
-HKR,,PreInitMem,0,"1"
-
-;; $$ ICtype 8822B End
-
-;; $$ ICtype 8723D Start
-;*******************************************************************************
-; RTL8723ds common paramters
-;*******************************************************************************
-[RTL8723ds.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,defaults,LdpcCap,0,"0"
-
-;; $$ ICtype 8723D End
-
-;;----------------------------------------------------------------------------
-;; Realtek WLAN NIC parameters
-;;----------------------------------------------------------------------------
-[RTLWLAN.reg]
-
-; Enable Adaptivity
-HKR,,EnableAdaptivity,0,"1"
-
-HKR,defaults,Channel,0,"1"
-HKR,,Channel,0,"1"
-
-;; Antenna Diversity Type
-HKR,defaults,AntennaDivType,0,"0"
-HKR,,AntennaDivType,0,"0"
-
-HKR,defaults,NetworkType,0,"1"
-HKR,,NetworkType,0,"1"
-
-HKR,defaults,StaUapsd,0,"0"
-HKR,,StaUapsd,0,"0"
-
-; For B/G mode and B/G/N mode switch, we will use different wireless mode registry in later section
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %IEEE_802_11BGN_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-
-;; For WiFi test, 1: WiFi Config and 0: Performance Config
-HKR,defaults,WiFiConfg,0,"0"
-HKR,,WiFiConfg,0,"0"
-
-HKR,defaults,RxReorder,0,"1"
-HKR,,RxReorder,0,"1"
-
-HKR,,DefaultKeyID,,"0"
-HKR,,DefaultKey0,,""
-HKR,,DefaultKey1,,""
-HKR,,DefaultKey2,,""
-HKR,,DefaultKey3,,""
-
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"0"
-HKR,,InactivePs,0,"0"
-
-;Leisure Power Save
-HKR,defaults,bLeisurePs,0,"2"
-HKR,,bLeisurePs,0,"2"
-
-;Fw Control LPS
-HKR,defaults,bFwCtrlLPS,0,"1"
-HKR,,bFwCtrlLPS,0,"1"
-
-;; LPS Interval
-;HKR,defaults,LPSIntvl,0,"3"
-HKR,,LPSIntvl,0,"3"
-
-HKR,,WEPinNmode,0,"0"
-
-HKR,defaults,RxSC,0,"0"
-HKR,,RxSC,0,"0"
-
-HKR,defaults,TxSC,0,"0"
-HKR,,TxSC,0,"0"
-
-HKR,defaults,NblRacingWA,0,"1"
-HKR,,NblRacingWA,0,"1"
-
-HKR,defaults,SuspendTimerInLowPwr,0,"1"
-HKR,,SuspendTimerInLowPwr,0,"1"
-
-;; Rx reorder pending time
-HKR,,RxReorder_PendTime,0,"100"
-
-;Antenna Diversity
-HKR,Ndi\params\AntDiv, ParamDesc, 0, "Antenna Diversity"
-HKR,Ndi\params\AntDiv, default, 0, "0"
-HKR,Ndi\params\AntDiv, type, 0, "enum"
-HKR,Ndi\params\AntDiv\enum, "0", 0, %DISABLED_STR%
-HKR,Ndi\params\AntDiv\enum, "1", 0, %ENABLED_STR%
-
-HKLM, SYSTEM\CurrentControlSet\Services\RtlWlans\Parameters, "BtAntennaInHw", 0x00010001,2
-
-[Ndis5Set.reg]
-HKR,Ndi\params\PSPXlinkMode, ParamDesc, 0, %PSP_XLINK_STR%
-HKR,Ndi\params\PSPXlinkMode, type, 0, "enum"
-HKR,Ndi\params\PSPXlinkMode, default, 0, "0"
-HKR,Ndi\params\PSPXlinkMode\enum, "0", 0, %DISABLE_STR%
-HKR,Ndi\params\PSPXlinkMode\enum, "1", 0, %ENABLE_STR%
-HKR,defaults,PSPXlinkMode,0,"0"
-HKR,,PSPXlinkMode,0,"0"
-
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"0"
-HKR,,InactivePs,0,"0"
-
-
-[Ndis6Set.reg]
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"2"
-HKR,,InactivePs,0,"2"
-
-
-;;----------------------------------------------------------------------------
-;; Wireless mode option parameters
-;;----------------------------------------------------------------------------
-[11nWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %IEEE_802_11BGN_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-;; 40MHz Support in 11n
-HKR,Ndi\params\BWSetting, ParamDesc, 0, "Bandwidth"
-HKR,Ndi\params\BWSetting, type, 0, "enum"
-HKR,Ndi\params\BWSetting, default, 0, "1"
-HKR,Ndi\params\BWSetting\enum, "0", 0, "20MHz Only"
-HKR,Ndi\params\BWSetting\enum, "1", 0, "20_40MHz"
-HKR,defaults,BWSetting,0,"1"
-HKR,,BWSetting,0,"1"
-HKR,,BWSetting,,"1"
-
-HKR,,Channel,0,"10"
-
-[11gWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,defaults,WirelessMode, 0, "4"
-HKR,,WirelessMode, 0, "4"
-
-HKR,,BWSetting,0,"0"
-
-HKR,,Channel,0,"10"
-
-[11acWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %AUTO_STR%
-HKR,Ndi\params\WirelessMode\enum, "1", 0, %IEEE_802_11A_STR%
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "16", 0, %IEEE_802_11BGN_STR%
-HKR,Ndi\params\WirelessMode\enum, "32", 0, %IEEE_802_11AN_STR%
-HKR,Ndi\params\WirelessMode\enum, "64", 0, %IEEE_802_11ANAC_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-HKR,,Channel,0,"36"
-
-;; RF Type
-HKR,,RFType,0,"15"
-
-
-HKR,defaults,BWSetting,0,"2"
-HKR,,BWSetting,0,"2"
-
-;;----------------------------------------------------------------------------
-;; LPS 32k Control Parameters
-;;----------------------------------------------------------------------------
-[32kEnable.reg]
-HKR,,bLowPowerEnable,0,"1"
-[32kDisable.reg]
-HKR,,bLowPowerEnable,0,"0"
-
-;-------------------------------------------------------------------------------
-; PnP pre-transition handling
-;-------------------------------------------------------------------------------
-[PnpPreTransOn.reg]
-HKR,,PreTransPnP,0,"1"
-[PnpPreTransOff.reg]
-HKR,,PreTransPnP,0,"0"
-
-;;----------------------------------------------------------------------------
-;; WOWLAN Control Parameters
-;;----------------------------------------------------------------------------
-[WowlanAllEnable.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-[WowlanDisable.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"0"
-HKR,,GTKOffloadEnable,0,"0"
-
-[WowlanAllEnableNoLPS.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-[WowlanEnableNoPatternMatch.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "0"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"0"
-
-[WowlanEnableNoLPSNoPatternMatch.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "0"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"0"
-
-[ConnectedStandbyEnable.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-HKR,,D2ListenIntvl,0,"4"
-HKR,,NSOffloadEnable,0,"1"
-HKR,,NLOEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "0"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"0"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-;; Packet coalescing should be enabled in WHCK test
-HKR,defaults,*PacketCoalescing,0,"0"
-HKR,,*PacketCoalescing,0,"0"
-
-;-------------------------------------------------------------------------------
-; Auto Channel Selection
-;-------------------------------------------------------------------------------
-[AutoChnlSelon.reg]
-HKR,,AutoChnlSel,0,"1"
-[AutoChnlSeloff.reg]
-HKR,,AutoChnlSel,0,"0"
-
-;;----------------------------------------------------------------------------
-;; RSSI to Grid Mode Parameters
-;;----------------------------------------------------------------------------
-[RSSI2GridRealMode.reg]
-HKR,,RSSI2GridMode,0,"1"
-[RSSI2GridMode_2.reg]
-HKR,,RSSI2GridMode,0,"2"
-[RSSI2GridMode_4.reg]
-HKR,,RSSI2GridMode,0,"4"
-
-;;----------------------------------------------------------------------------
-;; KFREE parameters
-;;----------------------------------------------------------------------------
-[KFREE_COMMON.reg]
-HKR,,RfKFreeEnable,0,"0"
-
-;*******************************************************************************
-; Customer reg section
-;*******************************************************************************
-[ScanType.reg]
-HKR,defaults,PassiveScan, 0, "0"
-HKR,,PassiveScan, 0, "0"
-
-;*******************************************************************************
-; Multi-Channel Concurrent section
-;*******************************************************************************
-[MCC.reg]
-HKR,Ndi\params\MultiChannelFcsMode, ParamDesc, 0, %MCC_STR%
-HKR,Ndi\params\MultiChannelFcsMode, type, 0, "enum"
-HKR,Ndi\params\MultiChannelFcsMode, default, 0, "0"
-HKR,Ndi\params\MultiChannelFcsMode\enum, "0", 0, %DISABLED_STR%
-HKR,Ndi\params\MultiChannelFcsMode\enum, "4", 0, %ENABLED_STR%
-HKR,defaults,MultiChannelFcsMode, 0, "0"
-HKR,,MultiChannelFcsMode, 0, "0"
-
-;*******************************************************************************
-; Destination Directory
-;*******************************************************************************
-[RTWlanS.CopyFiles]
-;; $$ DriverName Start
-rtwlans.sys,,,2
-;; $$ DriverName End
-
-[DestinationDirs]
-DefaultDestDir = 11
-RTWlanS.CopyFiles = 12
-CIHVS.CopyFiles = 11
-RtlUI2.CopyFiles = 10
-
-;;****************************************************************************
-;; Source Files
-;;****************************************************************************
-[CIHVS.CopyFiles]
-Rtlihvs.dll,,,2
-;; $$ FeatureType WAPI Start
-RtlExtUI.dll,,,2
-;; $$ FeatureType WAPI End
-
-[RegisterUIExt]
-11,,RtlExtUI.dll,1
-
-[RtlUI2.CopyFiles]
-RtlUI2.exe,,,2
-
-[SourceDisksFiles]
-;; $$ DriverName Start
-rtwlans.sys = 1
-Rtlihvs.dll = 1
-;; $$ DriverName End
-;; $$ FeatureType WAPI Start
-RtlExtUI.dll = 1
-;; $$ FeatureType WAPI End
-
-[SourceDisksNames]
-1=%DISKNAME%,,,
-
-
-;*******************************************************************************
-; Strings
-;*******************************************************************************
-[Strings]
-SSID_STR = "SSID"
-CHANNEL_STR = "Channel"
-NETWORK_TYPE_STR = "Network Type"
-LED_CONTROL_STR = "LED Control"
-POWER_SAVE_STR = "Power Save Mode"
-WIFI_IBSS_STR = "IBSS Default 11b Mode"
-RATE_ADAPTIVE_STR = "Rate Adaptive"
-QOS_STR = "QoS"
-WiFiConfg_STR = "WiFiConfg"
-WMM_APSD = "WMM APSD"
-CCX_RM_STR = "CCX Radio Measurement"
-CCX_OFF_LINE_DUR_UP_LIMIT_STR = "CCX Max Off-Line Measurement (0: unlimited)"
-FORCE_PRIORITY_STR = "Forced Priority"
-HW_PARA_STR = "Init from HwParaFile"
-THREE_WIRE_MODE_STR = "Three Wire Programming Mode"
-BOARD_TYPE_STR = "Board Type"
-PROTECTION_MODE_STR = "Protection Mode"
-TPC_STR = "Transmit Power Control"
-TPC_POLARITY_STR = "TPC Polarity Select"
-HIGH_POWER_STR = "High Power Mechanism"
-INIT_GAIN_STR = "Initial Gain State"
-CW_MAX_MIN_STR = "Contention Window"
-PSP_XLINK_STR = "PSP XLink Mode"
-DISABLE_STR = "Disable"
-ENABLE_STR = "Enable"
-DISABLED_STR = "Disabled"
-ENABLED_STR = "Enabled"
-AUTO_STR = "Auto"
-AD_HOC_STR = "Ad Hoc"
-INFRASTRUCTURE_STR = "Infrastructure"
-AUTO_SELECT = "Auto select"
-WL_MODE_STR = "Wireless Mode"
-RX_REORDER_STR = "Rx Reorder"
-CAM_STR = "CAM"
-MAX_PSP_STR = "MAX_PSP"
-Fast_PSP_STR = "Fast_PSP"
-NO_AC_STR = "No AC (Disable)"
-ALL_AC_STR = "ALL AC"
-IEEE_802_11A_STR = "IEEE 802.11a"
-IEEE_802_11B_STR = "IEEE 802.11b"
-IEEE_802_11BG_STR = "IEEE 802.11b/g"
-IEEE_802_11BGN_STR = "IEEE 802.11b/g/n"
-IEEE_802_11AN_STR = "IEEE 802.11a/n"
-IEEE_802_11ANAC_STR = "IEEE 802.11a/n/ac"
-IEEE_802_11AC_STR = "IEEE 802.11 ac"
-WakeOnMagicPacket = "Wake on Magic Packet"
-WakeOnPattern = "Wake on Pattern Match"
-MCC_STR = "Multi-Channel Concurrent"
-
-;*******************************************************************************
-; manufacture description
-;*******************************************************************************
-Realtek = "Realtek Semiconductor Corp."
-
-
-;*******************************************************************************
-; Source disk name
-;*******************************************************************************
-;; $$ CDISKNAME Start
-DISKNAME = "Realtek Wireless LAN 802.11n SDIO Network Adapter Driver Disk"
-RtlWlans.DeviceDesc = "Realtek Wireless LAN 802.11n SDIO Network Adapter"
-RtlWlans.DeviceDesc.DispName = "Realtek Wireless LAN 802.11n SDIO Network Adapter"
-;; $$ CDISKNAME End
-
-;; $$ ICtype 8723A Start
-;*******************************************************************************
-; RTL8723as Device description
-;*******************************************************************************
-RTL8723as.DeviceDesc = "Realtek RTL8723AS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723as.DeviceDesc.DispName = "Realtek RTL8723AS Wireless LAN 802.11n SDIO Network Adapter"
-;; $$ ICtype 8723A End
-
-
-
-;; $$ ICtype 8723B Start
-;*******************************************************************************
-; RTL8723bs Device description
-;*******************************************************************************
-RTL8723bs.DeviceDesc = "Realtek RTL8723BS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723bs.DeviceDesc.DispName = "Realtek RTL8723BS Wireless LAN 802.11n SDIO Network Adapter"
-;; $$ ICtype 8723B End
-
-;; $$ ICtype 8814A Start
-;*******************************************************************************
-; RTL8814as Device description
-;*******************************************************************************
-RTL8814as.DeviceDesc = "Realtek RTL8814AS Wireless LAN 802.11ac SDIO Network Adapter"
-RTL8814as.DeviceDesc.DispName = "Realtek RTL8814AS Wireless LAN 802.11ac SDIO Network Adapter"
-;; $$ ICtype 8814A End
-
-;; $$ ICtype 8188E Start
-;*******************************************************************************
-; RTL8188ES Device description
-;*******************************************************************************
-RTL8188es.DeviceDesc = "Realtek RTL8189ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-RTL8188es.DeviceDesc.DispName = "Realtek RTL8189ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-;; $$ ICtype 8188E End
-;; $$ ICtype 8821A Start
-;*******************************************************************************
-; RTL8821as Device description
-;*******************************************************************************
-RTL8821as.DeviceDesc = "Realtek RTL8821AS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-RTL8821as.DeviceDesc.DispName = "Realtek RTL8821AS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-;; $$ ICtype 8821A End
-;; $$ ICtype 8192E Start
-;*******************************************************************************
-; RTL8192E Device description
-;*******************************************************************************
-RTL8192es.DeviceDesc = "Realtek RTL8192ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-RTL8192es.DeviceDesc.DispName = "Realtek RTL8192ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-;; $$ ICtype 8192E End
-
-;; $$ ICtype 8703B Start
-;*******************************************************************************
-; RTL8703bs Device description
-;*******************************************************************************
-RTL8703bs.DeviceDesc = "Realtek RTL8703BS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8703bs.DeviceDesc.DispName = "Realtek RTL8703BS Wireless LAN 802.11n SDIO Network Adapter"
-;; $$ ICtype 8703B End
-
-;; $$ ICtype 8188F Start
-;*******************************************************************************
-; RTL8188Fs Device description
-;*******************************************************************************
-RTL8188fs.DeviceDesc = "Realtek RTL8189FTV Wireless LAN 802.11n SDIO Network Adapter"
-RTL8188fs.DeviceDesc.DispName = "Realtek RTL8189FTV Wireless LAN 802.11n SDIO Network Adapter"
-;; $$ ICtype 8188F End
-;; $$ ICtype 8822B Start
-;*******************************************************************************
-; RTL8822bs Device description
-;*******************************************************************************
-RTL8822bs.DeviceDesc = "Realtek RTL8822BS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-RTL8822bs.DeviceDesc.DispName = "Realtek RTL8822BS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-;; $$ ICtype 8822B End
-
-;; $$ ICtype 8723D Start
-;*******************************************************************************
-; RTL8723ds Device description
-;*******************************************************************************
-RTL8723ds.DeviceDesc = "Realtek RTL8723DS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723ds.DeviceDesc.DispName = "Realtek RTL8723DS Wireless LAN 802.11n SDIO Network Adapter"
-;; $$ ICtype 8723D End \ No newline at end of file
diff --git a/network/wlan/WDI/PLATFORM/WinInf/SDIO/x64/netrtwlans.inf b/network/wlan/WDI/PLATFORM/WinInf/SDIO/x64/netrtwlans.inf
index 8343a003..e7753ef3 100644
--- a/network/wlan/WDI/PLATFORM/WinInf/SDIO/x64/netrtwlans.inf
+++ b/network/wlan/WDI/PLATFORM/WinInf/SDIO/x64/netrtwlans.inf
Binary files differ
diff --git a/network/wlan/WDI/PLATFORM/WinInf/SDIO/x86/netrtwlans.inf b/network/wlan/WDI/PLATFORM/WinInf/SDIO/x86/netrtwlans.inf
deleted file mode 100644
index 5e6b284b..00000000
--- a/network/wlan/WDI/PLATFORM/WinInf/SDIO/x86/netrtwlans.inf
+++ /dev/null
@@ -1,1259 +0,0 @@
-;; netrtwlans.inf
-;;
-;; Realtek Wireless 802.11b/g/n SDIO Network Adapter
-;;
-;; Copyright (C) 2012 Realtek Semiconductor Corp.
-;;
-;; This release is primarily for WHQL test.
-;;
-
-;; FOR XP/Vista/Win7/Win8
-
-[Version]
-Signature = "$Windows NT$"
-Class = Net
-ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
-Provider = %Realtek%
-CatalogFile.NT = netrtwlans.cat ;; for WHQL certified
-DriverVer = 11/23/2015,3008.22.1030.2015
-
-[Manufacturer]
-%Realtek% = Realtek,NTx86.10.0
-
-[ControlFlags]
-ExcludeFromSelect = *
-
-[Realtek.NTx86.10.0]
-;; For 8723 RTK common ================================================================
-
-;; For 8723 RTK common ================================================================
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_8753
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_B723
-;; Acer
-%RTL8723bs.DeviceDesc% = ACER8723bs.ndi, SD\VID_024C&PID_0623
-;; HP
-%RTL8723bs.DeviceDesc% = HP8723bs.ndi, SD\VID_024C&PID_0523
-;; ECS
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0524
-;; bestbuy
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0240
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0241
-;; For Braswell platform
-%RTL8723bs.DeviceDesc% = RTL8723bs.ndi, SD\VID_024C&PID_0626
-;; Reserved
-%RTL8723bs.DeviceDesc% = RSVD8723bs.ndi, SD\VID_024C&PID_0624
-
-;; For 8188E RTK common ================================================================
-%RTL8188es.DeviceDesc% = RTL8188es.ndi, SD\VID_024C&PID_8188
-%RTL8188es.DeviceDesc% = RTL8188es.ndi, SD\VID_024C&PID_8179
-
-;; For 8812A RTK common ================================================================
-
-;; For 8814A RTK common ================================================================
-%RTL8814as.DeviceDesc% = RTL8814as.ndi, SD\VID_024C&PID_8813
-
-;; For 8821A RTK common ================================================================
-%RTL8821as.DeviceDesc% = RTL8821as.ndi, SD\VID_024C&PID_8821
-
-;; For 8192ES RTK common ================================================================
-%RTL8192es.DeviceDesc% = RTL8192es.ndi, SD\VID_024C&PID_818B
-
-
-;; For 8703 RTK common ================================================================
-%RTL8703bs.DeviceDesc% = RTL8703bs.ndi, SD\VID_024C&PID_B703
-
-;; For 8188 RTK common ================================================================
-%RTL8188fs.DeviceDesc% = RTL8188fs.ndi, SD\VID_024C&PID_F179
-
-;; For 8822B RTK common ================================================================
-%RTL8822bs.DeviceDesc% = RTL8822bs.ndi, SD\VID_024C&PID_B822
-
-;; For 8723D RTK common ================================================================
-%RTL8723ds.DeviceDesc% = RTL8723ds.ndi, SD\VID_024C&PID_D723
-
-;;----------------------------------------------------------------------------
-;; Realtek 8723as default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8723as.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723as.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723as.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723as.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8723bs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, MCC.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;;----------------------------------------------------------------------------
-;; Acer 8723bs installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[ACER8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, RSSI2GridMode_2.reg, MCC.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[ACER8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[ACER8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-;;----------------------------------------------------------------------------
-;; HP 8723bs installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[HP8723bs.ndi.NT]
-AddReg = NDIS_64.reg, HP8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[HP8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[HP8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; RSVD 8723bs installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RSVD8723bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, WowlanDisable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RSVD8723bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RSVD8723bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8188eu default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8188es.ndi.NT]
-AddReg = NDIS_64.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188es.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188es.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8821as default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8821as.ndi.NT]
-AddReg = NDIS_64.reg, RTL8821as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8821as.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8821as.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8814as default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8814as.ndi.NT]
-AddReg = NDIS_64.reg, RTL8814as.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8814as.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8814as.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8192es default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8192es.ndi.NT]
-AddReg = NDIS_64.reg, RTL8192es.common.reg, RTLWLAN.reg, 11nWirelessMode.reg, Ndis6Set.reg, CIHVS.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8192es.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8192es.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8703bs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8703bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, AutoChnlSelon.reg, CIHVS.reg, KFREE_COMMON.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8703bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8703bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8188fs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8188fs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8703bs.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8188fs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8188fs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-;;----------------------------------------------------------------------------
-;; Realtek 8822bs default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8822bs.ndi.NT]
-AddReg = NDIS_64.reg, RTL8822bs.common.reg, RTLWLAN.reg, 11acWirelessMode.reg, Ndis6Set.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8822bs.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8822bs.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-
-;;----------------------------------------------------------------------------
-;; Realtek 8723ds default installation
-;;----------------------------------------------------------------------------
-
-
-
-
-
-[RTL8723ds.ndi.NT]
-AddReg = NDIS_64.reg, RTL8723ds.common.reg, RTLWLAN.reg, Ndis6Set.reg, 11nWirelessMode.reg, ConnectedStandbyEnable.reg, 32kEnable.reg, CIHVS.reg, PnpPreTransOn.reg, AutoChnlSelon.reg
-Include = netvwifibus.inf
-Needs = VWiFiBus.CopyFiles
-Characteristics = 0x84
-BusType = 15
-CopyFiles = RTWlanS.CopyFiles
-*IfType = 71 ; IF_TYPE_IEEE80211
-*MediaType = 16 ; NdisMediumNative802_11
-*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
-
-[RTL8723ds.ndi.NT.Services]
-AddService = RtlWlans, 2, RtlWlans.Service, RtlWlans.EventLog
-Include = netvwifibus.inf
-Needs = VWiFiBus.Services
-
-[RTL8723ds.ndi.NT.HW]
-Include = netvwifibus.inf
-Needs = VWiFiBus.PnPFilterRegistration
-
-;;----------------------------------------------------------------------------
-;; OS relative registry.
-;;----------------------------------------------------------------------------
-[NDIS_64.reg]
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5,mdcwifi"
-HKR, Ndi\Interfaces, LowerRange, 0, "wlan,ethernet,vwifi"
-HKR, Ndi, Service, 0, "RtlWlans"
-;;
-;; OS relative service.
-;;
-[RtlWlans.Service]
-DisplayName = %RtlWlans.DeviceDesc.DispName%
-ServiceType = 1 ; %SERVICE_KERNEL_DRIVER%
-StartType = 3 ; %SERRVICE_DEMAND_START%
-ErrorControl = 1 ; %SERRVICE_ERROR_NORMAL%
-ServiceBinary = %12%\rtwlans.sys
-LoadOrderGroup = NDIS
-
-;;
-;; OS relative event log.
-;;
-[RtlWlans.EventLog]
-AddReg = RtlWlans.AddEventLog.reg
-
-[RtlWlans.AddEventLog.reg]
-HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
-HKR, , TypesSupported , 0x00010001, 7
-
-[CIHVS.reg]
-HKR, Ndi\IHVExtensions, ExtensibilityDLL, 0, "%SystemRoot%\system32\Rtlihvs.dll"
-HKR, Ndi\IHVExtensions, UIExtensibilityCLSID, 0, "{6C2A8CCA-B2A2-4d81-A3B2-4E15F445C312}"
-HKR, Ndi\IHVExtensions, GroupName, 0, "Realtek CCX SDK IHV Service"
-HKR, Ndi\IHVExtensions, AdapterOUI, 0x00010001, 0x00e04c
-
-;*******************************************************************************
-; WAPI section
-;*******************************************************************************
-[wapi.reg]
-HKR,defaults,WapiSupport,0,"1"
-HKR,,WapiSupport,0,"1"
-
-;*******************************************************************************
-; RTL8723as common paramters
-;*******************************************************************************
-[RTL8723as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-
-;*******************************************************************************
-; RTL8723bs common paramters
-;*******************************************************************************
-[RTL8723bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-;;HKR,defaults,EnableAdaptivity,0,"0"
-;;HKR,,EnableAdaptivity,0,"0"
-
-HKR,defaults,EnableCarrierSense,0,"0"
-HKR,,EnableCarrierSense,0,"0"
-
-; AOAC reconnect
-HKR,defaults,PnpKeepLink,0,"1"
-HKR,,PnpKeepLink,0,"1"
-
-;; $$ End of RTL8723bs.common.reg
-
-[HP8723bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-; Enable Adaptivity
-;;HKR,defaults,EnableAdaptivity,0,"1"
-;;HKR,,EnableAdaptivity,0,"1"
-
-HKR,defaults,EnableCarrierSense,0,"0"
-HKR,,EnableCarrierSense,0,"0"
-
-; Enable Customeized PowerLimit Table
-HKR,,EnableTxPowerLimit,0,"1"
-HKR,,DecryptCustomFile,,"1"
-HKR,,PwrLimitFile,0,"TXPWR_LMT_IEC0921_Enc.txt"
-
-; Regulation WorldWide
-HKR,defaults,PwrTblSel,0,"4"
-HKR,,PwrTblSel,0,"4"
-
-; AOAC reconnect
-HKR,defaults,PnpKeepLink,0,"1"
-HKR,,PnpKeepLink,0,"1"
-
-;; $$ End of HP8723bs.common.reg
-
-;*******************************************************************************
-; RTL8703bs common paramters
-;*******************************************************************************
-[RTL8703bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"1"
-HKR,,RomDLFwEnable,0,"1"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-
-;*******************************************************************************
-; RTL8188Fs common paramters
-;*******************************************************************************
-[RTL8188fs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,RomDLFwEnable,0,"0"
-HKR,,RomDLFwEnable,0,"0"
-
-HKR,defaults,bFwCtrlPwrOff,0,"1"
-HKR,,bFwCtrlPwrOff,0,"1"
-
-
-;*******************************************************************************
-; RTL8821as common paramters
-;*******************************************************************************
-[RTL8821as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-
-
-;*******************************************************************************
-; RTL8814as common paramters
-;*******************************************************************************
-[RTL8814as.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-;; Add for 8814AS, based on 8821AS's modification
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-
-
-;*******************************************************************************
-; RTL8192es common paramters
-;*******************************************************************************
-[RTL8192es.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-;*******************************************************************************
-; RTL8822bs common paramters
-;*******************************************************************************
-[RTL8822bs.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,,StbcCap,0,"17"
-HKR,,LdpcCap,0,"34"
-HKR,,BeamformCap,0,"34"
-HKR,,ValidRFPath,0,"51"
-HKR,,PreInitMem,0,"1"
-
-
-;*******************************************************************************
-; RTL8723ds common paramters
-;*******************************************************************************
-[RTL8723ds.common.reg]
-HKR,defaults,LedCtrl,0,"1"
-HKR,,LedCtrl,0,"1"
-
-HKR,defaults,QoS,0,"1"
-HKR,,QoS,0,"1"
-
-HKR,defaults,CcxRm,0,"1"
-HKR,,CcxRm,0,"1"
-
-HKR,defaults,CcxOffLineDurUpLimit,0,"0"
-HKR,,CcxOffLineDurUpLimit,0,"0"
-
-HKR,defaults,UsbRxAggMode,0,"1"
-HKR,,UsbRxAggMode,0,"1"
-
-HKR,defaults,bEarlymodeEnable,0,"0"
-HKR,,bEarlymodeEnable,0,"0"
-
-HKR,defaults,LdpcCap,0,"0"
-
-
-;;----------------------------------------------------------------------------
-;; Realtek WLAN NIC parameters
-;;----------------------------------------------------------------------------
-[RTLWLAN.reg]
-
-; Enable Adaptivity
-HKR,,EnableAdaptivity,0,"1"
-
-HKR,defaults,Channel,0,"1"
-HKR,,Channel,0,"1"
-
-;; Antenna Diversity Type
-HKR,defaults,AntennaDivType,0,"0"
-HKR,,AntennaDivType,0,"0"
-
-HKR,defaults,NetworkType,0,"1"
-HKR,,NetworkType,0,"1"
-
-HKR,defaults,StaUapsd,0,"0"
-HKR,,StaUapsd,0,"0"
-
-; For B/G mode and B/G/N mode switch, we will use different wireless mode registry in later section
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %IEEE_802_11BGN_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-
-;; For WiFi test, 1: WiFi Config and 0: Performance Config
-HKR,defaults,WiFiConfg,0,"0"
-HKR,,WiFiConfg,0,"0"
-
-HKR,defaults,RxReorder,0,"1"
-HKR,,RxReorder,0,"1"
-
-HKR,,DefaultKeyID,,"0"
-HKR,,DefaultKey0,,""
-HKR,,DefaultKey1,,""
-HKR,,DefaultKey2,,""
-HKR,,DefaultKey3,,""
-
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"0"
-HKR,,InactivePs,0,"0"
-
-;Leisure Power Save
-HKR,defaults,bLeisurePs,0,"2"
-HKR,,bLeisurePs,0,"2"
-
-;Fw Control LPS
-HKR,defaults,bFwCtrlLPS,0,"1"
-HKR,,bFwCtrlLPS,0,"1"
-
-;; LPS Interval
-;HKR,defaults,LPSIntvl,0,"3"
-HKR,,LPSIntvl,0,"3"
-
-HKR,,WEPinNmode,0,"0"
-
-HKR,defaults,RxSC,0,"0"
-HKR,,RxSC,0,"0"
-
-HKR,defaults,TxSC,0,"0"
-HKR,,TxSC,0,"0"
-
-HKR,defaults,NblRacingWA,0,"1"
-HKR,,NblRacingWA,0,"1"
-
-HKR,defaults,SuspendTimerInLowPwr,0,"1"
-HKR,,SuspendTimerInLowPwr,0,"1"
-
-;; Rx reorder pending time
-HKR,,RxReorder_PendTime,0,"100"
-
-;Antenna Diversity
-HKR,Ndi\params\AntDiv, ParamDesc, 0, "Antenna Diversity"
-HKR,Ndi\params\AntDiv, default, 0, "0"
-HKR,Ndi\params\AntDiv, type, 0, "enum"
-HKR,Ndi\params\AntDiv\enum, "0", 0, %DISABLED_STR%
-HKR,Ndi\params\AntDiv\enum, "1", 0, %ENABLED_STR%
-
-HKLM, SYSTEM\CurrentControlSet\Services\RtlWlans\Parameters, "BtAntennaInHw", 0x00010001,2
-
-[Ndis5Set.reg]
-HKR,Ndi\params\PSPXlinkMode, ParamDesc, 0, %PSP_XLINK_STR%
-HKR,Ndi\params\PSPXlinkMode, type, 0, "enum"
-HKR,Ndi\params\PSPXlinkMode, default, 0, "0"
-HKR,Ndi\params\PSPXlinkMode\enum, "0", 0, %DISABLE_STR%
-HKR,Ndi\params\PSPXlinkMode\enum, "1", 0, %ENABLE_STR%
-HKR,defaults,PSPXlinkMode,0,"0"
-HKR,,PSPXlinkMode,0,"0"
-
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"0"
-HKR,,InactivePs,0,"0"
-
-
-[Ndis6Set.reg]
-;Inactive Power Save
-HKR,defaults,InactivePs,0,"2"
-HKR,,InactivePs,0,"2"
-
-
-;;----------------------------------------------------------------------------
-;; Wireless mode option parameters
-;;----------------------------------------------------------------------------
-[11nWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %IEEE_802_11BGN_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-;; 40MHz Support in 11n
-HKR,Ndi\params\BWSetting, ParamDesc, 0, "Bandwidth"
-HKR,Ndi\params\BWSetting, type, 0, "enum"
-HKR,Ndi\params\BWSetting, default, 0, "1"
-HKR,Ndi\params\BWSetting\enum, "0", 0, "20MHz Only"
-HKR,Ndi\params\BWSetting\enum, "1", 0, "20_40MHz"
-HKR,defaults,BWSetting,0,"1"
-HKR,,BWSetting,0,"1"
-HKR,,BWSetting,,"1"
-
-HKR,,Channel,0,"10"
-
-[11gWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,defaults,WirelessMode, 0, "4"
-HKR,,WirelessMode, 0, "4"
-
-HKR,,BWSetting,0,"0"
-
-HKR,,Channel,0,"10"
-
-[11acWirelessMode.reg]
-HKR,Ndi\params\WirelessMode, ParamDesc, 0, %WL_MODE_STR%
-HKR,Ndi\params\WirelessMode, type, 0, "enum"
-HKR,Ndi\params\WirelessMode, default, 0, "8"
-HKR,Ndi\params\WirelessMode\enum, "8", 0, %AUTO_STR%
-HKR,Ndi\params\WirelessMode\enum, "1", 0, %IEEE_802_11A_STR%
-HKR,Ndi\params\WirelessMode\enum, "2", 0, %IEEE_802_11B_STR%
-HKR,Ndi\params\WirelessMode\enum, "4", 0, %IEEE_802_11BG_STR%
-HKR,Ndi\params\WirelessMode\enum, "16", 0, %IEEE_802_11BGN_STR%
-HKR,Ndi\params\WirelessMode\enum, "32", 0, %IEEE_802_11AN_STR%
-HKR,Ndi\params\WirelessMode\enum, "64", 0, %IEEE_802_11ANAC_STR%
-HKR,defaults,WirelessMode, 0, "8"
-HKR,,WirelessMode, 0, "8"
-
-HKR,,Channel,0,"36"
-
-;; RF Type
-HKR,,RFType,0,"15"
-
-
-HKR,defaults,BWSetting,0,"2"
-HKR,,BWSetting,0,"2"
-
-;;----------------------------------------------------------------------------
-;; LPS 32k Control Parameters
-;;----------------------------------------------------------------------------
-[32kEnable.reg]
-HKR,,bLowPowerEnable,0,"1"
-[32kDisable.reg]
-HKR,,bLowPowerEnable,0,"0"
-
-;-------------------------------------------------------------------------------
-; PnP pre-transition handling
-;-------------------------------------------------------------------------------
-[PnpPreTransOn.reg]
-HKR,,PreTransPnP,0,"1"
-[PnpPreTransOff.reg]
-HKR,,PreTransPnP,0,"0"
-
-;;----------------------------------------------------------------------------
-;; WOWLAN Control Parameters
-;;----------------------------------------------------------------------------
-[WowlanAllEnable.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-[WowlanDisable.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"0"
-HKR,,GTKOffloadEnable,0,"0"
-
-[WowlanAllEnableNoLPS.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-[WowlanEnableNoPatternMatch.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "0"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"0"
-
-[WowlanEnableNoLPSNoPatternMatch.reg]
-HKR,,WoWLANLPSLevel,0,"0"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "1"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"1"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "0"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"0"
-
-[ConnectedStandbyEnable.reg]
-HKR,,WoWLANLPSLevel,0,"2"
-HKR,,ARPOffloadEnable,0,"1"
-HKR,,GTKOffloadEnable,0,"1"
-HKR,,D2ListenIntvl,0,"4"
-HKR,,NSOffloadEnable,0,"1"
-HKR,,NLOEnable,0,"1"
-
-HKR, Ndi\params\*WakeOnMagicPacket, ParamDesc, 0, %WakeOnMagicPacket%
-HKR, Ndi\params\*WakeOnMagicPacket, default, 0, "0"
-HKR, Ndi\params\*WakeOnMagicPacket, type, 0, "enum"
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnMagicPacket\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnMagicPacket,0,"0"
-
-HKR, Ndi\params\*WakeOnPattern , ParamDesc, 0, %WakeOnPattern%
-HKR, Ndi\params\*WakeOnPattern, default, 0, "1"
-HKR, Ndi\params\*WakeOnPattern, type, 0, "enum"
-HKR, Ndi\params\*WakeOnPattern\enum, "0", 0, %DISABLED_STR%
-HKR, Ndi\params\*WakeOnPattern\enum, "1", 0, %ENABLED_STR%
-HKR,,*WakeOnPattern,0,"1"
-
-;; Packet coalescing should be enabled in WHCK test
-HKR,defaults,*PacketCoalescing,0,"0"
-HKR,,*PacketCoalescing,0,"0"
-
-;-------------------------------------------------------------------------------
-; Auto Channel Selection
-;-------------------------------------------------------------------------------
-[AutoChnlSelon.reg]
-HKR,,AutoChnlSel,0,"1"
-[AutoChnlSeloff.reg]
-HKR,,AutoChnlSel,0,"0"
-
-;;----------------------------------------------------------------------------
-;; RSSI to Grid Mode Parameters
-;;----------------------------------------------------------------------------
-[RSSI2GridRealMode.reg]
-HKR,,RSSI2GridMode,0,"1"
-[RSSI2GridMode_2.reg]
-HKR,,RSSI2GridMode,0,"2"
-[RSSI2GridMode_4.reg]
-HKR,,RSSI2GridMode,0,"4"
-
-;;----------------------------------------------------------------------------
-;; KFREE parameters
-;;----------------------------------------------------------------------------
-[KFREE_COMMON.reg]
-HKR,,RfKFreeEnable,0,"0"
-
-;*******************************************************************************
-; Customer reg section
-;*******************************************************************************
-[ScanType.reg]
-HKR,defaults,PassiveScan, 0, "0"
-HKR,,PassiveScan, 0, "0"
-
-;*******************************************************************************
-; Multi-Channel Concurrent section
-;*******************************************************************************
-[MCC.reg]
-HKR,Ndi\params\MultiChannelFcsMode, ParamDesc, 0, %MCC_STR%
-HKR,Ndi\params\MultiChannelFcsMode, type, 0, "enum"
-HKR,Ndi\params\MultiChannelFcsMode, default, 0, "0"
-HKR,Ndi\params\MultiChannelFcsMode\enum, "0", 0, %DISABLED_STR%
-HKR,Ndi\params\MultiChannelFcsMode\enum, "4", 0, %ENABLED_STR%
-HKR,defaults,MultiChannelFcsMode, 0, "0"
-HKR,,MultiChannelFcsMode, 0, "0"
-
-;*******************************************************************************
-; Destination Directory
-;*******************************************************************************
-[RTWlanS.CopyFiles]
-rtwlans.sys,,,2
-
-[DestinationDirs]
-DefaultDestDir = 11
-RTWlanS.CopyFiles = 12
-CIHVS.CopyFiles = 11
-RtlUI2.CopyFiles = 10
-
-;;****************************************************************************
-;; Source Files
-;;****************************************************************************
-[CIHVS.CopyFiles]
-Rtlihvs.dll,,,2
-
-[RegisterUIExt]
-11,,RtlExtUI.dll,1
-
-[RtlUI2.CopyFiles]
-RtlUI2.exe,,,2
-
-[SourceDisksFiles]
-rtwlans.sys = 1
-Rtlihvs.dll = 1
-
-[SourceDisksNames]
-1=%DISKNAME%,,,
-
-
-;*******************************************************************************
-; Strings
-;*******************************************************************************
-[Strings]
-SSID_STR = "SSID"
-CHANNEL_STR = "Channel"
-NETWORK_TYPE_STR = "Network Type"
-LED_CONTROL_STR = "LED Control"
-POWER_SAVE_STR = "Power Save Mode"
-WIFI_IBSS_STR = "IBSS Default 11b Mode"
-RATE_ADAPTIVE_STR = "Rate Adaptive"
-QOS_STR = "QoS"
-WiFiConfg_STR = "WiFiConfg"
-WMM_APSD = "WMM APSD"
-CCX_RM_STR = "CCX Radio Measurement"
-CCX_OFF_LINE_DUR_UP_LIMIT_STR = "CCX Max Off-Line Measurement (0: unlimited)"
-FORCE_PRIORITY_STR = "Forced Priority"
-HW_PARA_STR = "Init from HwParaFile"
-THREE_WIRE_MODE_STR = "Three Wire Programming Mode"
-BOARD_TYPE_STR = "Board Type"
-PROTECTION_MODE_STR = "Protection Mode"
-TPC_STR = "Transmit Power Control"
-TPC_POLARITY_STR = "TPC Polarity Select"
-HIGH_POWER_STR = "High Power Mechanism"
-INIT_GAIN_STR = "Initial Gain State"
-CW_MAX_MIN_STR = "Contention Window"
-PSP_XLINK_STR = "PSP XLink Mode"
-DISABLE_STR = "Disable"
-ENABLE_STR = "Enable"
-DISABLED_STR = "Disabled"
-ENABLED_STR = "Enabled"
-AUTO_STR = "Auto"
-AD_HOC_STR = "Ad Hoc"
-INFRASTRUCTURE_STR = "Infrastructure"
-AUTO_SELECT = "Auto select"
-WL_MODE_STR = "Wireless Mode"
-RX_REORDER_STR = "Rx Reorder"
-CAM_STR = "CAM"
-MAX_PSP_STR = "MAX_PSP"
-Fast_PSP_STR = "Fast_PSP"
-NO_AC_STR = "No AC (Disable)"
-ALL_AC_STR = "ALL AC"
-IEEE_802_11A_STR = "IEEE 802.11a"
-IEEE_802_11B_STR = "IEEE 802.11b"
-IEEE_802_11BG_STR = "IEEE 802.11b/g"
-IEEE_802_11BGN_STR = "IEEE 802.11b/g/n"
-IEEE_802_11AN_STR = "IEEE 802.11a/n"
-IEEE_802_11ANAC_STR = "IEEE 802.11a/n/ac"
-IEEE_802_11AC_STR = "IEEE 802.11 ac"
-WakeOnMagicPacket = "Wake on Magic Packet"
-WakeOnPattern = "Wake on Pattern Match"
-MCC_STR = "Multi-Channel Concurrent"
-
-;*******************************************************************************
-; manufacture description
-;*******************************************************************************
-Realtek = "Realtek Semiconductor Corp."
-
-
-;*******************************************************************************
-; Source disk name
-;*******************************************************************************
-DISKNAME = "Realtek Wireless LAN 802.11n SDIO Network Adapter Driver Disk"
-RtlWlans.DeviceDesc = "Realtek Wireless LAN 802.11n SDIO Network Adapter"
-RtlWlans.DeviceDesc.DispName = "Realtek Wireless LAN 802.11n SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8723as Device description
-;*******************************************************************************
-RTL8723as.DeviceDesc = "Realtek RTL8723AS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723as.DeviceDesc.DispName = "Realtek RTL8723AS Wireless LAN 802.11n SDIO Network Adapter"
-
-
-
-;*******************************************************************************
-; RTL8723bs Device description
-;*******************************************************************************
-RTL8723bs.DeviceDesc = "Realtek RTL8723BS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723bs.DeviceDesc.DispName = "Realtek RTL8723BS Wireless LAN 802.11n SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8814as Device description
-;*******************************************************************************
-RTL8814as.DeviceDesc = "Realtek RTL8814AS Wireless LAN 802.11ac SDIO Network Adapter"
-RTL8814as.DeviceDesc.DispName = "Realtek RTL8814AS Wireless LAN 802.11ac SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8188ES Device description
-;*******************************************************************************
-RTL8188es.DeviceDesc = "Realtek RTL8189ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-RTL8188es.DeviceDesc.DispName = "Realtek RTL8189ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-;*******************************************************************************
-; RTL8821as Device description
-;*******************************************************************************
-RTL8821as.DeviceDesc = "Realtek RTL8821AS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-RTL8821as.DeviceDesc.DispName = "Realtek RTL8821AS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-;*******************************************************************************
-; RTL8192E Device description
-;*******************************************************************************
-RTL8192es.DeviceDesc = "Realtek RTL8192ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-RTL8192es.DeviceDesc.DispName = "Realtek RTL8192ES Wireless LAN 802.11n USB 2.0 Network Adapter"
-
-;*******************************************************************************
-; RTL8703bs Device description
-;*******************************************************************************
-RTL8703bs.DeviceDesc = "Realtek RTL8703BS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8703bs.DeviceDesc.DispName = "Realtek RTL8703BS Wireless LAN 802.11n SDIO Network Adapter"
-
-;*******************************************************************************
-; RTL8188Fs Device description
-;*******************************************************************************
-RTL8188fs.DeviceDesc = "Realtek RTL8189FTV Wireless LAN 802.11n SDIO Network Adapter"
-RTL8188fs.DeviceDesc.DispName = "Realtek RTL8189FTV Wireless LAN 802.11n SDIO Network Adapter"
-;*******************************************************************************
-; RTL8822bs Device description
-;*******************************************************************************
-RTL8822bs.DeviceDesc = "Realtek RTL8822BS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-RTL8822bs.DeviceDesc.DispName = "Realtek RTL8822BS Wireless LAN 802.11ac SDIO 2.0 Network Adapter"
-
-;*******************************************************************************
-; RTL8723ds Device description
-;*******************************************************************************
-RTL8723ds.DeviceDesc = "Realtek RTL8723DS Wireless LAN 802.11n SDIO Network Adapter"
-RTL8723ds.DeviceDesc.DispName = "Realtek RTL8723DS Wireless LAN 802.11n SDIO Network Adapter"
diff --git a/network/wlan/WDI/windows.msbuild.rtwssample.sln b/network/wlan/WDI/windows.msbuild.rtwssample.sln
index 0d8732a8..291992f1 100644
--- a/network/wlan/WDI/windows.msbuild.rtwssample.sln
+++ b/network/wlan/WDI/windows.msbuild.rtwssample.sln
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.23107.0
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.33530.505
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdio", "PLATFORM\NDIS6\SDIO\sdio.vcxproj", "{105EA485-B9B6-48AE-B8B0-96BBEA575973}"
ProjectSection(ProjectDependencies) = postProject
@@ -15,68 +15,28 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NdisComm", "PLATFORM\NdisCo
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Win10 Debug|Arm = Win10 Debug|Arm
- Win10 Debug|Win32 = Win10 Debug|Win32
- Win10 Debug|x64 = Win10 Debug|x64
- Win10 Release|Arm = Win10 Release|Arm
- Win10 Release|Win32 = Win10 Release|Win32
- Win10 Release|x64 = Win10 Release|x64
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|Arm.ActiveCfg = Win10 Debug|Arm
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|Arm.Build.0 = Win10 Debug|Arm
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|Arm.Deploy.0 = Win10 Debug|Arm
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|Win32.ActiveCfg = Win10 Debug|Win32
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|Win32.Build.0 = Win10 Debug|Win32
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|Win32.Deploy.0 = Win10 Debug|Win32
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|x64.ActiveCfg = Win10 Debug|x64
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|x64.Build.0 = Win10 Debug|x64
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Debug|x64.Deploy.0 = Win10 Debug|x64
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|Arm.ActiveCfg = Win10 Release|Arm
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|Arm.Build.0 = Win10 Release|Arm
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|Arm.Deploy.0 = Win10 Release|Arm
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|Win32.ActiveCfg = Win10 Release|Win32
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|Win32.Build.0 = Win10 Release|Win32
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|Win32.Deploy.0 = Win10 Release|Win32
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|x64.ActiveCfg = Win10 Release|x64
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|x64.Build.0 = Win10 Release|x64
- {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Win10 Release|x64.Deploy.0 = Win10 Release|x64
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|Arm.ActiveCfg = Win10 Debug|Arm
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|Arm.Build.0 = Win10 Debug|Arm
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|Arm.Deploy.0 = Win10 Debug|Arm
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|Win32.ActiveCfg = Win10 Debug|Win32
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|Win32.Build.0 = Win10 Debug|Win32
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|Win32.Deploy.0 = Win10 Debug|Win32
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|x64.ActiveCfg = Win10 Debug|x64
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|x64.Build.0 = Win10 Debug|x64
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Debug|x64.Deploy.0 = Win10 Debug|x64
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|Arm.ActiveCfg = Win10 Release|Arm
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|Arm.Build.0 = Win10 Release|Arm
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|Arm.Deploy.0 = Win10 Release|Arm
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|Win32.ActiveCfg = Win10 Release|Win32
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|Win32.Build.0 = Win10 Release|Win32
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|Win32.Deploy.0 = Win10 Release|Win32
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|x64.ActiveCfg = Win10 Release|x64
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|x64.Build.0 = Win10 Release|x64
- {956B060D-1055-4584-9CF4-9FE14C428545}.Win10 Release|x64.Deploy.0 = Win10 Release|x64
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|Arm.ActiveCfg = Win10 Debug|Arm
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|Arm.Build.0 = Win10 Debug|Arm
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|Arm.Deploy.0 = Win10 Debug|Arm
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|Win32.ActiveCfg = Win10 Debug|Win32
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|Win32.Build.0 = Win10 Debug|Win32
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|Win32.Deploy.0 = Win10 Debug|Win32
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|x64.ActiveCfg = Win10 Debug|x64
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|x64.Build.0 = Win10 Debug|x64
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Debug|x64.Deploy.0 = Win10 Debug|x64
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|Arm.ActiveCfg = Win10 Release|Arm
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|Arm.Build.0 = Win10 Release|Arm
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|Arm.Deploy.0 = Win10 Release|Arm
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|Win32.ActiveCfg = Win10 Release|Win32
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|Win32.Build.0 = Win10 Release|Win32
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|Win32.Deploy.0 = Win10 Release|Win32
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|x64.ActiveCfg = Win10 Release|x64
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|x64.Build.0 = Win10 Release|x64
- {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Win10 Release|x64.Deploy.0 = Win10 Release|x64
+ {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Debug|x64.ActiveCfg = Debug|x64
+ {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Debug|x64.Build.0 = Debug|x64
+ {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Debug|x64.Deploy.0 = Debug|x64
+ {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Release|x64.ActiveCfg = Release|x64
+ {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Release|x64.Build.0 = Release|x64
+ {105EA485-B9B6-48AE-B8B0-96BBEA575973}.Release|x64.Deploy.0 = Release|x64
+ {956B060D-1055-4584-9CF4-9FE14C428545}.Debug|x64.ActiveCfg = Debug|x64
+ {956B060D-1055-4584-9CF4-9FE14C428545}.Debug|x64.Build.0 = Debug|x64
+ {956B060D-1055-4584-9CF4-9FE14C428545}.Debug|x64.Deploy.0 = Debug|x64
+ {956B060D-1055-4584-9CF4-9FE14C428545}.Release|x64.ActiveCfg = Release|x64
+ {956B060D-1055-4584-9CF4-9FE14C428545}.Release|x64.Build.0 = Release|x64
+ {956B060D-1055-4584-9CF4-9FE14C428545}.Release|x64.Deploy.0 = Release|x64
+ {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Debug|x64.ActiveCfg = Debug|x64
+ {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Debug|x64.Build.0 = Debug|x64
+ {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Debug|x64.Deploy.0 = Debug|x64
+ {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Release|x64.ActiveCfg = Release|x64
+ {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Release|x64.Build.0 = Release|x64
+ {C0A51792-1338-4294-ADAA-EDC4EE30CF05}.Release|x64.Deploy.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/network/wlan/ihvsampleui/IHVSampleUI.vcxproj b/network/wlan/ihvsampleui/IHVSampleUI.vcxproj
index 36ff1126..09f3dad7 100644
--- a/network/wlan/ihvsampleui/IHVSampleUI.vcxproj
+++ b/network/wlan/ihvsampleui/IHVSampleUI.vcxproj
@@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
@@ -22,7 +14,7 @@
<ProjectGuid>{1EE6DF41-8C0B-4C74-98D2-FCDF020E7128}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{C7745B6F-E931-4E1C-A12B-5BF1C854C635}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -42,22 +34,6 @@
<PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<OutDir>$(IntDir)</OutDir>
@@ -68,12 +44,6 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
<ItemGroup Label="WrappedTaskItems" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>IHVSampleUI</TargetName>
@@ -81,12 +51,6 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>IHVSampleUI</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>IHVSampleUI</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>IHVSampleUI</TargetName>
- </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
@@ -98,8 +62,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
</ResourceCompile>
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -113,38 +76,7 @@
<PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
</ResourceCompile>
<Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
- </ResourceCompile>
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;WIN32</PreprocessorDefinitions>
- </ResourceCompile>
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
+ <EntryPointSymbol>_DllMainCRTStartup</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -187,46 +119,6 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <AdditionalOptions>%(AdditionalOptions) /EHa</AdditionalOptions>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);ole32.lib;oleaut32.lib;user32.lib;uuid.lib;Kernel32.lib;Advapi32.lib;comctl32.lib</AdditionalDependencies>
- <ModuleDefinitionFile>IHVSampleUI.def</ModuleDefinitionFile>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <AdditionalOptions>%(AdditionalOptions) /EHa</AdditionalOptions>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);ole32.lib;oleaut32.lib;user32.lib;uuid.lib;Kernel32.lib;Advapi32.lib;comctl32.lib</AdditionalDependencies>
- <ModuleDefinitionFile>IHVSampleUI.def</ModuleDefinitionFile>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </Midl>
- </ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="IHVClassFactory.cpp" />
<ClCompile Include="IHVRegistryHelper.cpp" />
diff --git a/network/wsk/echosrv/echosrv.sln b/network/wsk/echosrv/echosrv.sln
index d2a3e511..5c634e37 100644
--- a/network/wsk/echosrv/echosrv.sln
+++ b/network/wsk/echosrv/echosrv.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
@@ -7,16 +7,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echosrv", "echosrv.vcxproj"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
+ Debug|ARM64 = Debug|ARM64
+ Release|ARM64 = Release|ARM64
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Debug|Win32.ActiveCfg = Debug|Win32
- {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Debug|Win32.Build.0 = Debug|Win32
- {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Release|Win32.ActiveCfg = Release|Win32
- {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Release|Win32.Build.0 = Release|Win32
+ {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Debug|ARM64.Build.0 = Debug|ARM64
+ {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Release|ARM64.ActiveCfg = Release|ARM64
+ {9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Release|ARM64.Build.0 = Release|ARM64
{9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Debug|x64.ActiveCfg = Debug|x64
{9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Debug|x64.Build.0 = Debug|x64
{9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}.Release|x64.ActiveCfg = Release|x64
diff --git a/network/wsk/echosrv/echosrv.vcxproj b/network/wsk/echosrv/echosrv.vcxproj
index c97a2bae..3a6c1d9d 100644
--- a/network/wsk/echosrv/echosrv.vcxproj
+++ b/network/wsk/echosrv/echosrv.vcxproj
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
+ <ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
+ <ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
- <Platform>Win32</Platform>
+ <Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
@@ -22,38 +22,38 @@
<ProjectGuid>{9436F43A-8E46-4A73-ADB4-2B3F332A9DF4}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
<SampleGuid>{5F420AD1-C9CA-461D-AD6D-B290B68DD4F6}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>False</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <UseDebugLibraries>True</UseDebugLibraries>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+ <DriverTargetPlatform>Windows Driver</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>
@@ -65,13 +65,13 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ItemGroup Label="WrappedTaskItems">
@@ -87,13 +87,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>echosrv</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<TargetName>echosrv</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>echosrv</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<TargetName>echosrv</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -111,13 +111,13 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -132,13 +132,13 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -153,13 +153,13 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
@@ -174,7 +174,7 @@
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
<Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;$(SDK_LIB_PATH)\uuid.lib</AdditionalDependencies>
+ <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\netio.lib;uuid.lib</AdditionalDependencies>
</Link>
<DriverSign>
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
diff --git a/network/wwan/cxwmbclass/README.md b/network/wwan/cxwmbclass/README.md
new file mode 100644
index 00000000..d0b04978
--- /dev/null
+++ b/network/wwan/cxwmbclass/README.md
@@ -0,0 +1,14 @@
+---
+page_type: sample
+description: "Demonstrates use of the cxwmbclass driver."
+languages:
+- c
+products:
+- windows
+- windows-wdk
+---
+
+# cxwmbclass samples
+
+This sample demonstrates use of the cxwmbclass.
+
diff --git a/network/wwan/cxwmbclass/adapter.cpp b/network/wwan/cxwmbclass/adapter.cpp
new file mode 100644
index 00000000..ed60b427
--- /dev/null
+++ b/network/wwan/cxwmbclass/adapter.cpp
@@ -0,0 +1,197 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include "precomp.h"
+
+#include "device.h"
+#include "txqueue.h"
+#include "rxqueue.h"
+
+_Use_decl_annotations_ NTSTATUS WmbClassAdapterStart(NETADAPTER netAdapter)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = WmbClassGetNetAdapterContext(netAdapter);
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = netAdapterContext->WmbDeviceContext;
+
+ ULONG64 maxXmitLinkSpeed = MBB_MEDIA_MAX_SPEED;
+ ULONG64 maxRcvLinkSpeed = MBB_MEDIA_MAX_SPEED;
+ DWORD maxPowerFilterSize = 0;
+
+ NET_ADAPTER_LINK_LAYER_CAPABILITIES linkLayerCapabilities;
+ NET_ADAPTER_LINK_LAYER_CAPABILITIES_INIT(&linkLayerCapabilities, maxXmitLinkSpeed, maxRcvLinkSpeed);
+
+ NetAdapterSetLinkLayerCapabilities(netAdapter, &linkLayerCapabilities);
+
+ if (deviceContext->BusParams.IsErrataDevice)
+ {
+ NetAdapterSetLinkLayerMtuSize(netAdapter, deviceContext->BusParams.MTU);
+ }
+ else
+ {
+ NetAdapterSetLinkLayerMtuSize(netAdapter, deviceContext->BusParams.MaxSegmentSize);
+ }
+
+ if (deviceContext->BusParams.PowerFiltersSupported > 0)
+ {
+ NET_ADAPTER_WAKE_BITMAP_CAPABILITIES bitmapCapabilities;
+ NET_ADAPTER_WAKE_BITMAP_CAPABILITIES_INIT(&bitmapCapabilities);
+
+ bitmapCapabilities.BitmapPattern = TRUE;
+ bitmapCapabilities.MaximumPatternCount = deviceContext->BusParams.PowerFiltersSupported;
+
+ if (deviceContext->BusParams.IsErrataDevice)
+ {
+ // For errata devices we will report the device specific max pattern size.
+ // 192 bytes is the maximum power filter size as per the MBIM spec.
+ // If a device reports more than 192 bytes as the power filter size, we
+ // normalize it here to 192 bytes. This will prevent erroneous devices
+ // from indicating arbitrary pattern size. This needs to change with any
+ // MBIM spec revision.
+
+ if (deviceContext->BusParams.MaxPowerFilterSize > WMBCLASS_MAX_MBIM_WOL_PATTERN)
+ {
+ maxPowerFilterSize = WMBCLASS_MAX_MBIM_WOL_PATTERN;
+ }
+ else
+ {
+ maxPowerFilterSize = deviceContext->BusParams.MaxPowerFilterSize;
+ }
+ }
+ else
+ {
+ // To maintain backward compatibility with Win8 devices, we continue
+ // reporting 256 bytes as the wake pattern size.
+ maxPowerFilterSize = WMBCLASS_MAX_WOL_PATTERN;
+ }
+
+ bitmapCapabilities.MaximumPatternSize = maxPowerFilterSize;
+
+ NetAdapterWakeSetBitmapCapabilities(netAdapter, &bitmapCapabilities);
+ }
+
+ NET_ADAPTER_WAKE_MEDIA_CHANGE_CAPABILITIES wakeMediaChangeCapabilities;
+ NET_ADAPTER_WAKE_MEDIA_CHANGE_CAPABILITIES_INIT(&wakeMediaChangeCapabilities);
+
+ wakeMediaChangeCapabilities.MediaConnect = TRUE;
+ wakeMediaChangeCapabilities.MediaDisconnect = TRUE;
+
+ NetAdapterWakeSetMediaChangeCapabilities(netAdapter, &wakeMediaChangeCapabilities);
+
+ if (deviceContext->BusParams.SelectiveSuspendSupported)
+ {
+ NET_ADAPTER_WAKE_PACKET_FILTER_CAPABILITIES wakePacketFilterCapabilities;
+ NET_ADAPTER_WAKE_PACKET_FILTER_CAPABILITIES_INIT(&wakePacketFilterCapabilities);
+ wakePacketFilterCapabilities.PacketFilterMatch = TRUE;
+
+ NetAdapterWakeSetPacketFilterCapabilities(netAdapter, &wakePacketFilterCapabilities);
+ }
+
+ NET_ADAPTER_TX_CAPABILITIES txCapabilities;
+ NET_ADAPTER_TX_CAPABILITIES_INIT(&txCapabilities, 1);
+ NET_ADAPTER_RX_CAPABILITIES rxCapabilities;
+ NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED(&rxCapabilities, EvtAdapterReturnRxBuffer, MBB_MAX_PACKET_SIZE, 1);
+
+ NetAdapterSetDataPathCapabilities(netAdapter, &txCapabilities, &rxCapabilities);
+
+ status = NetAdapterStart(netAdapter);
+
+ return status;
+}
+
+NTSTATUS
+EvtAdapterCreateTxQueue(_In_ NETADAPTER netAdapter, _Inout_ NETTXQUEUE_INIT* txQueueInit)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PMBB_TXQUEUE_CONTEXT txQueueContext = NULL;
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = WmbClassGetNetAdapterContext(netAdapter);
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = netAdapterContext->WmbDeviceContext;
+ WDF_OBJECT_ATTRIBUTES txAttributes;
+ NET_EXTENSION_QUERY extension;
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&txAttributes);
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&txAttributes, MBB_TXQUEUE_CONTEXT);
+
+ txAttributes.EvtDestroyCallback = EvtTxQueueDestroy;
+
+ NET_PACKET_QUEUE_CONFIG queueConfig;
+ NET_PACKET_QUEUE_CONFIG_INIT(&queueConfig, EvtTxQueueAdvance, EvtTxQueueSetNotificationEnabled, EvtTxQueueCancel);
+
+ NETPACKETQUEUE txQueue;
+ status = NetTxQueueCreate(txQueueInit, &txAttributes, &queueConfig, &txQueue);
+
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+
+ txQueueContext = MbbGetTxQueueContext(txQueue);
+
+
+ txQueueContext->NetAdapterContext = netAdapterContext;
+ txQueueContext->DatapathDescriptor = NetTxQueueGetRingCollection(txQueue);
+
+ // Try to use MaxOutDatagrams parameter as the tx completion batch size, but limit to half of the packet ring buffer
+ auto maxBatchSize = NetRingCollectionGetPacketRing(txQueueContext->DatapathDescriptor)->NumberOfElements / 2;
+ txQueueContext->CompletionBatchSize = min(deviceContext->BusParams.MaxOutDatagrams, maxBatchSize);
+
+ NET_EXTENSION_QUERY_INIT(&extension, NET_FRAGMENT_EXTENSION_MDL_NAME, NET_FRAGMENT_EXTENSION_MDL_VERSION_1, NetExtensionTypeFragment);
+
+ NetTxQueueGetExtension(txQueue, &extension, &txQueueContext->MdlExtension);
+
+ netAdapterContext->TxQueue = txQueue;
+Exit:
+ return status;
+}
+
+void EvtRxQueueStart(_In_ NETPACKETQUEUE rxQueue)
+{
+ MbbGetRxQueueContext(rxQueue)->NetAdapterContext->AllowRxTraffic = TRUE;
+}
+
+NTSTATUS
+EvtAdapterCreateRxQueue(_In_ NETADAPTER netAdapter, _Inout_ NETRXQUEUE_INIT* rxQueueInit)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+
+ PMBB_RXQUEUE_CONTEXT rxQueueContext = NULL;
+ WDF_OBJECT_ATTRIBUTES rxAttributes;
+ NET_EXTENSION_QUERY extension;
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = WmbClassGetNetAdapterContext(netAdapter);
+
+ NET_PACKET_QUEUE_CONFIG rxConfig;
+ NET_PACKET_QUEUE_CONFIG_INIT(&rxConfig, EvtRxQueueAdvance, EvtRxQueueSetNotificationEnabled, EvtRxQueueCancel);
+ rxConfig.EvtStart = EvtRxQueueStart;
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&rxAttributes);
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&rxAttributes, MBB_RXQUEUE_CONTEXT);
+ rxAttributes.EvtDestroyCallback = EvtRxQueueDestroy;
+
+ NETPACKETQUEUE rxQueue;
+ status = NetRxQueueCreate(rxQueueInit, &rxAttributes, &rxConfig, &rxQueue);
+
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+
+ rxQueueContext = MbbGetRxQueueContext(rxQueue);
+
+ NET_EXTENSION_QUERY_INIT(&extension, NET_FRAGMENT_EXTENSION_VIRTUAL_ADDRESS_NAME, NET_FRAGMENT_EXTENSION_VIRTUAL_ADDRESS_VERSION_1, NetExtensionTypeFragment);
+
+ NetRxQueueGetExtension(rxQueue, &extension, &rxQueueContext->VirtualAddressExtension);
+
+ rxQueueContext->NetAdapterContext = netAdapterContext;
+ rxQueueContext->DatapathDescriptor = NetRxQueueGetRingCollection(rxQueue);
+
+ NET_EXTENSION_QUERY_INIT(&extension, NET_FRAGMENT_EXTENSION_RETURN_CONTEXT_NAME, NET_FRAGMENT_EXTENSION_RETURN_CONTEXT_VERSION_1, NetExtensionTypeFragment);
+
+ NetRxQueueGetExtension(rxQueue, &extension, &rxQueueContext->ReturnContextExtension);
+
+ // Set netAdapterContext->RxQueue to mean EvtAdapterCreateRxQueue completed successfully
+ netAdapterContext->RxQueue = rxQueue;
+
+Exit:
+
+ return status;
+}
diff --git a/network/wwan/cxwmbclass/businit.cpp b/network/wwan/cxwmbclass/businit.cpp
new file mode 100644
index 00000000..a4109ada
--- /dev/null
+++ b/network/wwan/cxwmbclass/businit.cpp
@@ -0,0 +1,1906 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include <precomp.h>
+
+#pragma pack(push, 1)
+
+typedef struct _USB_DESCRIPTOR_HEADER
+{
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+
+} USB_DESCRIPTOR_HEADER, * PUSB_DESCRIPTOR_HEADER;
+
+#pragma pack(pop)
+
+NTSTATUS
+MbbParseConfigDescriptor(
+ WDFUSBDEVICE WdfUsbDevice,
+ PUSHORT MaxSegmentSize,
+ PUCHAR NcmCaps,
+ PUCHAR PowerFiltersSupported,
+ PUCHAR MaxPowerFilterSize,
+ PUCHAR CommunicationClassInterface,
+ PUCHAR DataClassInterface,
+ PUSHORT MaxControlMessage,
+ PUCHAR AltCommunicationClassSetting,
+ PUCHAR AltDataClassSetting,
+ PUSHORT BulkInDataClassPacketSize,
+ PUSHORT MTU,
+ PUSHORT MbimVersion,
+ PUSHORT MbimExtendedVersion);
+
+NTSTATUS
+GetNtbParameters(WDFUSBDEVICE WdfUsbDevice, PNCM_NTB_PARAMETER NcmNtb);
+
+NTSTATUS
+GetDeviceString(__in WDFUSBDEVICE UsbDevice, __in UCHAR Index, __out PWSTR* String);
+
+VOID FreeBusObject(_In_ __drv_freesMem(Mem) PBUS_OBJECT BusObject);
+
+NTSTATUS
+SetActivityIdForRequest(__in WDFREQUEST Request, __in LPGUID ActivityId);
+
+void ResetDataPipeWorkItem(_In_ WDFWORKITEM WorkItem);
+
+EVT_WDF_USB_READER_COMPLETION_ROUTINE InterruptPipeReadComplete;
+EVT_WDF_USB_READERS_FAILED InterruptPipeReadError;
+
+NTSTATUS
+MbbBusInitializeByWdf(
+ _In_ WDFDEVICE WdfDevice,
+ _In_ MBB_BUS_RESPONSE_AVAILABLE_CALLBACK ResponseAvailableCallback,
+ _In_ MBB_BUS_DATA_RECEIVE_CALLBACK ReceiveDataCallback,
+ _In_ MBB_BUS_SS_IDLE_CONFIRM_CALLBACK IdleConfirmCallback,
+ _In_ MBB_BUS_SS_IDLE_NOTIFICATION_COMPLETE_CALLBACK IdleNotificationComplete,
+ _In_ MBB_PROTOCOL_HANDLE ProtocolHandle,
+ _Outptr_ MBB_BUS_HANDLE* BusHandle,
+ _Inout_opt_ MBB_BUS_HANDLE preAllocatedBusObject)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ WDF_OBJECT_ATTRIBUTES attributes;
+
+ WDF_USB_DEVICE_SELECT_CONFIG_PARAMS configParams;
+ PWDF_USB_INTERFACE_SETTING_PAIR settingPairs = NULL;
+ WDF_USB_INTERFACE_SELECT_SETTING_PARAMS SettingParams;
+ WDFUSBPIPE pipe;
+ WDF_USB_PIPE_INFORMATION pipeInfo;
+ WDFUSBINTERFACE UsbInterface = NULL;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ USB_DEVICE_DESCRIPTOR DeviceDescriptor;
+ USB_INTERFACE_DESCRIPTOR InterfaceDescriptor;
+ WDF_USB_DEVICE_CREATE_CONFIG Config;
+
+ WDF_WORKITEM_CONFIG workitemConfig;
+ WDF_OBJECT_ATTRIBUTES workitemAttributes;
+
+ UCHAR numInterfaces;
+ UCHAR interfaceIndex;
+ UCHAR i;
+ USHORT DescriptorSize = 0;
+ UCHAR CurrentSetting;
+ USHORT BulkInPacketSize = 0;
+ WDF_USB_CONTINUOUS_READER_CONFIG ReaderConfig;
+
+ PIRP UsbSsIrp = NULL;
+
+ PBUS_OBJECT BusObject = NULL;
+
+ USB_CAP_DEVICE_INFO usbCapDeviceInfo = { USB_CAP_DEVICE_TYPE_MAXIMUM, 0, 0, 0 };
+ ULONG capResultLength = 0;
+
+ WDF_USB_DEVICE_INFORMATION deviceInformation;
+
+ *BusHandle = NULL;
+
+ if (preAllocatedBusObject == NULL)
+ {
+
+ BusObject = (PBUS_OBJECT)ALLOCATE_NONPAGED_POOL(sizeof(BUS_OBJECT));
+
+ if (BusObject == NULL)
+ {
+ Status = STATUS_NO_MEMORY;
+ goto Cleanup;
+ }
+
+ RtlZeroMemory(BusObject, sizeof(*BusObject));
+
+ BusObject->Fdo = WdfDeviceWdmGetDeviceObject(WdfDevice);
+
+ INITIALIZE_PASSIVE_LOCK(&BusObject->Lock);
+ BusObject->State = BUS_STATE_CLOSED;
+
+ BusObject->ProtocolHandle = ProtocolHandle;
+ BusObject->ResponseAvailableCallback = ResponseAvailableCallback;
+ BusObject->ReceiveDataCallback = ReceiveDataCallback;
+ BusObject->IdleConfirmCallback = IdleConfirmCallback;
+ BusObject->IdleNotificationComplete = IdleNotificationComplete;
+
+ }
+ else
+ {
+ BusObject = (PBUS_OBJECT)preAllocatedBusObject;
+ }
+
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, USB_DEVICE_CONTEXT);
+
+ WDF_USB_DEVICE_CREATE_CONFIG_INIT(&Config, USBD_CLIENT_CONTRACT_VERSION_602);
+
+ Status = WdfUsbTargetDeviceCreateWithParameters(WdfDevice, &Config, &attributes, &BusObject->WdfUsbDevice);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ usbDeviceContext->BulkPipeResetFlag = FALSE;
+ usbDeviceContext->BulkPipeResetWorkitem = NULL;
+
+ //
+ // create a work item to reset data pipe
+ //
+ ExInitializeRundownProtection(&usbDeviceContext->BulkPipeResetRundown);
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&workitemAttributes);
+ workitemAttributes.ParentObject = BusObject->WdfUsbDevice;
+ WDF_WORKITEM_CONFIG_INIT(&workitemConfig, ResetDataPipeWorkItem);
+
+ Status = WdfWorkItemCreate(&workitemConfig, &workitemAttributes, &usbDeviceContext->BulkPipeResetWorkitem);
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ //
+ // create a lock
+ //
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = BusObject->WdfUsbDevice;
+
+ Status = WdfWaitLockCreate(&attributes, &usbDeviceContext->PipeStateLock);
+
+ if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = BusObject->WdfUsbDevice;
+
+ Status = WdfCollectionCreate(&attributes, &usbDeviceContext->WriteRequestCollection);
+
+ if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ //
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = BusObject->WdfUsbDevice;
+
+ Status = WdfSpinLockCreate(&attributes, &usbDeviceContext->WriteCollectionLock);
+
+ if (!NT_SUCCESS(Status))
+ {
+ return Status;
+ }
+
+ //
+ // see if the bus driver supports chained mdl's
+ //
+ Status = WdfUsbTargetDeviceQueryUsbCapability(BusObject->WdfUsbDevice, (PGUID)&GUID_USB_CAPABILITY_CHAINED_MDLS, 0, NULL, NULL);
+
+ if (NT_SUCCESS(Status))
+ {
+ //
+ // request work, the stack supports chained mdl's
+ //
+ BusObject->ChainedMdlsSupported = TRUE;
+ }
+ else
+ {
+ }
+
+ // see what USB device type the bus driver is supporting
+ //
+ Status = WdfUsbTargetDeviceQueryUsbCapability(
+ BusObject->WdfUsbDevice, (PGUID)&GUID_USB_CAPABILITY_DEVICE_TYPE, sizeof(USB_CAP_DEVICE_INFO), (PVOID)&usbCapDeviceInfo, &capResultLength);
+
+ if (NT_SUCCESS(Status))
+ {
+ //
+ // request work, the stack returns USB device type
+ //
+ if (IsUsbCapDeviceInfoValid(usbCapDeviceInfo, capResultLength))
+ {
+ BusObject->UsbCapDeviceInfo = usbCapDeviceInfo;
+ }
+ }
+
+ WdfUsbTargetDeviceGetDeviceDescriptor(BusObject->WdfUsbDevice, &DeviceDescriptor);
+
+ Status = GetDeviceString(BusObject->WdfUsbDevice, DeviceDescriptor.iManufacturer, &BusObject->Manufacturer);
+
+ Status = GetDeviceString(BusObject->WdfUsbDevice, DeviceDescriptor.iProduct, &BusObject->Model);
+
+ WDF_USB_DEVICE_INFORMATION_INIT(&deviceInformation);
+ Status = WdfUsbTargetDeviceRetrieveInformation(BusObject->WdfUsbDevice, &deviceInformation);
+ if (NT_SUCCESS(Status))
+ {
+ BusObject->RemoteWakeCapable = IS_USB_DEVICE_REMOTE_WAKE_CAPABLE(deviceInformation);
+ }
+
+ Status = MbbParseConfigDescriptor(
+ BusObject->WdfUsbDevice,
+ &BusObject->MaxSegmentSize,
+ &BusObject->NcmParams,
+ &BusObject->PowerFiltersSupported,
+ &BusObject->MaxPowerFilterSize,
+ &usbDeviceContext->UsbCommunicationInterfaceIndex,
+ &usbDeviceContext->UsbDataInterfaceIndex,
+ &BusObject->MaxControlChannelSize,
+ &usbDeviceContext->UsbCommunicationInterfaceSetting,
+ &usbDeviceContext->UsbDataInterfaceSetting,
+ &BulkInPacketSize,
+ &BusObject->MTU,
+ &BusObject->MbimVersion,
+ &BusObject->MbimExtendedVersion);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ if (BusObject->MaxControlChannelSize < MIN_CONTROL_MESSAGE_SIZE)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ if (BulkInPacketSize == 0)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ numInterfaces = WdfUsbTargetDeviceGetNumInterfaces(BusObject->WdfUsbDevice);
+
+ settingPairs = (PWDF_USB_INTERFACE_SETTING_PAIR)ALLOCATE_NONPAGED_POOL(sizeof(WDF_USB_INTERFACE_SETTING_PAIR) * numInterfaces);
+
+ if (settingPairs == NULL)
+ {
+ Status = STATUS_INSUFFICIENT_RESOURCES;
+ goto Cleanup;
+ }
+
+ for (interfaceIndex = 0; interfaceIndex < numInterfaces; interfaceIndex++)
+ {
+ settingPairs[interfaceIndex].UsbInterface = WdfUsbTargetDeviceGetInterface(BusObject->WdfUsbDevice, interfaceIndex);
+
+ //
+ // Select alternate setting zero on all interfaces.
+ //
+ settingPairs[interfaceIndex].SettingIndex = 0;
+ }
+
+ WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES(&configParams, numInterfaces, settingPairs);
+
+ Status = WdfUsbTargetDeviceSelectConfig(BusObject->WdfUsbDevice, NULL, &configParams);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ if (configParams.Types.MultiInterface.NumberOfConfiguredInterfaces < 2)
+ {
+ Status = STATUS_NO_SUCH_DEVICE;
+ goto Cleanup;
+ }
+
+
+ usbDeviceContext->WdfCommunicationInterfaceIndex = 0xff;
+ usbDeviceContext->WdfDataInterfaceIndex = 0xff;
+
+ for (i = 0; i < configParams.Types.MultiInterface.NumberOfConfiguredInterfaces; i++)
+ {
+ UsbInterface = WdfUsbTargetDeviceGetInterface(BusObject->WdfUsbDevice, i);
+ CurrentSetting = WdfUsbInterfaceGetConfiguredSettingIndex(UsbInterface);
+ WdfUsbInterfaceGetDescriptor(UsbInterface, CurrentSetting, &InterfaceDescriptor);
+ if ((InterfaceDescriptor.bInterfaceNumber == usbDeviceContext->UsbCommunicationInterfaceIndex))
+ {
+ if (usbDeviceContext->WdfCommunicationInterfaceIndex == 0xff)
+ {
+ usbDeviceContext->WdfCommunicationInterfaceIndex = i;
+ }
+ }
+
+ if ((InterfaceDescriptor.bInterfaceNumber == usbDeviceContext->UsbDataInterfaceIndex))
+ {
+ if (usbDeviceContext->WdfDataInterfaceIndex == 0xff)
+ {
+ usbDeviceContext->WdfDataInterfaceIndex = i;
+ }
+ }
+ }
+
+ if ((usbDeviceContext->WdfCommunicationInterfaceIndex == 0xff) || (usbDeviceContext->WdfDataInterfaceIndex == 0xff))
+ {
+ Status = STATUS_NO_SUCH_DEVICE;
+ goto Cleanup;
+ }
+
+ //
+ // get interrupt pipe handles
+ //
+ {
+ BYTE ConfiguredPipes = 0;
+ UsbInterface = WdfUsbTargetDeviceGetInterface(BusObject->WdfUsbDevice, usbDeviceContext->WdfCommunicationInterfaceIndex);
+
+ WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_SETTING(&SettingParams, usbDeviceContext->UsbCommunicationInterfaceSetting);
+
+ Status = WdfUsbInterfaceSelectSetting(UsbInterface, WDF_NO_OBJECT_ATTRIBUTES, &SettingParams);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ ConfiguredPipes = WdfUsbInterfaceGetNumConfiguredPipes(UsbInterface);
+
+ if (ConfiguredPipes != 1)
+ {
+ Status = STATUS_NO_SUCH_DEVICE;
+ goto Cleanup;
+ }
+
+ WDF_USB_PIPE_INFORMATION_INIT(&pipeInfo);
+
+ pipe = WdfUsbInterfaceGetConfiguredPipe(
+ UsbInterface,
+ 0, // index 0
+ &pipeInfo);
+
+ if (WdfUsbPipeTypeInterrupt == pipeInfo.PipeType)
+ {
+ usbDeviceContext->InterruptPipe = pipe;
+ usbDeviceContext->InterruptPipeIoTarget = WdfUsbTargetPipeGetIoTarget(pipe);
+
+ usbDeviceContext->InterruptPipeMaxPacket = pipeInfo.MaximumPacketSize;
+ }
+ else
+ {
+ Status = STATUS_NO_SUCH_DEVICE;
+ goto Cleanup;
+ }
+ }
+
+ BusObject->SyncInterruptReadBuffer = (PUCHAR)ALLOCATE_NONPAGED_POOL(usbDeviceContext->InterruptPipeMaxPacket);
+
+ if (BusObject->SyncInterruptReadBuffer == NULL)
+ {
+ Status = STATUS_NO_MEMORY;
+ goto Cleanup;
+ }
+
+ //
+ // Configure the continous reader now
+ //
+
+ WDF_USB_CONTINUOUS_READER_CONFIG_INIT(&ReaderConfig, InterruptPipeReadComplete, BusObject, usbDeviceContext->InterruptPipeMaxPacket);
+
+ ReaderConfig.NumPendingReads = 1;
+ ReaderConfig.EvtUsbTargetPipeReadersFailed = InterruptPipeReadError;
+
+ Status = WdfUsbTargetPipeConfigContinuousReader(usbDeviceContext->InterruptPipe, &ReaderConfig);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ Status = GetNtbParameters(BusObject->WdfUsbDevice, &BusObject->NtbParam);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ if (!BusObject->ChainedMdlsSupported)
+ {
+ //
+ // chained mdl's not supported, create a lookaside list to hold the buffers
+ //
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = BusObject->WdfUsbDevice;
+ //
+ // TODO : For testing
+ //
+ // BusObject->NtbParam.dwNtbOutMaxSize = 512;
+
+ Status = WdfLookasideListCreate(
+ &attributes, BusObject->NtbParam.dwNtbOutMaxSize, NonPagedPoolNx, WDF_NO_OBJECT_ATTRIBUTES, 'CBMW', &usbDeviceContext->LookasideList);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+ }
+
+ if (BusObject->UsbCapDeviceInfo.DeviceInfoHeader.DeviceType == USB_CAP_DEVICE_TYPE_UDE_MBIM)
+ {
+ BusObject->MaxBulkInTransfer = BusObject->NtbParam.dwNtbInMaxSize < MAX_HOST_NTB_SIZE_FOR_UDE_MBIM
+ ? BusObject->NtbParam.dwNtbInMaxSize
+ : MAX_HOST_NTB_SIZE_FOR_UDE_MBIM;
+ }
+ else
+ {
+ BusObject->MaxBulkInTransfer =
+ BusObject->NtbParam.dwNtbInMaxSize < MAX_HOST_NTB_SIZE ? BusObject->NtbParam.dwNtbInMaxSize : MAX_HOST_NTB_SIZE;
+ }
+
+ //
+ // round down the transfer size so it is a multiple of maxpacket size for the builk in pipe
+ //
+ BusObject->MaxBulkInTransfer = (BusObject->MaxBulkInTransfer / BulkInPacketSize) * BulkInPacketSize;
+
+ BusObject->BulkInHeaderSize =
+ ROUND_UP_COUNT((ULONG)MmSizeOfMdl(NULL, ROUND_UP_COUNT(BusObject->MaxBulkInTransfer + PAGE_SIZE, ALIGN_QUAD)), ALIGN_QUAD);
+
+ if ((BusObject->NtbParam.bmNtbFormatSupported & NCM_NTB_FORMAT_32_BIT) == NCM_NTB_FORMAT_32_BIT)
+ {
+ //
+ // device supports 32 bit mode
+ //
+ if ((BusObject->NtbParam.dwNtbInMaxSize > 0xffff) || (BusObject->NtbParam.dwNtbOutMaxSize > 0xffff))
+ {
+ //
+ // the device can actually handle a transfer larger than 16bit, change to 32 bit
+ //
+ BusObject->NtbFormat32Bit = TRUE;
+ }
+ }
+
+ //
+ // put the device back into a known state
+ //
+ Status = MbbBusResetDeviceAndSetParms(BusObject);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ *BusHandle = BusObject;
+ usbDeviceContext->BusObject = BusObject;
+ BusObject = NULL;
+
+Cleanup:
+
+ if (settingPairs != NULL)
+ {
+ FREE_POOL(settingPairs);
+ settingPairs = NULL;
+ }
+
+ if (BusObject != NULL && preAllocatedBusObject == NULL)
+ {
+ FreeBusObject(BusObject);
+ BusObject = NULL;
+ }
+
+ return Status;
+}
+
+VOID FreeBusObject(_In_ __drv_freesMem(Mem) PBUS_OBJECT BusObject)
+
+{
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+ if (BusObject->WdfUsbDevice != NULL)
+ {
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ if (usbDeviceContext->InterruptPipeIoTarget != NULL)
+ {
+ WdfIoTargetStop(usbDeviceContext->InterruptPipeIoTarget, WdfIoTargetCancelSentIo);
+ }
+
+ usbDeviceContext->BusObject = NULL;
+ }
+
+ if (BusObject->Manufacturer != NULL)
+ {
+ FREE_POOL(BusObject->Manufacturer);
+ BusObject->Manufacturer = NULL;
+ }
+
+ if (BusObject->Model != NULL)
+ {
+ FREE_POOL(BusObject->Model);
+ BusObject->Model = NULL;
+ }
+
+ if (BusObject->WdfDevice != NULL)
+ {
+ WdfObjectDelete(BusObject->WdfDevice);
+ }
+
+ if (BusObject->UsbSsIrp != NULL)
+ {
+ IoCancelIrp(BusObject->UsbSsIrp);
+
+
+ KeWaitForSingleObject(&BusObject->UsbSsIrpComplete, Executive, KernelMode, FALSE, NULL);
+
+
+ IoFreeIrp(BusObject->UsbSsIrp);
+ BusObject->UsbSsIrp = NULL;
+ }
+
+ if (BusObject->SyncInterruptReadBuffer != NULL)
+ {
+ FREE_POOL(BusObject->SyncInterruptReadBuffer);
+ BusObject->SyncInterruptReadBuffer = NULL;
+ }
+
+ FREE_POOL(BusObject);
+ BusObject = NULL;
+
+ return;
+}
+
+VOID MbbBusCleanup(__in MBB_BUS_HANDLE BusHandle)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+
+ FreeBusObject(BusObject);
+ BusObject = NULL;
+
+ return;
+}
+
+NTSTATUS
+MbbParseConfigDescriptor(
+ WDFUSBDEVICE WdfUsbDevice,
+ PUSHORT MaxSegmentSize,
+ PUCHAR NcmCaps,
+ PUCHAR PowerFiltersSupported,
+ PUCHAR MaxPowerFilterSize,
+ PUCHAR CommunicationClassInterface,
+ PUCHAR DataClassInterface,
+ PUSHORT MaxControlMessage,
+ PUCHAR AltCommunicationClassSetting,
+ PUCHAR AltDataClassSetting,
+ PUSHORT BulkInDataClassPacketSize,
+ PUSHORT MTU,
+ PUSHORT MbimVersion,
+ PUSHORT MbimExtendedVersion)
+
+{
+
+ NTSTATUS Status;
+
+ BYTE* ConfigDescriptorBuffer = NULL;
+ PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptor = NULL;
+ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor = NULL;
+ PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor = NULL;
+ PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR IadDescriptor = NULL;
+ PUSB_CS_DESCRIPTOR CsDescriptor = NULL;
+ PUSB_CS_ECM_DESCRIPTOR EcmDescriptor = NULL;
+ PUSB_CS_NCM_DESCRIPTOR NcmDescriptor = NULL;
+ PUSB_CS_MBB_DESCRIPTOR MbbDescriptor = NULL;
+ PUSB_CS_MBB_DESCRIPTOR_EXTENDED MbbDescriptorExtended = NULL;
+ PUSB_CS_CDC_DESCRIPTOR CdcDescriptor = NULL;
+
+ BYTE* Current = NULL;
+ USHORT DescriptorSize = 0;
+
+ BOOLEAN GotEcmDesc = FALSE;
+ BOOLEAN GotNcmDesc = FALSE;
+ BOOLEAN GotMbbDesc = FALSE;
+ BYTE CurrentInterface = 0;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+ *CommunicationClassInterface = 0xff;
+ *DataClassInterface = 0xff;
+ *AltCommunicationClassSetting = 0;
+ *AltDataClassSetting = 0;
+ *BulkInDataClassPacketSize = 0;
+ *MTU = 0;
+ *MbimVersion = 0x0100; // Default to MBIM 1.0 Version
+ *MbimExtendedVersion = 0x0100;
+
+ usbDeviceContext = GetUsbDeviceContext(WdfUsbDevice);
+
+ Status = WdfUsbTargetDeviceRetrieveConfigDescriptor(WdfUsbDevice, NULL, &DescriptorSize);
+
+ if (Status != STATUS_BUFFER_TOO_SMALL)
+ {
+
+ goto Cleanup;
+ }
+
+ ConfigDescriptorBuffer = (BYTE*)ALLOCATE_NONPAGED_POOL(DescriptorSize);
+
+ if (ConfigDescriptorBuffer == NULL)
+ {
+ Status = STATUS_NO_MEMORY;
+ goto Cleanup;
+ }
+
+ Status = WdfUsbTargetDeviceRetrieveConfigDescriptor(WdfUsbDevice, ConfigDescriptorBuffer, &DescriptorSize);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ Current = ConfigDescriptorBuffer;
+
+ while (Current + sizeof(USB_DESCRIPTOR_HEADER) <= ConfigDescriptorBuffer + DescriptorSize)
+ {
+ PUSB_DESCRIPTOR_HEADER Header = (PUSB_DESCRIPTOR_HEADER)Current;
+
+ if (Current + Header->bLength > ConfigDescriptorBuffer + DescriptorSize)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+ switch (Header->bDescriptorType)
+ {
+ case USB_CONFIGURATION_DESCRIPTOR_TYPE:
+
+ ConfigDescriptor = (PUSB_CONFIGURATION_DESCRIPTOR)Current;
+
+ break;
+
+ case USB_INTERFACE_DESCRIPTOR_TYPE:
+
+ InterfaceDescriptor = (PUSB_INTERFACE_DESCRIPTOR)Current;
+
+ CurrentInterface = InterfaceDescriptor->bInterfaceNumber;
+
+ if ((InterfaceDescriptor->bInterfaceClass == MBIM_CC_INTERFACE_CLASS) &&
+ ((InterfaceDescriptor->bInterfaceSubClass == MBIM_CC_INTERFACE_SUBCLASS)) &&
+ (InterfaceDescriptor->bInterfaceProtocol == MBIM_CC_INTERFACE_PROTOCOL ||
+ InterfaceDescriptor->bInterfaceProtocol == MBIM_CC_INTERFACE_NBL_PROTOCOL ||
+ InterfaceDescriptor->bInterfaceProtocol == MBIM_CC_INTERFACE_NETPACKET_PROTOCOL))
+ {
+
+ *CommunicationClassInterface = InterfaceDescriptor->bInterfaceNumber;
+ *AltCommunicationClassSetting = InterfaceDescriptor->bAlternateSetting;
+ }
+
+ if ((InterfaceDescriptor->bInterfaceClass == MBIM_DC_INTERFACE_CLASS) &&
+ (InterfaceDescriptor->bInterfaceSubClass == MBIM_DC_INTERFACE_SUBCLASS) &&
+ (InterfaceDescriptor->bInterfaceProtocol == MBIM_DC_INTERFACE_PROTOCOL))
+ {
+ *DataClassInterface = InterfaceDescriptor->bInterfaceNumber;
+ *AltDataClassSetting = InterfaceDescriptor->bAlternateSetting;
+ }
+
+ break;
+
+ case USB_ENDPOINT_DESCRIPTOR_TYPE:
+
+ if ((Header->bLength != sizeof(*EndpointDescriptor)))
+ {
+
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+ EndpointDescriptor = (PUSB_ENDPOINT_DESCRIPTOR)Current;
+
+
+ if (CurrentInterface == *DataClassInterface)
+ {
+ //
+ // this endpoint is for the data interface
+ //
+ if (USB_ENDPOINT_DIRECTION_IN(EndpointDescriptor->bEndpointAddress) && (EndpointDescriptor->bmAttributes & USB_ENDPOINT_TYPE_BULK))
+ {
+ //
+ // bulk in endpoint
+ //
+ *BulkInDataClassPacketSize = EndpointDescriptor->wMaxPacketSize & 0x7ff;
+
+ }
+ }
+
+ break;
+
+ case USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE:
+
+
+ break;
+
+ case USB_CDC_CS_DESCRIPTOR_TYPE:
+
+ CsDescriptor = (PUSB_CS_DESCRIPTOR)Current;
+
+ switch (CsDescriptor->bSubType)
+ {
+ case USB_CDC_CS_ECM_DESCRIPTOR_SUBTYPE:
+
+ EcmDescriptor = (PUSB_CS_ECM_DESCRIPTOR)Current;
+
+
+ break;
+
+ case USB_CDC_CS_NCM_DESCRIPTOR_SUBTYPE:
+
+ NcmDescriptor = (PUSB_CS_NCM_DESCRIPTOR)Current;
+
+ break;
+
+ case USB_CDC_CS_DESCRIPTOR_SUBTYPE:
+
+ if ((CsDescriptor->bLength != sizeof(*CdcDescriptor)))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+ CdcDescriptor = (PUSB_CS_CDC_DESCRIPTOR)Current;
+
+ break;
+
+ case USB_CDC_CS_MBB_DESCRIPTOR_SUBTYPE:
+
+ if ((CsDescriptor->bLength != sizeof(*MbbDescriptor)))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+ MbbDescriptor = (PUSB_CS_MBB_DESCRIPTOR)Current;
+
+ if (MbbDescriptor->wMbbVersion < MBIM_MBB_FUNCDESC_MIN_VERSION)
+ {
+
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ if (MbbDescriptor->wMaxSegmentSize < MBIM_MIN_SEGMENT_SIZE)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ if (MbbDescriptor->bMaxFilterSize > MBIM_MAX_PACKET_FILTER_SIZE)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+ if (MbbDescriptor->bNumberPowerFilters < MBIM_MIN_NUMBER_OF_PACKET_FILTERS)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+ *MaxSegmentSize = MbbDescriptor->wMaxSegmentSize;
+ *PowerFiltersSupported = MbbDescriptor->bNumberPowerFilters;
+ *MaxPowerFilterSize = MbbDescriptor->bMaxFilterSize;
+ *NcmCaps = MbbDescriptor->bmNetworkCapabilities;
+ *MaxControlMessage = MbbDescriptor->wMaxControlMessage;
+ GotMbbDesc = TRUE;
+ *MbimVersion = MbbDescriptor->wMbbVersion;
+
+ break;
+
+ case USB_CDC_CS_MBB_DESCRIPTOR_EXTENDED_SUBTYPE:
+
+ // MBIM 1.0 - 6.5: If MBIM Extended Functional Descriptor is provided, it must appear after MBIM Functional Descriptor.
+ if (!GotMbbDesc)
+ {
+ Status = STATUS_UNRECOGNIZED_MEDIA;
+
+ goto Cleanup;
+ }
+
+ if ((CsDescriptor->bLength != sizeof(*MbbDescriptorExtended)))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+ MbbDescriptorExtended = (PUSB_CS_MBB_DESCRIPTOR_EXTENDED)Current;
+
+ if (MbbDescriptorExtended->wMbbVersion < MBIM_MBB_FUNCDESC_EXTENDED_MIN_VERSION)
+ {
+
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ if (MbbDescriptorExtended->wMTU < MBIM_MIN_MTU_SIZE)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ // If the Extended MTU comes in as larger than the MaxSegmentSize, we set the MTU to MaxSegmentSize
+ if (MbbDescriptorExtended->wMTU > *MaxSegmentSize)
+ {
+ // Check if the MaxSegmentSize is not less than the Minimum MTU size, if it is then bail
+ if (*MaxSegmentSize < MBIM_MIN_MTU_SIZE)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+ else
+ {
+ MbbDescriptorExtended->wMTU = *MaxSegmentSize;
+ }
+ }
+
+ *MTU = MbbDescriptorExtended->wMTU;
+ *MbimExtendedVersion = MbbDescriptorExtended->wMbbVersion;
+
+ break;
+
+ default:
+
+
+ break;
+ }
+
+ break;
+
+ default:
+
+
+ break;
+ }
+
+ Current += Header->bLength;
+ }
+
+ Status = STATUS_SUCCESS;
+
+Cleanup:
+
+ if (ConfigDescriptorBuffer != NULL)
+ {
+ FREE_POOL(ConfigDescriptorBuffer);
+ ConfigDescriptorBuffer = NULL;
+ }
+
+ if (!(GotMbbDesc))
+ {
+
+ Status = STATUS_UNRECOGNIZED_MEDIA;
+ }
+
+ if ((*CommunicationClassInterface == 0xff) || (*DataClassInterface == 0xff))
+ {
+
+ Status = STATUS_UNRECOGNIZED_MEDIA;
+ }
+
+ return Status;
+}
+
+NTSTATUS
+GetNtbParameters(WDFUSBDEVICE WdfUsbDevice, PNCM_NTB_PARAMETER NcmNtb)
+
+{
+
+ NTSTATUS Status;
+ ULONG BytesTransfered = 0;
+
+ Status = SendSyncControlCommand(
+ WdfUsbDevice, BmRequestDeviceToHost, BmRequestToInterface, GET_NTB_PARAMETERS, 0, (PUCHAR)NcmNtb, sizeof(*NcmNtb), &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ if (BytesTransfered < sizeof(*NcmNtb))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+ }
+ else
+ {
+ goto Cleanup;
+ }
+
+ if ((NcmNtb->bmNtbFormatSupported & NCM_NTB_FORMAT_16_BIT) != NCM_NTB_FORMAT_16_BIT)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ if (NcmNtb->wNdpInPayloadRemainder >= NcmNtb->wNdpInDivisor)
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
+ if ((NcmNtb->wNdpInPayloadRemainder > NcmNtb->dwNtbInMaxSize) || (NcmNtb->wNdpInDivisor > NcmNtb->dwNtbInMaxSize))
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
+ if ((NcmNtb->wNdpInAlignment < 4) || (NcmNtb->wNdpInAlignment > NcmNtb->dwNtbInMaxSize) ||
+ ((NcmNtb->wNdpInAlignment - 1) & NcmNtb->wNdpInAlignment) != 0)
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
+ if (NcmNtb->wNdpOutPayloadRemainder >= NcmNtb->wNdpOutDivisor)
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
+ if ((NcmNtb->wNdpOutPayloadRemainder > NcmNtb->dwNtbOutMaxSize) || (NcmNtb->wNdpOutDivisor > NcmNtb->dwNtbOutMaxSize))
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
+ if ((NcmNtb->wNdpOutAlignment < 4) || (NcmNtb->wNdpOutAlignment > NcmNtb->dwNtbOutMaxSize) ||
+ ((NcmNtb->wNdpOutAlignment - 1) & NcmNtb->wNdpOutAlignment) != 0)
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
+Cleanup:
+
+ return Status;
+}
+
+NTSTATUS
+SetActivityIdForRequest(__in WDFREQUEST Request, __in LPGUID ActivityId)
+{
+ NTSTATUS Status = STATUS_SUCCESS;
+ PIRP Irp = NULL;
+
+ do
+ {
+ GUID zeroGuid = { 0 };
+
+ if (ActivityId == NULL || IsEqualGUID(*ActivityId, zeroGuid))
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ break;
+ }
+
+ Irp = WdfRequestWdmGetIrp(Request);
+
+ if (Irp == NULL)
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ break;
+ }
+
+ // set the activity id of the IRP
+ Status = IoSetActivityIdIrp(Irp, ActivityId);
+ } while (FALSE);
+
+ return Status;
+}
+
+EVT_WDF_REQUEST_COMPLETION_ROUTINE SendCompletionRoutine;
+
+VOID SendCompletionRoutine(__in WDFREQUEST Request, __in WDFIOTARGET Target, __in PWDF_REQUEST_COMPLETION_PARAMS Params, __in WDFCONTEXT Context)
+
+{
+ PREQUEST_CONTEXT ReqContext = NULL;
+
+ ReqContext = GetRequestContext(Request);
+
+ (ReqContext->Callback.Send)(ReqContext->ProtocolHandle, ReqContext->CallbackContext, Params->IoStatus.Status);
+
+ WdfObjectDelete(Request);
+}
+
+NTSTATUS
+MbbBusSendMessageFragment(
+ __in MBB_BUS_HANDLE BusHandle,
+ __in MBB_REQUEST_HANDLE RequestHandle,
+ __in PVOID MessageFragment,
+ __in ULONG FragmentLength,
+ __in LPGUID ActivityId,
+ __in MBB_BUS_SEND_COMPLETION_CALLBACK SendCompletionCallback)
+
+ /*
+ Description
+ The protocol layer call this routine to request the bus layer to
+ send a message fragment. Fragmentation / Reassembly is handled by
+ the protocol layer and it will only handle fragments that are within
+ the maximum transfer size of the bus.
+
+ This routine is asynchronous and returns immediately after queueing
+ the transfer. The caller is notified of the completion through the
+ callback.
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ __in MBB_REQUEST_HANDLE RequestHandle,
+ Identifies the request.
+
+ __in PVOID MessageFragment,
+ The data payload that needs to be sent.
+
+ __in ULONG FragmentLength,
+ Length of the data payload. This will not be greater than the
+ maximum transfer size supported by the bus.
+
+ __in LPGUID ActivityId,
+ The activity Id to be associated with this fragment transfer.
+ This activity Id will also be used by USB for logging USB events.
+
+ __in MBB_BUS_SEND_COMPLETION_CALLBACK SendCompletionCallback
+ The completion callback routine that will be called by the bus
+ when the transfer is complete.
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ The transfer has completed successfully. SendCompletionCallback will NOT be called.
+
+ NTSTATUS_PENDING
+ The transfer was queued. SendCompletionCallback will be called on completion.
+
+ Other failure code
+ The transfer could not be queued. SendCompletionCallback will NOT be called.
+ */
+
+{
+
+ WDF_USB_CONTROL_SETUP_PACKET packet;
+ NTSTATUS status;
+ WDF_OBJECT_ATTRIBUTES attributes;
+ WDFMEMORY memHandle = NULL;
+ WDFREQUEST request = NULL;
+ BOOLEAN SentToDevice = FALSE;
+ PREQUEST_CONTEXT Context = NULL;
+ WDF_REQUEST_SEND_OPTIONS SendOptions;
+
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, REQUEST_CONTEXT);
+ attributes.ParentObject = BusObject->WdfUsbDevice;
+
+ status = WdfRequestCreate(&attributes, WdfUsbTargetDeviceGetIoTarget(BusObject->WdfUsbDevice), &request);
+
+ if (!NT_SUCCESS(status))
+ {
+
+ goto Cleanup;
+ }
+
+ Context = GetRequestContext(request);
+
+ Context->CallbackContext = RequestHandle;
+ Context->Callback.Send = SendCompletionCallback;
+ Context->ProtocolHandle = BusObject->ProtocolHandle;
+ Context->UsbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = request;
+
+ status = WdfMemoryCreatePreallocated(&attributes, MessageFragment, FragmentLength, &memHandle);
+
+ if (!NT_SUCCESS(status))
+ {
+
+ goto Cleanup;
+ }
+
+ WDF_USB_CONTROL_SETUP_PACKET_INIT_CLASS(
+ &packet, BmRequestHostToDevice, BmRequestToInterface, SEND_ENCAPSULATE_COMMAND, 0, Context->UsbDeviceContext->UsbCommunicationInterfaceIndex);
+
+ status = WdfUsbTargetDeviceFormatRequestForControlTransfer(BusObject->WdfUsbDevice, request, &packet, memHandle, NULL);
+
+ if (!NT_SUCCESS(status))
+ {
+
+ goto Cleanup;
+ }
+
+ WdfRequestSetCompletionRoutine(request, SendCompletionRoutine, NULL);
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, 0);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(10));
+
+ // Set the activity Id of the IRP associated with the request.
+ // Ignore any failures
+ SetActivityIdForRequest(request, ActivityId);
+
+ if (FragmentLength >= sizeof(MBB_COMMAND_HEADER))
+ {
+ PMBB_COMMAND_HEADER CommandHeader = (PMBB_COMMAND_HEADER)MessageFragment;
+ }
+
+ SentToDevice = WdfRequestSend(request, WdfUsbTargetDeviceGetIoTarget(BusObject->WdfUsbDevice), &SendOptions);
+
+ status = STATUS_PENDING;
+
+ if (!SentToDevice)
+ {
+
+ status = WdfRequestGetStatus(request);
+
+ }
+
+Cleanup:
+
+ if (!NT_SUCCESS(status))
+ {
+ if (request != NULL)
+ {
+ WdfObjectDelete(request);
+ request = NULL;
+ }
+ }
+
+ return status;
+}
+
+EVT_WDF_REQUEST_COMPLETION_ROUTINE ReceiveCompletionRoutine;
+
+VOID ReceiveCompletionRoutine(__in WDFREQUEST Request, __in WDFIOTARGET Target, __in PWDF_REQUEST_COMPLETION_PARAMS Params, __in WDFCONTEXT Context)
+
+{
+ PREQUEST_CONTEXT ReqContext = NULL;
+ GUID ActivityId = { 0 };
+ PIRP Irp = NULL;
+ NTSTATUS Status = STATUS_INVALID_PARAMETER;
+
+ ReqContext = GetRequestContext(Request);
+
+ // Get the IRP
+ Irp = WdfRequestWdmGetIrp(Request);
+
+ if (Irp != NULL)
+ {
+ // Get the activity Id
+ Status = IoGetActivityIdIrp(Irp, &ActivityId);
+ }
+
+ if (NT_SUCCESS(Params->IoStatus.Status) && (Params->IoStatus.Information >= sizeof(MBB_COMMAND_DONE_HEADER)))
+ {
+
+ PMBB_COMMAND_DONE_HEADER CommandHeader = (PMBB_COMMAND_DONE_HEADER)ReqContext->Buffer;
+ }
+
+ (*ReqContext->Callback.Receive)(
+ ReqContext->ProtocolHandle, ReqContext->CallbackContext, Params->IoStatus.Status, (ULONG)Params->IoStatus.Information);
+
+ WdfObjectDelete(Request);
+}
+
+NTSTATUS
+MbbBusReceiveMessageFragment(
+ _In_ MBB_BUS_HANDLE BusHandle,
+ _In_ MBB_REQUEST_HANDLE RequestHandle,
+ _In_ __drv_aliasesMem PVOID MessageFragment,
+ _In_ ULONG FragmentLength,
+ _In_ LPGUID ActivityId,
+ _In_ MBB_BUS_RECEIVE_COMPLETION_CALLBACK ReceiveCompletionCallback)
+ /*
+ Description
+
+ Parameters
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Initialization was successful.
+
+ Other failure code
+ */
+ /*
+ Description
+ The protocol layer call this routine to request the bus layer to
+ receive data from the device. Reassembly is handled by the protocol layer.
+
+ This routine is asynchronous and returns immediately after queueing
+ the transfer. The caller is notified of the completion through the
+ callback.
+
+ Parameters
+ _In_ MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ _In_ MBB_REQUEST_HANDLE RequestHandle,
+ Identifies the request.
+
+ _In_ __drv_aliasesMem PVOID MessageFragment,
+ The data buffer that would be filled with the received data.
+
+ _In_ ULONG FragmentLength,
+ Length of the data requested from the device. This will not be
+ greater than the maximum transfer size supported by the bus.
+
+ _In_ LPGUID ActivityId,
+ The activity Id to be associated with this fragment transfer.
+ This activity Id will also be used by USB for logging USB events.
+
+ _In_ MBB_BUS_RECEIVE_COMPLETION_CALLBACK ReceiveCompletionCallback
+ The completion callback routine that will be called by the bus
+ when the transfer is complete.
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ The transfer has completed successfully. ReceiveCompletionCallback will NOT be called.
+
+ NTSTATUS_PENDING
+ The transfer was queued. ReceiveCompletionCallback will be called on completion.
+
+ Other failure code
+ The transfer could not be queued. ReceiveCompletionCallback will NOT be called.
+ */
+
+{
+ WDF_USB_CONTROL_SETUP_PACKET packet;
+ NTSTATUS status;
+ WDF_OBJECT_ATTRIBUTES attributes;
+ WDFMEMORY memHandle = NULL;
+ WDFREQUEST request = NULL;
+ BOOLEAN SentToDevice = FALSE;
+ PREQUEST_CONTEXT Context = NULL;
+ WDF_REQUEST_SEND_OPTIONS SendOptions;
+ PIRP Irp = NULL;
+
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+
+
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, REQUEST_CONTEXT);
+
+ attributes.ParentObject = BusObject->WdfUsbDevice;
+
+ status = WdfRequestCreate(&attributes, WdfUsbTargetDeviceGetIoTarget(BusObject->WdfUsbDevice), &request);
+
+ if (!NT_SUCCESS(status))
+ {
+
+ goto Cleanup;
+ }
+
+ Context = GetRequestContext(request);
+
+ Context->CallbackContext = RequestHandle;
+ Context->Callback.Receive = ReceiveCompletionCallback;
+ Context->ProtocolHandle = BusObject->ProtocolHandle;
+ Context->UsbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ Context->Buffer = MessageFragment;
+ Context->BufferLength = FragmentLength;
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = request;
+
+ status = WdfMemoryCreatePreallocated(&attributes, MessageFragment, FragmentLength, &memHandle);
+
+ if (!NT_SUCCESS(status))
+ {
+
+ goto Cleanup;
+ }
+
+ WDF_USB_CONTROL_SETUP_PACKET_INIT_CLASS(
+ &packet, BmRequestDeviceToHost, BmRequestToInterface, GET_ENCAPSULATE_RESPONSE, 0, Context->UsbDeviceContext->UsbCommunicationInterfaceIndex);
+
+ status = WdfUsbTargetDeviceFormatRequestForControlTransfer(BusObject->WdfUsbDevice, request, &packet, memHandle, NULL);
+
+ if (!NT_SUCCESS(status))
+ {
+
+ goto Cleanup;
+ }
+
+ WdfRequestSetCompletionRoutine(request, ReceiveCompletionRoutine, NULL);
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, 0);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(10));
+
+ // Set the activity Id of the IRP associated with the request.
+ // Ignore any failures
+ SetActivityIdForRequest(request, ActivityId);
+
+ SentToDevice = WdfRequestSend(request, WdfUsbTargetDeviceGetIoTarget(BusObject->WdfUsbDevice), &SendOptions);
+
+ status = STATUS_PENDING;
+
+ if (!SentToDevice)
+ {
+
+ status = WdfRequestGetStatus(request);
+
+ }
+
+Cleanup:
+
+ if (!NT_SUCCESS(status))
+ {
+ if (request != NULL)
+ {
+ WdfObjectDelete(request);
+ request = NULL;
+ }
+ }
+
+ return status;
+}
+
+VOID InterruptPipeReadComplete(__in WDFUSBPIPE Pipe, __in WDFMEMORY Memory, __in size_t NumBytesTransfered, __in WDFCONTEXT Context)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)Context;
+ PVOID Buffer = NULL;
+ PUSB_CDC_NOTIFICATION CdcNotification = NULL;
+ PUSB_CDC_NOTIFICATION_SPEED_CHANGE CdcSpeedChangeNotification = NULL;
+ ULONG TempBytesTransfered = (ULONG)NumBytesTransfered;
+ UCHAR IndicateBuffer[INTERRUPT_REASSEMBLY_BUFFER_SIZE];
+ ULONG BufferLength = 0;
+
+
+ Buffer = WdfMemoryGetBuffer(Memory, NULL);
+
+ //
+ // process this fragment, the function will return a non-zero value if a complete message is returned.
+ //
+ BufferLength = ProcessInterruptPipeRead(BusObject, (PCUCHAR)Buffer, NumBytesTransfered, IndicateBuffer, sizeof(IndicateBuffer));
+
+ if (BufferLength >= sizeof(*CdcNotification))
+ {
+ CdcNotification = (PUSB_CDC_NOTIFICATION)&IndicateBuffer[0];
+
+ switch (CdcNotification->bNotificationCode)
+ {
+ case USB_CDC_NOTIFICATION_RESPONSE_AVAILABLE: (BusObject->ResponseAvailableCallback)(BusObject->ProtocolHandle); break;
+
+ case USB_CDC_NOTIFICATION_NETWORK_CONNECTION:
+ case USB_CDC_NOTIFICATION_CONNECTION_SPEED_CHANGE:
+ default: break;
+ }
+ }
+
+ return;
+}
+
+BOOLEAN
+InterruptPipeReadError(__in WDFUSBPIPE Pipe, __in NTSTATUS Status, __in USBD_STATUS UsbdStatus)
+
+{
+ return TRUE;
+}
+
+NTSTATUS
+MbbBusQueryBusParameters(__in MBB_BUS_HANDLE BusHandle, __out PMBB_BUS_PARAMETERS BusParameters)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+
+ RtlZeroMemory(BusParameters, sizeof(*BusParameters));
+
+ BusParameters->FragmentSize = BusObject->MaxControlChannelSize;
+
+ BusParameters->MaxSegmentSize = BusObject->MaxSegmentSize;
+
+ BusParameters->Ntb32BitSupported = (BusObject->NtbParam.bmNtbFormatSupported & NCM_NTB_FORMAT_32_BIT) == NCM_NTB_FORMAT_32_BIT;
+ BusParameters->MaxOutNtb = BusObject->NtbParam.dwNtbOutMaxSize;
+
+ if ((BusObject->NtbParam.wNtbOutMaxDatagrams == 0) || (BusObject->NtbParam.wNtbOutMaxDatagrams > MAX_OUT_DATAGRAMS))
+ {
+ //
+ // Zero means unlimited, impose a limit so the driver can preallocated the contexts it needs
+ //
+ BusParameters->MaxOutDatagrams = MAX_OUT_DATAGRAMS;
+ }
+ else
+ {
+ BusParameters->MaxOutDatagrams = BusObject->NtbParam.wNtbOutMaxDatagrams;
+ }
+
+ BusParameters->NdpOutDivisor = BusObject->NtbParam.wNdpOutDivisor;
+ BusParameters->NdpOutRemainder = BusObject->NtbParam.wNdpOutPayloadRemainder;
+ BusParameters->NdpOutAlignment = BusObject->NtbParam.wNdpOutAlignment;
+ //
+ // TODO: Read the current value from the bus object when SetNtb is implemented
+ //
+ BusParameters->CurrentMode32Bit = BusObject->NtbFormat32Bit;
+ BusParameters->SelectiveSuspendSupported = TRUE;
+
+ BusParameters->PowerFiltersSupported = BusObject->PowerFiltersSupported;
+ BusParameters->MaxPowerFilterSize = BusObject->MaxPowerFilterSize;
+ BusParameters->RemoteWakeCapable = BusObject->RemoteWakeCapable;
+
+ if (BusObject->Manufacturer != NULL)
+ {
+ RtlStringCbCopyW(BusParameters->Manufacturer, sizeof(BusParameters->Manufacturer), BusObject->Manufacturer);
+ }
+
+ if (BusObject->Model != NULL)
+ {
+ RtlStringCbCopyW(BusParameters->Model, sizeof(BusParameters->Model), BusObject->Model);
+ }
+
+ BusParameters->MTU = BusObject->MTU;
+ if (BusObject->MTU != 0)
+ {
+ BusParameters->IsErrataDevice = TRUE;
+ }
+ else
+ {
+ BusParameters->IsErrataDevice = FALSE;
+ }
+
+ BusParameters->MbimVersion = BusObject->MbimVersion;
+ BusParameters->MbimExtendedVersion = BusObject->MbimExtendedVersion;
+
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS MbbBusHandshake(_In_ PBUS_OBJECT BusObject, _In_ ULONG TransactionId, _In_opt_ PVOID FastIOSendNetBufferListsComplete, _In_opt_ PVOID FastIOIndicateReceiveNetBufferLists)
+{
+ NTSTATUS Status;
+ ULONG BytesTransferred = 0;
+ UCHAR ReadBuffer[256];
+ ULONG RetryCount = 0;
+ MBB_OPEN_MESSAGE OpenMessage;
+ PMBB_OPEN_DONE OpenDoneMessage = NULL;
+ MBB_OPEN_MESSAGE_FASTIO OpenMessageFastIO;
+ PMBB_OPEN_DONE_FASTIO OpenDoneMessageFastIO = NULL;
+
+ RtlZeroMemory(&OpenMessage, sizeof(OpenMessage));
+
+ OpenMessage.MessageHeader.MessageType = MBB_MESSAGE_TYPE_OPEN;
+ OpenMessage.MessageHeader.MessageLength = sizeof(OpenMessage);
+ OpenMessage.MessageHeader.MessageTransactionId = TransactionId;
+ OpenMessage.MaximumControlTransfer =
+ BusObject->MaxControlChannelSize < MAX_CONTROL_MESSAGE_SIZE ? BusObject->MaxControlChannelSize : MAX_CONTROL_MESSAGE_SIZE;
+
+ do
+ {
+ RetryCount++;
+
+ Status = TransactControlChannel(
+ BusObject, RetryCount * INITIAL_OPEN_TIMEOUT, (PUCHAR)&OpenMessage, sizeof(OpenMessage), (PUCHAR)&ReadBuffer[0], sizeof(ReadBuffer), &BytesTransferred);
+ } while ((Status == STATUS_IO_TIMEOUT) && (RetryCount < MAX_OPEN_RETRY_ATTEMPTS));
+
+ if (NT_SUCCESS(Status))
+ {
+ if (BytesTransferred < sizeof(*OpenDoneMessage))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ }
+
+ if (NT_SUCCESS(Status))
+ {
+ OpenDoneMessage = (PMBB_OPEN_DONE)&ReadBuffer[0];
+
+ if ((OpenDoneMessage->MessageHeader.MessageType != MBB_MESSAGE_TYPE_OPEN_DONE) ||
+ (OpenDoneMessage->MessageHeader.MessageLength < sizeof(*OpenDoneMessage)) ||
+ (OpenDoneMessage->MessageHeader.MessageTransactionId != OpenMessage.MessageHeader.MessageTransactionId))
+ {
+ Status = STATUS_NDIS_INVALID_DATA;
+ }
+ else if (OpenDoneMessage->MbbStatus != STATUS_SUCCESS)
+ {
+ Status = STATUS_OPEN_FAILED;
+ }
+ }
+ return Status;
+}
+
+NTSTATUS
+MbbBusStart(_In_ MBB_BUS_HANDLE BusHandle)
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ BOOLEAN FailOpen = FALSE;
+
+ BOOLEAN AltSettingSet = FALSE;
+
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ if (BusObject->State != BUS_STATE_CLOSED)
+ {
+ FailOpen = TRUE;
+ }
+ else
+ {
+ BusObject->State = BUS_STATE_OPENING;
+ }
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+
+ if (FailOpen)
+ {
+ Status = STATUS_UNSUCCESSFUL;
+
+ goto Cleanup;
+ }
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ Status = MbbBusResetDeviceAndSetParms(BusObject);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ Status = MbbBusSelectDataAltSetting(BusObject, ALT_DATA_SETTING_1);
+
+ if (NT_ERROR(Status))
+ {
+ goto Cleanup;
+ }
+
+ AltSettingSet = TRUE;
+
+ //
+ // start the continouse reader now
+ //
+ Status = WdfIoTargetStart(usbDeviceContext->InterruptPipeIoTarget);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ Status = STATUS_SUCCESS;
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ BusObject->State = BUS_STATE_OPENED;
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+
+Cleanup:
+
+ if (!NT_SUCCESS(Status))
+ {
+ //
+ // stop the pipe reader
+ //
+ WdfIoTargetStop(usbDeviceContext->InterruptPipeIoTarget, WdfIoTargetCancelSentIo);
+
+ //
+ // set the data pipes back to alt seeting 0
+ //
+ if (AltSettingSet)
+ {
+ MbbBusSelectDataAltSetting(BusObject, ALT_DATA_SETTING_0);
+ }
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ BusObject->State = BUS_STATE_CLOSED;
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusStop(__in MBB_BUS_HANDLE BusHandle)
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ //
+ // stop the interrupt pipe so the continuous reader will stop and we can do sync reads
+ //
+ WdfIoTargetStop(usbDeviceContext->InterruptPipeIoTarget, WdfIoTargetCancelSentIo);
+
+ Status = STATUS_SUCCESS;
+
+ MbbBusSelectDataAltSetting(BusObject, ALT_DATA_SETTING_0);
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ BusObject->State = BUS_STATE_CLOSED;
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+
+
+ return Status;
+}
+
+BOOLEAN
+MbbBusIsStoped(_In_ MBB_BUS_HANDLE BusHandle)
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ return BusObject->State == BUS_STATE_CLOSED;
+}
+
+NTSTATUS
+MbbBusOpen(_In_ MBB_BUS_HANDLE BusHandle, _In_ ULONG TransactionId, _In_opt_ PVOID FastIOSendNetBufferListsComplete, _In_opt_ PVOID FastIOIndicateReceiveNetBufferLists)
+/*
+ Description
+
+ Opens the session with the device
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ BOOLEAN FailOpen = FALSE;
+
+ PUSB_CDC_NOTIFICATION Notification = NULL;
+ BOOLEAN AltSettingSet = FALSE;
+
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ if (BusObject->State != BUS_STATE_CLOSED)
+ {
+ FailOpen = TRUE;
+ }
+ else
+ {
+ BusObject->State = BUS_STATE_OPENING;
+ }
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+
+ if (FailOpen)
+ {
+ Status = STATUS_UNSUCCESSFUL;
+
+
+ goto Cleanup;
+ }
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+
+ Status = MbbBusResetDeviceAndSetParms(BusObject);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ Status = MbbBusSelectDataAltSetting(BusObject, ALT_DATA_SETTING_1);
+
+ if (NT_ERROR(Status))
+ {
+ goto Cleanup;
+ }
+
+ AltSettingSet = TRUE;
+
+ Status = MbbBusHandshake(BusObject, TransactionId, FastIOSendNetBufferListsComplete, FastIOIndicateReceiveNetBufferLists);
+ if (NT_ERROR(Status))
+ {
+ goto Cleanup;
+ }
+
+ //
+ // start the continouse reader now
+ //
+ Status = WdfIoTargetStart(usbDeviceContext->InterruptPipeIoTarget);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ Status = STATUS_SUCCESS;
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ BusObject->State = BUS_STATE_OPENED;
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+
+Cleanup:
+
+ if (!NT_SUCCESS(Status))
+ {
+ //
+ // stop the pipe reader
+ //
+ WdfIoTargetStop(usbDeviceContext->InterruptPipeIoTarget, WdfIoTargetCancelSentIo);
+
+ //
+ // set the data pipes back to alt seeting 0
+ //
+ if (AltSettingSet)
+ {
+ MbbBusSelectDataAltSetting(BusObject, ALT_DATA_SETTING_0);
+ }
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ BusObject->State = BUS_STATE_CLOSED;
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusClose(__in MBB_BUS_HANDLE BusHandle, __in ULONG TransactionId, __in BOOLEAN ForceClose)
+/*
+ Description
+
+ Opens the session with the device
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ BOOLEAN FailClose = FALSE;
+
+ ULONG BytesTransfered = 0;
+ PUSB_CDC_NOTIFICATION Notification = NULL;
+ MBB_CLOSE_MESSAGE CloseMessage;
+ PMBB_CLOSE_DONE CloseDoneMessage = NULL;
+ UCHAR ReadBuffer[256];
+
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ if (!ForceClose)
+ {
+ if (BusObject->State != BUS_STATE_OPENED)
+ {
+ FailClose = TRUE;
+ }
+ }
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+
+ if (FailClose)
+ {
+ Status = STATUS_UNSUCCESSFUL;
+
+ goto Cleanup;
+ }
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ //
+ // stop the interrupt pipe so the continuous reader will stop and we can do sync reads
+ //
+ WdfIoTargetStop(usbDeviceContext->InterruptPipeIoTarget, WdfIoTargetCancelSentIo);
+
+ RtlZeroMemory(&CloseMessage, sizeof(CloseMessage));
+
+ CloseMessage.MessageHeader.MessageType = MBB_MESSAGE_TYPE_CLOSE;
+ CloseMessage.MessageHeader.MessageLength = sizeof(CloseMessage);
+ CloseMessage.MessageHeader.MessageTransactionId = TransactionId;
+
+ Status = TransactControlChannel(
+ BusObject, DEFAULT_IO_TIMEOUT, (PUCHAR)&CloseMessage, sizeof(CloseMessage), (PUCHAR)&ReadBuffer[0], sizeof(ReadBuffer), &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ if (BytesTransfered < sizeof(*CloseDoneMessage))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ }
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ CloseDoneMessage = (PMBB_CLOSE_DONE)&ReadBuffer[0];
+
+ if ((CloseDoneMessage->MessageHeader.MessageType != MBB_MESSAGE_TYPE_CLOSE_DONE) ||
+ (CloseDoneMessage->MessageHeader.MessageLength < sizeof(*CloseDoneMessage)) ||
+ (CloseDoneMessage->MessageHeader.MessageTransactionId != CloseMessage.MessageHeader.MessageTransactionId))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+
+ goto Cleanup;
+ }
+
+Cleanup:
+
+ Status = STATUS_SUCCESS;
+
+ MbbBusSelectDataAltSetting(BusObject, ALT_DATA_SETTING_0);
+
+ ACQUIRE_PASSIVE_LOCK(&BusObject->Lock);
+
+ BusObject->State = BUS_STATE_CLOSED;
+
+ RELEASE_PASSIVE_LOCK(&BusObject->Lock);
+
+ return Status;
+}
+
+VOID MbbBusSetNotificationState(__in MBB_BUS_HANDLE BusHandle, __in BOOLEAN Enabled)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ if (!Enabled)
+ {
+ WdfIoTargetStop(usbDeviceContext->InterruptPipeIoTarget, WdfIoTargetCancelSentIo);
+ }
+ else
+ {
+ (void)WdfIoTargetStart(usbDeviceContext->InterruptPipeIoTarget);
+ }
+
+ return;
+} \ No newline at end of file
diff --git a/network/wwan/cxwmbclass/cxwmbclass.rc b/network/wwan/cxwmbclass/cxwmbclass.rc
new file mode 100644
index 00000000..6df53fd8
--- /dev/null
+++ b/network/wwan/cxwmbclass/cxwmbclass.rc
@@ -0,0 +1,20 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#include "windows.h"
+#include "ntverp.h"
+
+/*-----------------------------------------------*/
+/* the following lines are specific to this file */
+/*-----------------------------------------------*/
+
+#define VER_FILETYPE VFT_DRV
+
+#define VER_FILESUBTYPE VFT2_DRV_NETWORK
+
+#define VER_FILEDESCRIPTION_STR "Windows Mobile Broadband Class Driver"
+
+#define VER_INTERNALNAME_STR "cxwmbclass.sys"
+#define VER_ORIGINALFILENAME_STR "cxwmbclass.sys"
+
+#include "common.ver"
diff --git a/network/wwan/cxwmbclass/cxwmbclass.sln b/network/wwan/cxwmbclass/cxwmbclass.sln
new file mode 100644
index 00000000..249990f1
--- /dev/null
+++ b/network/wwan/cxwmbclass/cxwmbclass.sln
@@ -0,0 +1,35 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32929.385
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cxwmbclass", "cxwmbclass\cxwmbclass.vcxproj", "{11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Debug|ARM64.Build.0 = Debug|ARM64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Debug|x64.ActiveCfg = Debug|x64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Debug|x64.Build.0 = Debug|x64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Debug|x64.Deploy.0 = Debug|x64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Release|ARM64.ActiveCfg = Release|ARM64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Release|ARM64.Build.0 = Release|ARM64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Release|ARM64.Deploy.0 = Release|ARM64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Release|x64.ActiveCfg = Release|x64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Release|x64.Build.0 = Release|x64
+ {11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}.Release|x64.Deploy.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3DEAC1E8-F245-49DC-AD26-8A3694201775}
+ EndGlobalSection
+EndGlobal
diff --git a/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.inf b/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.inf
new file mode 100644
index 00000000..48f893c6
--- /dev/null
+++ b/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.inf
Binary files differ
diff --git a/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj b/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj
new file mode 100644
index 00000000..8057b531
--- /dev/null
+++ b/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{11CC63F7-F6D0-4CED-99BA-C5FDAE88D29C}</ProjectGuid>
+ <TemplateGuid>{1bc93793-694f-48fe-9372-81e2b05556fd}</TemplateGuid>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
+ <Configuration>Debug</Configuration>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
+ <RootNamespace>cxwmbclass</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <TargetVersion>Windows10</TargetVersion>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+ <ConfigurationType>Driver</ConfigurationType>
+ <DriverType>KMDF</DriverType>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <IncludePath>$(SolutionDir)\inc;$(IncludePath)</IncludePath>
+ <ExternalIncludePath>$(KIT_SHARED_INC_PATH_WDK)\netcx\shared\1.0;$(KM_IncludePath)\mbbcx\1.0;$(KIT_SHARED_INC_PATH_WDK);$(KM_IncludePath)\netcx\kmdf\adapter\2.3;$(ExternalIncludePath);$(KIT_SHARED_INC_PATH)\netcx\shared\1.0</ExternalIncludePath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <IncludePath>$(SolutionDir)\inc;$(IncludePath)</IncludePath>
+ <ExternalIncludePath>$(KIT_SHARED_INC_PATH_WDK)\netcx\shared\1.0;$(KM_IncludePath)\mbbcx\1.0;$(KIT_SHARED_INC_PATH_WDK);$(KM_IncludePath)\netcx\kmdf\adapter\2.3;$(ExternalIncludePath);$(KIT_SHARED_INC_PATH)\netcx\shared\1.0</ExternalIncludePath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <IncludePath>$(SolutionDir)\inc;$(IncludePath)</IncludePath>
+ <ExternalIncludePath>$(KIT_SHARED_INC_PATH_WDK)\netcx\shared\1.0;$(KM_IncludePath)\mbbcx\1.0;$(KIT_SHARED_INC_PATH_WDK);$(KM_IncludePath)\netcx\kmdf\adapter\2.3;$(ExternalIncludePath);$(KIT_SHARED_INC_PATH)\netcx\shared\1.0</ExternalIncludePath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+ <IncludePath>$(SolutionDir)\inc;$(IncludePath)</IncludePath>
+ <ExternalIncludePath>$(KIT_SHARED_INC_PATH_WDK)\netcx\shared\1.0;$(KM_IncludePath)\mbbcx\1.0;$(KIT_SHARED_INC_PATH_WDK);$(KM_IncludePath)\netcx\kmdf\adapter\2.3;$(ExternalIncludePath);$(KIT_SHARED_INC_PATH)\netcx\shared\1.0</ExternalIncludePath>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <DisableSpecificWarnings>4748;%(DisableSpecificWarnings);4101;4189;4100;4267</DisableSpecificWarnings>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WindowsDDK_LibraryPath)\x64\ndis.lib;$(WindowsDDK_LibraryPath)\x64\netio.lib;$(WindowsDDK_LibraryPath)\x64\usbd.lib;$(WindowsDDK_LibraryPath)\x64\usbdex.lib;$(WindowsDDK_LibraryPath)\x64\wdmguid.lib;$(WindowsDDK_LibraryPath)\x64\netcx\kmdf\adapter\2.3\netadaptercxstub.lib;$(WindowsDDK_LibraryPath)\x64\mbbcx\1.0\mbbcxstub.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WindowsDDK_LibraryPath)\x64\ndis.lib;$(WindowsDDK_LibraryPath)\x64\netio.lib;$(WindowsDDK_LibraryPath)\x64\usbd.lib;$(WindowsDDK_LibraryPath)\x64\usbdex.lib;$(WindowsDDK_LibraryPath)\x64\wdmguid.lib;$(WindowsDDK_LibraryPath)\x64\netcx\kmdf\adapter\2.3\netadaptercxstub.lib;$(WindowsDDK_LibraryPath)\x64\mbbcx\1.0\mbbcxstub.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WindowsDDK_LibraryPath)\arm64\ndis.lib;$(WindowsDDK_LibraryPath)\arm64\netio.lib;$(WindowsDDK_LibraryPath)\arm64\usbd.lib;$(WindowsDDK_LibraryPath)\arm64\usbdex.lib;$(WindowsDDK_LibraryPath)\arm64\wdmguid.lib;$(WindowsDDK_LibraryPath)\arm64\netcx\kmdf\adapter\2.3\netadaptercxstub.lib;$(WindowsDDK_LibraryPath)\arm64\mbbcx\1.0\mbbcxstub.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <DriverSign>
+ <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+ </DriverSign>
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>$(WindowsDDK_LibraryPath)\arm64\ndis.lib;$(WindowsDDK_LibraryPath)\arm64\netio.lib;$(WindowsDDK_LibraryPath)\arm64\usbd.lib;$(WindowsDDK_LibraryPath)\arm64\usbdex.lib;$(WindowsDDK_LibraryPath)\arm64\wdmguid.lib;$(WindowsDDK_LibraryPath)\arm64\netcx\kmdf\adapter\2.3\netadaptercxstub.lib;$(WindowsDDK_LibraryPath)\arm64\mbbcx\1.0\mbbcxstub.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <Inf Include="cxwmbclass.inf" />
+ </ItemGroup>
+ <ItemGroup>
+ <FilesToPackage Include="$(TargetPath)" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\adapter.cpp" />
+ <ClCompile Include="..\businit.cpp" />
+ <ClCompile Include="..\datapipe.cpp" />
+ <ClCompile Include="..\device.cpp" />
+ <ClCompile Include="..\driver.cpp" />
+ <ClCompile Include="..\power.cpp" />
+ <ClCompile Include="..\rxqueue.cpp" />
+ <ClCompile Include="..\txqueue.cpp" />
+ <ClCompile Include="..\util.cpp" />
+ <ClCompile Include="..\utils.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\inc\adapter.h" />
+ <ClInclude Include="..\inc\align.h" />
+ <ClInclude Include="..\inc\BusInterface.h" />
+ <ClInclude Include="..\inc\data.h" />
+ <ClInclude Include="..\inc\device.h" />
+ <ClInclude Include="..\inc\mbbmessages.h" />
+ <ClInclude Include="..\inc\mbbncm.h" />
+ <ClInclude Include="..\inc\power.h" />
+ <ClInclude Include="..\inc\precomp.h" />
+ <ClInclude Include="..\inc\rxqueue.h" />
+ <ClInclude Include="..\inc\txqueue.h" />
+ <ClInclude Include="..\inc\usbbus.h" />
+ <ClInclude Include="..\inc\util.h" />
+ <ClInclude Include="..\inc\utils.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\cxwmbclass.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj.filters b/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj.filters
new file mode 100644
index 00000000..7136df25
--- /dev/null
+++ b/network/wwan/cxwmbclass/cxwmbclass/cxwmbclass.vcxproj.filters
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ <Filter Include="Driver Files">
+ <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier>
+ <Extensions>inf;inv;inx;mof;mc;</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <Inf Include="cxwmbclass.inf">
+ <Filter>Driver Files</Filter>
+ </Inf>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\adapter.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\businit.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\datapipe.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\device.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\driver.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\power.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\rxqueue.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\txqueue.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\util.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\utils.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\inc\adapter.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\align.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\BusInterface.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\data.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\device.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\mbbmessages.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\mbbncm.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\power.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\precomp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\rxqueue.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\txqueue.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\usbbus.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\util.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\inc\utils.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\cxwmbclass.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/network/wwan/cxwmbclass/datapipe.cpp b/network/wwan/cxwmbclass/datapipe.cpp
new file mode 100644
index 00000000..4452b761
--- /dev/null
+++ b/network/wwan/cxwmbclass/datapipe.cpp
@@ -0,0 +1,998 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include "precomp.h"
+
+typedef struct _USB_WRITE_REQ_CONTEXT
+{
+ WDFMEMORY UrbMemory;
+ PURB Urb;
+ PMDL Mdl;
+ WDFMEMORY LookasideBuffer;
+ PBUS_OBJECT BusObject;
+ MBB_BUS_SEND_DATA_COMPLETION_CALLBACK Callback;
+ MBB_REQUEST_HANDLE RequestHandle;
+
+} USB_WRITE_REQ_CONTEXT, *PUSB_WRITE_REQ_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(USB_WRITE_REQ_CONTEXT, GetWriteRequestContext)
+
+EVT_WDF_USB_READER_COMPLETION_ROUTINE BulkInReadComplete;
+
+EVT_WDF_USB_READERS_FAILED BulkInReadError;
+
+NTSTATUS
+GetWriteRequests(WDFUSBDEVICE UsbDevice, WDFREQUEST* ReturnedWriteRequest);
+
+VOID FreeWriteRequest(WDFUSBDEVICE UsbDevice, WDFREQUEST WriteRequest);
+
+NTSTATUS
+MbbBusSelectDataAltSetting(__in MBB_BUS_HANDLE BusHandle, __in UCHAR AltSetting)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ WDF_USB_INTERFACE_SELECT_SETTING_PARAMS SettingParams;
+ WDFUSBINTERFACE UsbInterface = NULL;
+ WDF_USB_PIPE_INFORMATION pipeInfo;
+ WDFUSBPIPE pipe;
+ UCHAR ConfiguredPipes = 0;
+ UCHAR index = 0;
+ NTSTATUS Status;
+ NTSTATUS TempStatus;
+ WDF_USB_CONTINUOUS_READER_CONFIG ReaderConfig;
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ WdfWaitLockAcquire(usbDeviceContext->PipeStateLock, NULL);
+
+ UsbInterface = WdfUsbTargetDeviceGetInterface(BusObject->WdfUsbDevice, usbDeviceContext->WdfDataInterfaceIndex);
+
+ WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_SETTING(&SettingParams, AltSetting == 0 ? 0 : usbDeviceContext->UsbDataInterfaceSetting);
+
+ Status = WdfUsbInterfaceSelectSetting(UsbInterface, NULL, &SettingParams);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ ConfiguredPipes = WdfUsbInterfaceGetNumConfiguredPipes(UsbInterface);
+
+ if (((AltSetting == ALT_DATA_SETTING_0) && (ConfiguredPipes != ALT_DATA_SETTING_0_PIPES)) ||
+ ((AltSetting == ALT_DATA_SETTING_1) && (ConfiguredPipes != ALT_DATA_SETTING_1_PIPES)))
+ {
+ Status = STATUS_UNSUCCESSFUL;
+
+ goto Cleanup;
+ }
+
+ if (AltSetting == ALT_DATA_SETTING_1)
+ {
+ for (index = 0; index < ConfiguredPipes; index++)
+ {
+
+ WDF_USB_PIPE_INFORMATION_INIT(&pipeInfo);
+
+ pipe = WdfUsbInterfaceGetConfiguredPipe(
+ UsbInterface,
+ index, // PipeIndex,
+ &pipeInfo);
+
+ if (WdfUsbPipeTypeBulk == pipeInfo.PipeType)
+ {
+
+ if (WdfUsbTargetPipeIsInEndpoint(pipe))
+ {
+ usbDeviceContext->BulkInputPipeConfigured = TRUE;
+ usbDeviceContext->BulkInputPipe = pipe;
+ usbDeviceContext->BulkInputPipeMaxPacket = pipeInfo.MaximumPacketSize;
+ }
+ else
+ {
+ usbDeviceContext->BulkOutputPipeConfigured = TRUE;
+ usbDeviceContext->BulkOutputPipe = pipe;
+ usbDeviceContext->BulkOutputPipeMaxPacket = pipeInfo.MaximumPacketSize;
+ }
+ }
+ else
+ {
+
+ Status = STATUS_UNSUCCESSFUL;
+
+ goto Cleanup;
+ }
+ }
+
+ if (!(usbDeviceContext->BulkInputPipeConfigured && usbDeviceContext->BulkOutputPipeConfigured))
+ {
+ Status = STATUS_UNSUCCESSFUL;
+
+ goto Cleanup;
+ }
+
+ //
+ // configure the continous reader on the bulk pipe now, since this can only be done once on a given pipe
+ // unless it is unselected
+ //
+ WDF_USB_CONTINUOUS_READER_CONFIG_INIT(&ReaderConfig, BulkInReadComplete, BusObject, BusObject->MaxBulkInTransfer);
+
+ if (BusObject->UsbCapDeviceInfo.DeviceInfoHeader.DeviceType == USB_CAP_DEVICE_TYPE_UDE_MBIM)
+ {
+ ReaderConfig.NumPendingReads = PENDING_BULK_IN_READS_FOR_UDE_MBIM;
+ }
+ else
+ {
+ ReaderConfig.NumPendingReads = PENDING_BULK_IN_READS;
+ }
+ ReaderConfig.HeaderLength = BusObject->BulkInHeaderSize;
+ ReaderConfig.EvtUsbTargetPipeReadersFailed = BulkInReadError;
+
+ Status = WdfUsbTargetPipeConfigContinuousReader(usbDeviceContext->BulkInputPipe, &ReaderConfig);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ //
+ // call this now that the pipe is configured
+ //
+ PreAllocateWriteRequests(BusObject->WdfUsbDevice);
+ }
+ else
+ {
+ //
+ // selecting the setting causes the frame work to delete the pipe
+ //
+ WDFREQUEST WriteRequest = NULL;
+
+ usbDeviceContext->BulkInputPipeConfigured = FALSE;
+ usbDeviceContext->BulkInputPipe = NULL;
+
+ usbDeviceContext->BulkOutputPipeConfigured = FALSE;
+ usbDeviceContext->BulkOutputPipe = NULL;
+
+ WdfSpinLockAcquire(usbDeviceContext->WriteCollectionLock);
+
+ WriteRequest = (WDFREQUEST)WdfCollectionGetLastItem(usbDeviceContext->WriteRequestCollection);
+
+ //
+ // delete the write request because they are associated with a pipe object
+ //
+ while (WriteRequest != NULL)
+ {
+ WdfCollectionRemove(usbDeviceContext->WriteRequestCollection, WriteRequest);
+
+ WdfObjectDelete(WriteRequest);
+ WriteRequest = (WDFREQUEST)WdfCollectionGetLastItem(usbDeviceContext->WriteRequestCollection);
+ }
+
+ WdfSpinLockRelease(usbDeviceContext->WriteCollectionLock);
+ }
+
+Cleanup:
+
+ if (!NT_SUCCESS(Status))
+ {
+ //
+ // failed to configure the pipes, set back to alt setting 0
+ //
+ WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_SETTING(&SettingParams, 0);
+
+ TempStatus = WdfUsbInterfaceSelectSetting(UsbInterface, NULL, &SettingParams);
+
+ usbDeviceContext->BulkInputPipeConfigured = FALSE;
+ usbDeviceContext->BulkInputPipe = NULL;
+
+ usbDeviceContext->BulkOutputPipeConfigured = FALSE;
+ usbDeviceContext->BulkOutputPipe = NULL;
+ }
+
+ WdfWaitLockRelease(usbDeviceContext->PipeStateLock);
+
+ return Status;
+}
+
+NTSTATUS
+MbbUsbDeviceStartDataPipes(__in PUSB_DEVICE_CONTEXT usbDeviceContext)
+{
+ NTSTATUS Status;
+
+ WdfWaitLockAcquire(usbDeviceContext->PipeStateLock, NULL);
+
+ if (!(usbDeviceContext->BulkInputPipeConfigured && usbDeviceContext->BulkOutputPipeConfigured))
+ {
+ Status = STATUS_UNSUCCESSFUL;
+
+ goto Cleanup;
+ }
+
+ Status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkInputPipe));
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ usbDeviceContext->BulkInputPipeStarted = TRUE;
+
+ Status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkOutputPipe));
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ usbDeviceContext->BulkOutputPipeStarted = TRUE;
+
+Cleanup:
+
+ if (!NT_SUCCESS(Status))
+ {
+ //
+ // failed to configure the pipes, set back to alt setting 0
+ //
+ if (usbDeviceContext->BulkInputPipeStarted)
+ {
+ WdfIoTargetStop(WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkInputPipe), WdfIoTargetCancelSentIo);
+ }
+
+ if (usbDeviceContext->BulkOutputPipeStarted)
+ {
+ WdfIoTargetStop(WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkOutputPipe), WdfIoTargetCancelSentIo);
+ }
+
+ usbDeviceContext->BulkInputPipeStarted = FALSE;
+ usbDeviceContext->BulkOutputPipeStarted = FALSE;
+ }
+
+ WdfWaitLockRelease(usbDeviceContext->PipeStateLock);
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusStartDataPipes(__in MBB_BUS_HANDLE BusHandle)
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ return MbbUsbDeviceStartDataPipes(GetUsbDeviceContext(BusObject->WdfUsbDevice));
+}
+
+VOID MbbUsbDeviceStopDataPipes(__in PUSB_DEVICE_CONTEXT usbDeviceContext)
+{
+ WDFUSBINTERFACE UsbInterface = NULL;
+
+ WdfWaitLockAcquire(usbDeviceContext->PipeStateLock, NULL);
+
+ if (usbDeviceContext->BulkInputPipeConfigured)
+ {
+ WdfIoTargetStop(WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkInputPipe), WdfIoTargetCancelSentIo);
+ }
+ if (usbDeviceContext->BulkOutputPipeConfigured)
+ {
+ WdfIoTargetStop(WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkOutputPipe), WdfIoTargetCancelSentIo);
+ }
+
+ usbDeviceContext->BulkInputPipeStarted = FALSE;
+
+ usbDeviceContext->BulkOutputPipeStarted = FALSE;
+
+ WdfWaitLockRelease(usbDeviceContext->PipeStateLock);
+
+ return;
+}
+
+VOID MbbBusStopDataPipes(__in MBB_BUS_HANDLE BusHandle)
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ WdfWorkItemFlush(usbDeviceContext->BulkPipeResetWorkitem);
+
+ MbbUsbDeviceStopDataPipes(GetUsbDeviceContext(BusObject->WdfUsbDevice));
+}
+
+NTSTATUS
+MbbUsbDeviceResetBulkPipe(__in PUSB_DEVICE_CONTEXT usbDeviceContext, __in BOOLEAN Out)
+
+{
+ WDFUSBPIPE Pipe = NULL;
+ WDF_REQUEST_SEND_OPTIONS SendOptions;
+ NTSTATUS StatusToReturn = STATUS_SUCCESS;
+ NTSTATUS Status;
+
+ WdfWaitLockAcquire(usbDeviceContext->PipeStateLock, NULL);
+
+ if (Out ? usbDeviceContext->BulkOutputPipeConfigured : usbDeviceContext->BulkInputPipeConfigured)
+ {
+
+ Pipe = Out ? usbDeviceContext->BulkOutputPipe : usbDeviceContext->BulkInputPipe;
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(30));
+
+ Status = WdfUsbTargetPipeAbortSynchronously(Pipe, NULL, &SendOptions);
+
+ if (!NT_SUCCESS(Status))
+ {
+ if (StatusToReturn == STATUS_SUCCESS)
+ {
+ StatusToReturn = Status;
+ }
+ }
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(30));
+
+ Status = WdfUsbTargetPipeResetSynchronously(Pipe, NULL, &SendOptions);
+
+ if (!NT_SUCCESS(Status))
+ {
+ if (StatusToReturn == STATUS_SUCCESS)
+ {
+ StatusToReturn = Status;
+ }
+ }
+ }
+ WdfWaitLockRelease(usbDeviceContext->PipeStateLock);
+
+ return StatusToReturn;
+}
+
+NTSTATUS
+MbbBusResetBulkPipe(__in MBB_BUS_HANDLE BusHandle, __in BOOLEAN Out)
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ return MbbUsbDeviceResetBulkPipe(GetUsbDeviceContext(BusObject->WdfUsbDevice), Out);
+}
+
+EVT_WDF_REQUEST_COMPLETION_ROUTINE WriteCompletionRoutine;
+
+void WriteCompletionRoutine(__in WDFREQUEST Request, __in WDFIOTARGET Target, __in PWDF_REQUEST_COMPLETION_PARAMS CompletionParams, __in WDFCONTEXT Context)
+/*++
+
+Routine Description
+
+ Request - Handle to the WDFREQUEST which was used to send data to the USB target.
+ Target - Handle to the Iotarget to which teh Request was sent. COnceptually this
+ is the BULK USB __out pipe(on of Data or beacon)
+ CompletionParams - In case of USB this contains the USB status and amount of bytes transferred
+
+
+ Context - This is the COntext we set in WdfRequestSend
+
+
+Arguments:
+
+
+
+Return Value:
+
+
+
+--*/
+
+{
+ PUSB_WRITE_REQ_CONTEXT WriteContext;
+ NTSTATUS Status;
+
+ UNREFERENCED_PARAMETER(Target);
+ WriteContext = (PUSB_WRITE_REQ_CONTEXT)Context;
+
+ Status = CompletionParams->IoStatus.Status;
+
+ //
+ // For usb devices, we should look at the Usb.Completion param.
+ //
+
+ if (WriteContext->Callback != NULL)
+ {
+ (*WriteContext->Callback)(WriteContext->BusObject->ProtocolHandle, WriteContext->RequestHandle, Status, WriteContext->Mdl);
+ }
+
+ if (WriteContext->LookasideBuffer != NULL)
+ {
+
+ WdfObjectDelete(WriteContext->LookasideBuffer);
+ }
+
+ if (WriteContext->UrbMemory != NULL)
+ {
+ WdfObjectDelete(WriteContext->UrbMemory);
+ }
+
+ FreeWriteRequest(WriteContext->BusObject->WdfUsbDevice, Request);
+}
+
+NTSTATUS
+MbbBusWriteData(__in MBB_BUS_HANDLE BusHandle, __in MBB_REQUEST_HANDLE RequestHandle, __in PMDL Mdl, __in MBB_BUS_SEND_DATA_COMPLETION_CALLBACK Callback)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ PMDL TempMdl = NULL;
+ ULONGLONG TotalTransferLength = 0;
+ NTSTATUS Status;
+ WDFMEMORY urbMemory = NULL;
+ WDF_OBJECT_ATTRIBUTES objectAttribs;
+ PURB urbBuffer = NULL;
+ WDF_REQUEST_SEND_OPTIONS SendOptions;
+ WDFREQUEST WriteRequest = NULL;
+ USBD_PIPE_HANDLE usbdPipeHandle = NULL;
+ PUSB_WRITE_REQ_CONTEXT writeContext = NULL;
+ BOOLEAN SentToDevice = FALSE;
+ WDFMEMORY BufferMemoryObject = NULL;
+ WDFREQUEST WriteRequestZLP = NULL;
+ PUSB_WRITE_REQ_CONTEXT writeContextZLP = NULL;
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ if (!ExAcquireRundownProtection(&usbDeviceContext->BulkPipeResetRundown))
+ {
+ return STATUS_NDIS_ADAPTER_NOT_READY;
+ }
+
+ //
+ // make sure the length is not too big
+ //
+ TempMdl = Mdl;
+
+ while (TempMdl != NULL)
+ {
+ TotalTransferLength += MmGetMdlByteCount(TempMdl);
+
+ TempMdl = TempMdl->Next;
+ }
+
+ if (TotalTransferLength > BusObject->NtbParam.dwNtbOutMaxSize)
+ {
+ //
+ // too big
+ //
+ Status = STATUS_UNSUCCESSFUL;
+
+ goto Cleanup;
+ }
+
+ if ((TotalTransferLength < BusObject->NtbParam.dwNtbOutMaxSize) && (TotalTransferLength % usbDeviceContext->BulkOutputPipeMaxPacket == 0))
+ {
+ //
+ // The transfer length is less than the max out transfer size, and transfer length is a multiple of MaxPacket size.
+ // Need to send a ZLP to the device stack to terminated the transfer.
+
+ Status = GetWriteRequests(BusObject->WdfUsbDevice, &WriteRequestZLP);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ writeContextZLP = GetWriteRequestContext(WriteRequestZLP);
+
+ writeContextZLP->BusObject = BusObject;
+ writeContextZLP->Callback = NULL;
+ }
+
+ Status = GetWriteRequests(BusObject->WdfUsbDevice, &WriteRequest);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ writeContext = GetWriteRequestContext(WriteRequest);
+
+ if (usbDeviceContext->LookasideList == NULL)
+ {
+
+ //
+ // allocate the URB, request is the parent
+ //
+ WDF_OBJECT_ATTRIBUTES_INIT(&objectAttribs);
+ objectAttribs.ParentObject = WriteRequest;
+
+ Status = WdfUsbTargetDeviceCreateUrb(BusObject->WdfUsbDevice, &objectAttribs, &urbMemory, &urbBuffer);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ //
+ // get the USBD pipe handle, to build the URB
+ //
+ usbdPipeHandle = WdfUsbTargetPipeWdmGetPipeHandle(usbDeviceContext->BulkOutputPipe);
+
+ //
+ // NOTE : call UsbBuildInterruptOrBulkTransferRequest otherwise
+ // WdfUsbTargetPipeFormatRequestForUrb will assert
+ // with *** Assertion failed: Urb->UrbHeader.Length >= sizeof(_URB_HEADER)
+ //
+ UsbBuildInterruptOrBulkTransferRequest(
+ urbBuffer,
+ sizeof(struct _URB_BULK_OR_INTERRUPT_TRANSFER),
+ usbdPipeHandle,
+ NULL,
+ Mdl,
+ (ULONG)TotalTransferLength,
+ USBD_TRANSFER_DIRECTION_OUT | USBD_SHORT_TRANSFER_OK,
+ NULL);
+
+ //
+ // By calling WdfUsbTargetPipeFormatRequestForUrb the frameworks allocate a lot of resources
+ // like the underlying IRP for the request and hence it is better to do it at initilization
+ // to prevent an avoidable failure later.
+ //
+ Status = WdfUsbTargetPipeFormatRequestForUrb(usbDeviceContext->BulkOutputPipe, WriteRequest, urbMemory, NULL);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ writeContext->UrbMemory = urbMemory;
+ writeContext->Urb = (PURB)urbBuffer;
+ }
+ else
+ {
+ //
+ // usb stack does not support chained mdl's, double buffer the transfer
+ //
+ PUCHAR DestBuffer = NULL;
+ PUCHAR SourceAddress = NULL;
+ size_t BufferSize = 0;
+ ULONG SourceLength = 0;
+ WDFMEMORY_OFFSET MemoryOffset;
+
+ Status = WdfMemoryCreateFromLookaside(usbDeviceContext->LookasideList, &BufferMemoryObject);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ DestBuffer = (PUCHAR)WdfMemoryGetBuffer(BufferMemoryObject, &BufferSize);
+
+ TempMdl = Mdl;
+ TotalTransferLength = 0;
+ while (TempMdl != NULL)
+ {
+ SourceLength = MmGetMdlByteCount(TempMdl);
+
+ SourceAddress = (PUCHAR)MmGetSystemAddressForMdlSafe(TempMdl, NormalPagePriority | MdlMappingNoExecute);
+
+ if (SourceAddress == NULL)
+ {
+
+ Status = STATUS_INSUFFICIENT_RESOURCES;
+
+ goto Cleanup;
+ }
+
+ RtlCopyMemory(DestBuffer, SourceAddress, SourceLength);
+
+ DestBuffer += SourceLength;
+
+ TotalTransferLength += SourceLength;
+
+ ASSERT(TotalTransferLength <= BufferSize);
+
+ TempMdl = TempMdl->Next;
+ }
+
+ MemoryOffset.BufferOffset = 0;
+ MemoryOffset.BufferLength = (ULONG)TotalTransferLength;
+
+ Status = WdfUsbTargetPipeFormatRequestForWrite(usbDeviceContext->BulkOutputPipe, WriteRequest, BufferMemoryObject, &MemoryOffset);
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ writeContext->LookasideBuffer = BufferMemoryObject;
+ BufferMemoryObject = NULL;
+ }
+
+ //
+ // set REQUEST_CONTEXT parameters.
+ //
+
+ writeContext->Mdl = Mdl;
+ writeContext->BusObject = BusObject;
+ writeContext->Callback = Callback;
+ writeContext->RequestHandle = RequestHandle;
+
+ WdfRequestSetCompletionRoutine(WriteRequest, WriteCompletionRoutine, writeContext);
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, 0);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(30));
+
+ SentToDevice = WdfRequestSend(WriteRequest, WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkOutputPipe), &SendOptions);
+
+ Status = STATUS_PENDING;
+
+ if (!SentToDevice)
+ {
+ Status = WdfRequestGetStatus(WriteRequest);
+ }
+ else
+ {
+ WriteRequest = NULL;
+ }
+
+ if (NT_SUCCESS(Status))
+ {
+
+ //
+ // actual data write worked, see if we need to send the zlp
+ //
+
+ if (WriteRequestZLP != NULL)
+ {
+
+ NTSTATUS ZlpStatus;
+
+ Status = WdfUsbTargetPipeFormatRequestForWrite(usbDeviceContext->BulkOutputPipe, WriteRequestZLP, NULL, NULL);
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ WdfRequestSetCompletionRoutine(WriteRequestZLP, WriteCompletionRoutine, writeContextZLP);
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, 0);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(30));
+
+ SentToDevice = WdfRequestSend(WriteRequestZLP, WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkOutputPipe), &SendOptions);
+
+ ZlpStatus = STATUS_PENDING;
+
+ if (!SentToDevice)
+ {
+
+ ZlpStatus = WdfRequestGetStatus(WriteRequestZLP);
+ }
+ else
+ {
+ WriteRequestZLP = NULL;
+ }
+ }
+ }
+
+Cleanup:
+
+ ExReleaseRundownProtection(&usbDeviceContext->BulkPipeResetRundown);
+
+ if (WriteRequest != NULL)
+ {
+ if (NULL != writeContext)
+ {
+ if (NULL != writeContext->LookasideBuffer)
+ {
+ WdfObjectDelete(writeContext->LookasideBuffer);
+ }
+ if (NULL != writeContext->UrbMemory)
+ {
+ WdfObjectDelete(writeContext->UrbMemory);
+ }
+ }
+
+ FreeWriteRequest(BusObject->WdfUsbDevice, WriteRequest);
+ WriteRequest = NULL;
+ }
+
+ if (WriteRequestZLP != NULL)
+ {
+ FreeWriteRequest(BusObject->WdfUsbDevice, WriteRequestZLP);
+ WriteRequestZLP = NULL;
+ }
+
+ return Status;
+}
+
+VOID BulkInReadComplete(__in WDFUSBPIPE Pipe, __in WDFMEMORY Memory, __in size_t NumBytesTransferred, __in WDFCONTEXT Context)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)Context;
+ PUCHAR Buffer = NULL;
+ PMDL Mdl = NULL;
+ PUCHAR DataBuffer = NULL;
+
+ if (NumBytesTransferred > 0)
+ {
+ //
+ // actaully got some data
+ //
+ Buffer = (PUCHAR)WdfMemoryGetBuffer(Memory, NULL);
+
+ //
+ // the header at the front is where we will put the MDL
+ //
+ Mdl = (PMDL)Buffer;
+
+ //
+ // the actual payload starts after the header/mdl
+ //
+ DataBuffer = Buffer + BusObject->BulkInHeaderSize;
+
+ ASSERT(((ULONG_PTR)DataBuffer & 0x7) == 0);
+
+ //
+ // bytes transfered does not include the header
+ //
+ MmInitializeMdl(Mdl, DataBuffer, NumBytesTransferred);
+
+ MmBuildMdlForNonPagedPool(Mdl);
+
+ ASSERT(BusObject->BulkInHeaderSize >= MmSizeOfMdl(Mdl, NumBytesTransferred));
+
+ WdfObjectReference(Memory);
+
+ (*BusObject->ReceiveDataCallback)(BusObject->ProtocolHandle, Memory, Mdl);
+ }
+
+ return;
+}
+
+BOOLEAN
+BulkInReadError(__in WDFUSBPIPE Pipe, __in NTSTATUS Status, __in USBD_STATUS UsbdStatus)
+
+{
+ return TRUE;
+}
+
+VOID MbbBusReturnReceiveBuffer(__in MBB_BUS_HANDLE BusHandle, __in MBB_RECEIVE_CONTEXT ReceiveContext, __in PMDL Mdl)
+
+{
+ WDFMEMORY Memory = (WDFMEMORY)ReceiveContext;
+
+ WdfObjectDereference(Memory);
+
+ return;
+}
+
+NTSTATUS
+CreateWriteRequest(WDFUSBDEVICE UsbDevice, WDFREQUEST* ReturnedWriteRequest)
+
+{
+
+ WDFREQUEST WriteRequest = NULL;
+ PUSB_WRITE_REQ_CONTEXT writeContext = NULL;
+ WDF_OBJECT_ATTRIBUTES objectAttribs;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ NTSTATUS Status = STATUS_INVALID_PARAMETER;
+
+ *ReturnedWriteRequest = NULL;
+
+ usbDeviceContext = GetUsbDeviceContext(UsbDevice);
+
+ if (usbDeviceContext->BulkOutputPipe == NULL)
+ {
+ goto Cleanup;
+ }
+
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&objectAttribs, USB_WRITE_REQ_CONTEXT);
+ objectAttribs.ParentObject = UsbDevice;
+
+ //
+ // create the request
+ //
+ Status = WdfRequestCreate(&objectAttribs, WdfUsbTargetPipeGetIoTarget(usbDeviceContext->BulkOutputPipe), &WriteRequest);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ writeContext = GetWriteRequestContext(WriteRequest);
+ RtlZeroMemory(writeContext, sizeof(*writeContext));
+
+ //
+ // Preallocate the request timer to prevent the request from failing while trying to send it.
+ //
+ Status = WdfRequestAllocateTimer(WriteRequest);
+
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ Status = WdfUsbTargetPipeFormatRequestForWrite(usbDeviceContext->BulkOutputPipe, WriteRequest, NULL, NULL);
+ if (!NT_SUCCESS(Status))
+ {
+
+ goto Cleanup;
+ }
+
+ *ReturnedWriteRequest = WriteRequest;
+ WriteRequest = NULL;
+
+Cleanup:
+
+ if (WriteRequest != NULL)
+ {
+ WdfObjectDelete(WriteRequest);
+ WriteRequest = NULL;
+ }
+
+ return Status;
+}
+
+NTSTATUS
+PreAllocateWriteRequests(WDFUSBDEVICE UsbDevice)
+
+{
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ WDFREQUEST WriteRequest = NULL;
+ NTSTATUS Status;
+ ULONG i = 0;
+
+ usbDeviceContext = GetUsbDeviceContext(UsbDevice);
+
+ for (i = 0; i < MAX_PREALLOCATED_WRITE_REQUESTS; i++)
+ {
+ Status = CreateWriteRequest(UsbDevice, &WriteRequest);
+
+ if (!NT_SUCCESS(Status))
+ {
+ break;
+ }
+
+ Status = WdfCollectionAdd(usbDeviceContext->WriteRequestCollection, WriteRequest);
+
+ if (!NT_SUCCESS(Status))
+ {
+ WdfObjectDelete(WriteRequest);
+ WriteRequest = NULL;
+ break;
+ }
+ }
+
+ return Status;
+}
+
+NTSTATUS
+GetWriteRequests(WDFUSBDEVICE UsbDevice, WDFREQUEST* ReturnedWriteRequest)
+{
+
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ NTSTATUS Status = STATUS_SUCCESS;
+ WDF_REQUEST_REUSE_PARAMS ReuseParams;
+ PUSB_WRITE_REQ_CONTEXT writeContext = NULL;
+
+ usbDeviceContext = GetUsbDeviceContext(UsbDevice);
+
+ *ReturnedWriteRequest = NULL;
+
+ if (usbDeviceContext->BulkOutputPipe == NULL)
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ WdfSpinLockAcquire(usbDeviceContext->WriteCollectionLock);
+
+ *ReturnedWriteRequest = (WDFREQUEST)WdfCollectionGetLastItem(usbDeviceContext->WriteRequestCollection);
+
+ if (*ReturnedWriteRequest == NULL)
+ {
+ //
+ // the collection is empty, try creating a new one
+ //
+ WdfSpinLockRelease(usbDeviceContext->WriteCollectionLock);
+
+ Status = CreateWriteRequest(UsbDevice, ReturnedWriteRequest);
+ }
+ else
+ {
+
+ WdfCollectionRemove(usbDeviceContext->WriteRequestCollection, *ReturnedWriteRequest);
+
+ WdfSpinLockRelease(usbDeviceContext->WriteCollectionLock);
+
+ WDF_REQUEST_REUSE_PARAMS_INIT(&ReuseParams, 0, STATUS_SUCCESS);
+
+ WdfRequestReuse(*ReturnedWriteRequest, &ReuseParams);
+ }
+
+ if (NT_SUCCESS(Status))
+ {
+ writeContext = GetWriteRequestContext(*ReturnedWriteRequest);
+ RtlZeroMemory(writeContext, sizeof(*writeContext));
+ }
+
+ return Status;
+}
+
+VOID FreeWriteRequest(WDFUSBDEVICE UsbDevice, WDFREQUEST WriteRequest)
+
+{
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ NTSTATUS Status = STATUS_SUCCESS;
+ ULONG RequestCount = 0;
+
+ usbDeviceContext = GetUsbDeviceContext(UsbDevice);
+
+ WdfSpinLockAcquire(usbDeviceContext->WriteCollectionLock);
+
+ RequestCount = WdfCollectionGetCount(usbDeviceContext->WriteRequestCollection);
+
+ if (RequestCount < MAX_PREALLOCATED_WRITE_REQUESTS * 2)
+ {
+ //
+ // put it back in the collection
+ //
+ Status = WdfCollectionAdd(usbDeviceContext->WriteRequestCollection, WriteRequest);
+
+ if (NT_SUCCESS(Status))
+ {
+ WriteRequest = NULL;
+ }
+ }
+
+ WdfSpinLockRelease(usbDeviceContext->WriteCollectionLock);
+
+ if (WriteRequest != NULL)
+ {
+ WdfObjectDelete(WriteRequest);
+ WriteRequest = NULL;
+ }
+
+ return;
+}
+
+VOID MbbBusResetDataPipes(_In_ MBB_BUS_HANDLE BusHandle)
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ if (!InterlockedCompareExchange(&usbDeviceContext->BulkPipeResetFlag, TRUE, FALSE))
+ {
+ WdfWorkItemEnqueue(usbDeviceContext->BulkPipeResetWorkitem);
+ }
+ else
+ {
+ }
+}
+
+VOID MbbUsbDeviceCyclePort(_In_ PUSB_DEVICE_CONTEXT usbDeviceContext)
+{
+ NTSTATUS Status = WdfUsbTargetDeviceCyclePortSynchronously(usbDeviceContext->BusObject->WdfUsbDevice);
+ if (!NT_SUCCESS(Status))
+ {
+ }
+}
+
+void ResetDataPipeWorkItem(_In_ WDFWORKITEM WorkItem)
+{
+ PUSB_DEVICE_CONTEXT usbDeviceContext = GetUsbDeviceContext(WdfWorkItemGetParentObject(WorkItem));
+
+ ExWaitForRundownProtectionRelease(&usbDeviceContext->BulkPipeResetRundown);
+ ExRundownCompleted(&usbDeviceContext->BulkPipeResetRundown);
+
+ MbbUsbDeviceStopDataPipes(usbDeviceContext);
+
+ MbbUsbDeviceResetBulkPipe(usbDeviceContext, TRUE);
+
+ MbbUsbDeviceCyclePort(usbDeviceContext);
+
+ MbbUsbDeviceStartDataPipes(usbDeviceContext);
+
+ ExReInitializeRundownProtection(&usbDeviceContext->BulkPipeResetRundown);
+
+ InterlockedExchange(&usbDeviceContext->BulkPipeResetFlag, FALSE);
+}
diff --git a/network/wwan/cxwmbclass/device.cpp b/network/wwan/cxwmbclass/device.cpp
new file mode 100644
index 00000000..0aadfc35
--- /dev/null
+++ b/network/wwan/cxwmbclass/device.cpp
@@ -0,0 +1,381 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include "precomp.h"
+
+#include "device.h"
+#include "rxqueue.h"
+
+const ULONG MBB_DEFAULT_IDLE_TIMEOUT_HINT_MS = 2u * 1000u; // 2 seconds
+
+_Use_decl_annotations_ VOID EvtMbbDeviceSendMbimFragment(WDFDEVICE Device, MBBREQUEST Fragment)
+{
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+
+ size_t bufferSize = 0;
+ PVOID buffer = MbbRequestGetBuffer(Fragment, &bufferSize);
+
+ auto completionRoutine = [](MBB_PROTOCOL_HANDLE, MBB_REQUEST_HANDLE RequestHandle, NTSTATUS NtStatus) {
+ MbbRequestComplete((MBBREQUEST)RequestHandle, NtStatus);
+ };
+
+ NTSTATUS sendStatus = MbbBusSendMessageFragment(
+ deviceContext->BusHandle, Fragment, buffer, (ULONG)bufferSize, (LPGUID)MbbRequestGetCorrelationId(Fragment), completionRoutine);
+
+ // Accoding to the documentation of MbbBusSendMessageFragment the completion routine
+ // will be called only when ntStatus is STATUS_PENDING, so we need to call it ourselves
+ // for the other cases
+ if (sendStatus != STATUS_PENDING)
+ {
+ completionRoutine(deviceContext, Fragment, sendStatus);
+ }
+}
+
+VOID MbbNdisResponseFragmentAvailable(__in MBB_PROTOCOL_HANDLE ProtocolHandle)
+{
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = (PWMBCLASS_DEVICE_CONTEXT)ProtocolHandle;
+ MbbDeviceResponseAvailable(deviceContext->WdfDevice);
+}
+
+_Use_decl_annotations_ VOID EvtMbbDeviceReceiveMbimFragment(WDFDEVICE Device, MBBREQUEST Fragment)
+{
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+
+ size_t bufferSize = 0;
+ PVOID buffer = MbbRequestGetBuffer(Fragment, &bufferSize);
+
+ auto completionRoutine = [](MBB_PROTOCOL_HANDLE, MBB_REQUEST_HANDLE RequestHandle, NTSTATUS Status, ULONG_PTR ReceivedLength) {
+ MbbRequestCompleteWithInformation((MBBREQUEST)RequestHandle, Status, ReceivedLength);
+ };
+
+ // Accoding to the documentation of MbbBusReceiveMessageFragment the completion routine
+ // will be called only when ntStatus is STATUS_PENDING, so we need to call it ourselves
+ // for the other cases
+ NTSTATUS receiveStatus = MbbBusReceiveMessageFragment(
+ deviceContext->BusHandle, Fragment, buffer, (ULONG)bufferSize, (LPGUID)MbbRequestGetCorrelationId(Fragment), completionRoutine);
+
+ if (receiveStatus != STATUS_PENDING)
+ {
+ completionRoutine(deviceContext, Fragment, receiveStatus, 0);
+ }
+}
+
+static NTSTATUS SetupAdapterSpecificPowerSettings(_In_ PWMBCLASS_DEVICE_CONTEXT DeviceContext)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+
+ if (DeviceContext->BusParams.RemoteWakeCapable)
+ {
+ //
+ // Configure USB selective suspend with default timeout
+ //
+ WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS idleSettings;
+ WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(&idleSettings, IdleUsbSelectiveSuspend);
+
+ idleSettings.IdleTimeout = MBB_DEFAULT_IDLE_TIMEOUT_HINT_MS;
+ idleSettings.IdleTimeoutType = SystemManagedIdleTimeoutWithHint;
+
+ status = WdfDeviceAssignS0IdleSettings(DeviceContext->WdfDevice, &idleSettings);
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+ }
+Exit:
+ return status;
+}
+
+NTSTATUS
+MbbInitializeHardware(_In_ PWMBCLASS_DEVICE_CONTEXT DeviceContext)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ WDF_OBJECT_ATTRIBUTES attributes;
+ UNICODE_STRING manufacturer;
+ UNICODE_STRING model;
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = DeviceContext->WdfDevice;
+ status = WdfLookasideListCreate(
+ &attributes,
+ sizeof(MBB_NDIS_RECEIVE_CONTEXT),
+ NonPagedPoolNx,
+ WDF_NO_OBJECT_ATTRIBUTES,
+ MbbPoolTagMdlReceive,
+ &DeviceContext->ReceiveLookasideList);
+ if (!NT_SUCCESS(status))
+ {
+ goto Cleanup;
+ }
+
+ for (int i = 0; i < MBB_MAX_NUMBER_OF_SESSIONS; i++)
+ {
+ WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
+ attributes.ParentObject = DeviceContext->WdfDevice;
+
+ status = WdfSpinLockCreate(&attributes, &DeviceContext->Sessions[i].WdfRecvSpinLock);
+ if (!NT_SUCCESS(status))
+ {
+ goto Cleanup;
+ }
+ }
+
+ status = MbbBusInitializeByWdf(
+ DeviceContext->WdfDevice,
+ MbbNdisResponseFragmentAvailable,
+ MbbNdisReceiveCallback,
+ nullptr,
+ nullptr,
+ DeviceContext,
+ &DeviceContext->BusHandle,
+ nullptr);
+
+ if (status != STATUS_SUCCESS)
+ {
+ goto Cleanup;
+ }
+
+ //
+ // Initialize the OID/CID handlers before the device is OPENED.
+ // Once the device is opened and the interrupt pipe is connected.
+ // This driver will start receiving unsolicited interrupt message
+ // from the device.
+ //
+ status = MbbBusQueryBusParameters(DeviceContext->BusHandle, &DeviceContext->BusParams);
+
+ if (status != STATUS_SUCCESS)
+ {
+ goto Cleanup;
+ }
+
+ WDFMEMORY sharedPaddingMemory;
+ ULONG sharedPaddingLength = max(DeviceContext->BusParams.NdpOutAlignment, DeviceContext->BusParams.NdpOutDivisor);
+ status = CreateNonPagedWdfMemory(
+ sharedPaddingLength, &sharedPaddingMemory, (PVOID*)&DeviceContext->sharedPaddingBuffer, DeviceContext->WdfDevice, MbbPoolTagNtbSend);
+ if (!NT_SUCCESS(status))
+ {
+ goto Cleanup;
+ }
+
+ RtlInitUnicodeString(&manufacturer, DeviceContext->BusParams.Manufacturer);
+ RtlInitUnicodeString(&model, DeviceContext->BusParams.Model);
+ MBB_DEVICE_MBIM_PARAMETERS mbimParams;
+
+ // 2.0 by default
+ MBB_MBIM_EXTENDED_VERSION mbimExVer = MbbMbimExtendedVersion2Dot0;
+ switch(DeviceContext->BusParams.MbimExtendedVersion)
+ {
+ case 0x0100:
+ mbimExVer = MbbMbimExtendedVersion1Dot0;
+ break;
+ case 0x0200:
+ mbimExVer = MbbMbimExtendedVersion2Dot0;
+ break;
+ case 0x0300:
+ mbimExVer = MbbMbimExtendedVersion3Dot0;
+ break;
+ case 0x0400:
+ mbimExVer = MbbMbimExtendedVersion4Dot0;
+ break;
+ default:
+ status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
+ MBB_DEVICE_MBIM_PARAMETERS_INIT(
+ &mbimParams,
+ DeviceContext->BusParams.IsErrataDevice ? MbbMbimVersion1Dot0Errata : MbbMbimVersion1Dot0,
+ DeviceContext->BusParams.FragmentSize,
+ mbimExVer);
+
+ MbbDeviceSetMbimParameters(DeviceContext->WdfDevice, &mbimParams);
+
+ MBB_DEVICE_WAKE_CAPABILITIES mbbWakeCapabilities;
+ MBB_DEVICE_WAKE_CAPABILITIES_INIT(&mbbWakeCapabilities);
+
+ mbbWakeCapabilities.PacketState = TRUE;
+ mbbWakeCapabilities.RegisterState = TRUE;
+ mbbWakeCapabilities.SmsReceive = TRUE;
+ mbbWakeCapabilities.UiccChange = TRUE;
+ mbbWakeCapabilities.UssdReceive = TRUE;
+
+ MbbDeviceSetWakeCapabilities(DeviceContext->WdfDevice, &mbbWakeCapabilities);
+
+ status = SetupAdapterSpecificPowerSettings(DeviceContext);
+ if (NT_ERROR(status))
+ {
+ goto Cleanup;
+ }
+
+Cleanup:
+
+ if (status != STATUS_SUCCESS)
+ {
+ if (DeviceContext != NULL)
+ {
+ if (DeviceContext->BusHandle != NULL)
+ {
+ MbbBusStop(DeviceContext->BusHandle);
+ MbbBusCleanup(DeviceContext->BusHandle);
+ DeviceContext->BusHandle = NULL;
+ }
+ }
+
+ }
+
+ return status;
+}
+
+void MbbReleaseHardware(_In_ PWMBCLASS_DEVICE_CONTEXT DeviceContext)
+{
+
+ if (DeviceContext->BusHandle != NULL)
+ {
+ MbbBusCleanup(DeviceContext->BusHandle);
+ DeviceContext->BusHandle = NULL;
+ }
+
+ return;
+}
+
+NTSTATUS
+EvtDevicePrepareHardware(_In_ WDFDEVICE device, _In_ WDFCMRESLIST resourcesRaw, _In_ WDFCMRESLIST resourcesTranslated)
+{
+ UNREFERENCED_PARAMETER(resourcesRaw);
+ UNREFERENCED_PARAMETER(resourcesTranslated);
+
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(device);
+
+ NTSTATUS status = MbbInitializeHardware(deviceContext);
+
+ return status;
+}
+
+NTSTATUS
+EvtDeviceReleaseHardware(_In_ WDFDEVICE device, _In_ WDFCMRESLIST resourcesTranslated)
+{
+ UNREFERENCED_PARAMETER(resourcesTranslated);
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(device);
+
+ MbbReleaseHardware(deviceContext);
+
+ return STATUS_SUCCESS;
+}
+
+_Use_decl_annotations_ void EvtDeviceSurpriseRemoval(WDFDEVICE device)
+{
+ UNREFERENCED_PARAMETER(device);
+}
+
+NTSTATUS MbbInitAdapterContext(_In_ WDFDEVICE Device, _In_ NETADAPTER NetAdapter)
+{
+ WDF_OBJECT_ATTRIBUTES adapterAttributes;
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = WmbClassGetNetAdapterContext(NetAdapter);
+
+ ULONG ntbSize;
+ ntbSize = FIELD_OFFSET(MBB_NTB_BUILD_CONTEXT, NdpDatagramEntries);
+ ntbSize += (deviceContext->BusParams.MaxOutDatagrams * sizeof(MBB_NDP_HEADER_ENTRY));
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&adapterAttributes);
+ adapterAttributes.ParentObject = NetAdapter;
+
+ NTSTATUS ntStatus = WdfLookasideListCreate(
+ &adapterAttributes, ntbSize, NonPagedPoolNx, WDF_NO_OBJECT_ATTRIBUTES, MbbPoolTagNtbSend, &netAdapterContext->NtbLookasideList);
+ if (!NT_SUCCESS(ntStatus))
+ {
+ return ntStatus;
+ }
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&adapterAttributes);
+ adapterAttributes.ParentObject = NetAdapter;
+ ntStatus = WdfLookasideListCreate(
+ &adapterAttributes,
+ sizeof(MBB_RECEIVE_NDP_CONTEXT),
+ NonPagedPoolNx,
+ WDF_NO_OBJECT_ATTRIBUTES,
+ MbbPoolTagMdlReceive,
+ &netAdapterContext->ReceiveNdpLookasideList);
+ if (!NT_SUCCESS(ntStatus))
+ {
+ return ntStatus;
+ }
+ netAdapterContext->SessionId = MbbAdapterGetSessionId(NetAdapter);
+ WdfSpinLockAcquire(deviceContext->Sessions[netAdapterContext->SessionId].WdfRecvSpinLock);
+ deviceContext->Sessions[netAdapterContext->SessionId].NetAdapterContext = netAdapterContext;
+ // Allow to receive data from this point since connection may happen before RxQueueCreate, if it happens, we allow to cache the recieved NDP
+ netAdapterContext->AllowRxTraffic = TRUE;
+ InitializeListHead(&netAdapterContext->ReceiveNdpList);
+ netAdapterContext->WmbDeviceContext = deviceContext;
+ netAdapterContext->NetAdapter = NetAdapter;
+ WdfSpinLockRelease(deviceContext->Sessions[netAdapterContext->SessionId].WdfRecvSpinLock);
+ return ntStatus;
+}
+
+_Use_decl_annotations_ NTSTATUS EvtMbbDeviceCreateAdapter(WDFDEVICE Device, NETADAPTER_INIT* AdapterInit)
+{
+
+ NET_ADAPTER_DATAPATH_CALLBACKS datapathCallbacks;
+ NET_ADAPTER_DATAPATH_CALLBACKS_INIT(&datapathCallbacks, EvtAdapterCreateTxQueue, EvtAdapterCreateRxQueue);
+
+ NetAdapterInitSetDatapathCallbacks(AdapterInit, &datapathCallbacks);
+
+ WDF_OBJECT_ATTRIBUTES adapterAttributes;
+ WDF_OBJECT_ATTRIBUTES_INIT(&adapterAttributes);
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&adapterAttributes, WMBCLASS_NETADAPTER_CONTEXT);
+ adapterAttributes.EvtCleanupCallback = EvtAdapterCleanup;
+
+ NETADAPTER netAdapter;
+ NTSTATUS ntStatus = NetAdapterCreate(AdapterInit, &adapterAttributes, &netAdapter);
+ if (!NT_SUCCESS(ntStatus))
+ {
+ return ntStatus;
+ }
+
+ ntStatus = MbbAdapterInitialize(netAdapter);
+
+ if (!NT_SUCCESS(ntStatus))
+ {
+ return ntStatus;
+ }
+
+ ntStatus = MbbInitAdapterContext(Device, netAdapter);
+ if (!NT_SUCCESS(ntStatus))
+ {
+ return ntStatus;
+ }
+
+ ntStatus = WmbClassAdapterStart(netAdapter);
+
+ if (!NT_SUCCESS(ntStatus))
+ {
+ return ntStatus;
+ }
+
+ return ntStatus;
+}
+
+_Use_decl_annotations_ VOID EvtAdapterCleanup(_In_ WDFOBJECT NetAdapter)
+{
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = WmbClassGetNetAdapterContext(NetAdapter);
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = netAdapterContext->WmbDeviceContext;
+ if (deviceContext == NULL || deviceContext->Sessions[netAdapterContext->SessionId].NetAdapterContext == NULL)
+ {
+ return;
+ }
+
+ // Cancel these Ndps which are cached before RxQueueCreate but not cleaned in case RxQueueCreate failed.
+ // NetAdapter should be destoryed immediately if RxQueueCreate failed, or these cached Ndps will stay in memory until release device or delete additional PDP
+ MbbRecvCancelNdps(deviceContext, netAdapterContext->SessionId);
+
+ WdfSpinLockAcquire(deviceContext->Sessions[netAdapterContext->SessionId].WdfRecvSpinLock);
+ deviceContext->Sessions[netAdapterContext->SessionId].NetAdapterContext = NULL;
+ WdfSpinLockRelease(deviceContext->Sessions[netAdapterContext->SessionId].WdfRecvSpinLock);
+
+}
+
+_Use_decl_annotations_ VOID EvtMbbDeviceReset(WDFDEVICE WdfDevice)
+{
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(WdfDevice);
+ MbbBusResetDataPipes(deviceContext->BusHandle);
+}
diff --git a/network/wwan/cxwmbclass/driver.cpp b/network/wwan/cxwmbclass/driver.cpp
new file mode 100644
index 00000000..e1c8bc69
--- /dev/null
+++ b/network/wwan/cxwmbclass/driver.cpp
@@ -0,0 +1,120 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include "precomp.h"
+
+#include "device.h"
+#include "power.h"
+
+MINIPORT_DRIVER_CONTEXT GlobalControl = {0};
+
+EXTERN_C __declspec(code_seg("INIT")) DRIVER_INITIALIZE DriverEntry;
+EVT_WDF_DRIVER_UNLOAD EvtDriverUnload;
+EVT_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd;
+
+#define MBB_DRIVER_DEFAULT_POOL_TAG 'DBMW'
+
+__declspec(code_seg("INIT")) NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT driverObject, _In_ PUNICODE_STRING registryPath)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+
+ WDF_DRIVER_CONFIG driverConfig;
+ WDF_DRIVER_CONFIG_INIT(&driverConfig, EvtDriverDeviceAdd);
+ driverConfig.DriverPoolTag = MBB_DRIVER_DEFAULT_POOL_TAG;
+
+ driverConfig.EvtDriverUnload = EvtDriverUnload;
+
+ WDFDRIVER driver;
+ status = WdfDriverCreate(driverObject, registryPath, WDF_NO_OBJECT_ATTRIBUTES, &driverConfig, &driver);
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+
+Exit:
+ return status;
+}
+
+NTSTATUS
+EvtDriverDeviceAdd(_In_ WDFDRIVER driver, _Inout_ PWDFDEVICE_INIT deviceInit)
+{
+ UNREFERENCED_PARAMETER((driver));
+
+ NTSTATUS status = STATUS_SUCCESS;
+
+ status = NetDeviceInitConfig(deviceInit);
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+
+ status = MbbDeviceInitConfig(deviceInit);
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+
+ // Register with the NetAdapter framework that we want to do the Device Reset
+ //NET_DEVICE_RESET_CONFIG resetConfig;
+ //NET_DEVICE_RESET_CONFIG_INIT(&resetConfig, EvtMbbDeviceReset);
+ //NetDeviceInitSetResetConfig(deviceInit, &resetConfig);
+
+ NET_DEVICE_POWER_POLICY_EVENT_CALLBACKS netPowerPolicyCallbacks;
+ NET_DEVICE_POWER_POLICY_EVENT_CALLBACKS_INIT(&netPowerPolicyCallbacks);
+ netPowerPolicyCallbacks.EvtDevicePreviewBitmapPattern = EvtDevicePreviewBitmapPattern;
+
+ NetDeviceInitSetPowerPolicyEventCallbacks(deviceInit, &netPowerPolicyCallbacks);
+
+ WDF_OBJECT_ATTRIBUTES deviceAttributes;
+ WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&deviceAttributes, WMBCLASS_DEVICE_CONTEXT);
+
+ WDF_PNPPOWER_EVENT_CALLBACKS pnpPowerCallbacks;
+ WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&pnpPowerCallbacks);
+ pnpPowerCallbacks.EvtDevicePrepareHardware = EvtDevicePrepareHardware;
+ pnpPowerCallbacks.EvtDeviceReleaseHardware = EvtDeviceReleaseHardware;
+ pnpPowerCallbacks.EvtDeviceSurpriseRemoval = EvtDeviceSurpriseRemoval;
+ pnpPowerCallbacks.EvtDeviceD0Entry = EvtDeviceD0Entry;
+ pnpPowerCallbacks.EvtDeviceD0Exit = EvtDeviceD0Exit;
+ WdfDeviceInitSetPnpPowerEventCallbacks(deviceInit, &pnpPowerCallbacks);
+
+ WDF_POWER_POLICY_EVENT_CALLBACKS powerPolicyCallbacks;
+ WDF_POWER_POLICY_EVENT_CALLBACKS_INIT(&powerPolicyCallbacks);
+ powerPolicyCallbacks.EvtDeviceArmWakeFromS0 = EvtDeviceArmWakeFromS0;
+ powerPolicyCallbacks.EvtDeviceDisarmWakeFromS0 = EvtDeviceDisarmWakeFromS0;
+ WdfDeviceInitSetPowerPolicyEventCallbacks(deviceInit, &powerPolicyCallbacks);
+
+ WDFDEVICE wdfDevice;
+ status = WdfDeviceCreate(&deviceInit, &deviceAttributes, &wdfDevice);
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+
+ // Set the device to be not ejectable
+ WDF_DEVICE_PNP_CAPABILITIES pnpCapabilities;
+ WDF_DEVICE_PNP_CAPABILITIES_INIT(&pnpCapabilities);
+ pnpCapabilities.SurpriseRemovalOK = WdfTrue;
+ WdfDeviceSetPnpCapabilities(wdfDevice, &pnpCapabilities);
+
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(wdfDevice);
+ deviceContext->WdfDevice = wdfDevice;
+
+ MBB_DEVICE_CONFIG mbbDeviceConfig;
+ MBB_DEVICE_CONFIG_INIT(
+ &mbbDeviceConfig, EvtMbbDeviceSendMbimFragment, EvtMbbDeviceReceiveMbimFragment, EvtMbbDeviceSendDeviceServiceSessionData, EvtMbbDeviceCreateAdapter);
+
+ status = MbbDeviceInitialize(wdfDevice, &mbbDeviceConfig);
+ if (!NT_SUCCESS(status))
+ {
+ goto Exit;
+ }
+
+Exit:
+ return status;
+}
+
+VOID EvtDriverUnload(_In_ WDFDRIVER driver)
+{
+ UNREFERENCED_PARAMETER(driver);
+}
diff --git a/network/wwan/cxwmbclass/inc/BusInterface.h b/network/wwan/cxwmbclass/inc/BusInterface.h
new file mode 100644
index 00000000..819f93e5
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/BusInterface.h
@@ -0,0 +1,573 @@
+/***************************************************************************
+
+Copyright (c) 2010 Microsoft Corporation
+
+Module Name:
+
+ BusInterface.h
+
+Abstract:
+
+ This module defines the interface between the upper NDIS layer and lower
+ bus layer of the MBB (Mobile BroadBand) Class driver.
+
+Environment:
+
+ kernel mode only
+
+Notes:
+
+ The upper ndis layer may only communicate with the lower bus layer through
+ these interfaces.
+
+Revision History:
+
+ 2/7/2010 : created
+
+Authors:
+
+ TriRoy
+
+****************************************************************************/
+
+#ifndef _BusInterface_H_
+#define _BusInterface_H_
+
+////////////////////////////////////////////////////////////////////////////////
+//
+// INCLUDES
+//
+////////////////////////////////////////////////////////////////////////////////
+#if 0
+#include "MbbDebug.h"
+#endif
+////////////////////////////////////////////////////////////////////////////////
+//
+// DEFINES
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#define MAX_PARAMETER_STRING (128)
+
+#define ALT_DATA_SETTING_0 (0)
+#define ALT_DATA_SETTING_1 (1)
+
+#define MAX_PENDING_SENDS (3)
+
+////////////////////////////////////////////////////////////////////////////////
+//
+// TYPEDEFS
+//
+////////////////////////////////////////////////////////////////////////////////
+typedef PVOID MBB_BUS_HANDLE;
+typedef PVOID MBB_PROTOCOL_HANDLE;
+typedef PVOID MBB_REQUEST_HANDLE;
+typedef PVOID MBB_RECEIVE_CONTEXT;
+
+typedef struct _MBB_BUS_PARAMETERS
+{
+ ULONG FragmentSize;
+
+ ULONG MaxSegmentSize;
+
+ BOOLEAN ChainedMdlsSupported;
+ BOOLEAN Ntb32BitSupported;
+ BOOLEAN CurrentMode32Bit;
+ BOOLEAN SelectiveSuspendSupported;
+
+ ULONG MaxOutNtb;
+ USHORT MaxOutDatagrams;
+ USHORT NdpOutDivisor;
+ USHORT NdpOutRemainder;
+ USHORT NdpOutAlignment;
+
+ BYTE PowerFiltersSupported;
+ BYTE MaxPowerFilterSize;
+
+ WCHAR Manufacturer[MAX_PARAMETER_STRING];
+ WCHAR Model[MAX_PARAMETER_STRING];
+
+ BYTE MaxOutstandingCommandMessages;
+ USHORT MTU;
+ BOOLEAN IsErrataDevice;
+ USHORT MbimVersion;
+ BOOLEAN RemoteWakeCapable;
+ USHORT MbimExtendedVersion;
+
+} MBB_BUS_PARAMETERS, *PMBB_BUS_PARAMETERS;
+
+typedef struct _MBB_CONNECTION_STATE
+{
+
+ BOOLEAN ConnectionUp;
+ ULONGLONG UpStreamBitRate;
+ ULONGLONG DownStreamBitRate;
+
+} MBB_CONNECTION_STATE, *PMBB_CONNECTION_STATE;
+
+typedef __callback VOID (*MBB_BUS_SEND_COMPLETION_CALLBACK)(__in MBB_PROTOCOL_HANDLE ProtocolHandle, __in MBB_REQUEST_HANDLE RequestHandle, __in NTSTATUS Status);
+
+typedef __callback VOID (*MBB_BUS_RECEIVE_COMPLETION_CALLBACK)(
+ __in MBB_PROTOCOL_HANDLE ProtocolHandle, __in MBB_REQUEST_HANDLE RequestHandle, __in NTSTATUS Status, __in ULONG_PTR ReceivedLength);
+
+typedef __callback VOID (*MBB_BUS_RESPONSE_AVAILABLE_CALLBACK)(__in MBB_PROTOCOL_HANDLE ProtocolHandle);
+
+typedef __callback VOID (*MBB_BUS_SEND_DATA_COMPLETION_CALLBACK)(
+ __in MBB_PROTOCOL_HANDLE ProtocolHandle, __in MBB_REQUEST_HANDLE RequestHandle, __in NTSTATUS Status, __in PMDL Mdl);
+
+typedef __callback VOID (*MBB_BUS_DATA_RECEIVE_CALLBACK)(__in MBB_PROTOCOL_HANDLE ProtocolHandle, __in MBB_RECEIVE_CONTEXT ReceiveContext, __in PMDL Mdl);
+
+typedef __callback VOID (*MBB_BUS_SS_IDLE_CONFIRM_CALLBACK)(__in MBB_PROTOCOL_HANDLE ProtocolHandle, __in DEVICE_POWER_STATE PowerState);
+
+typedef __callback VOID (*MBB_BUS_SS_IDLE_NOTIFICATION_COMPLETE_CALLBACK)(__in MBB_PROTOCOL_HANDLE ProtocolHandle, __in NTSTATUS Status);
+
+////////////////////////////////////////////////////////////////////////////////
+//
+// INTERFACE
+//
+////////////////////////////////////////////////////////////////////////////////
+EXTERN_C
+NTSTATUS
+MbbBusInitialize(
+ _In_ PDEVICE_OBJECT Pdo,
+ _In_ PDEVICE_OBJECT Fdo,
+ _In_ PDEVICE_OBJECT NextDeviceObject,
+ _In_ MBB_BUS_RESPONSE_AVAILABLE_CALLBACK ResponseAvailableCallback,
+ _In_ MBB_BUS_DATA_RECEIVE_CALLBACK ReceiveDataCallback,
+ _In_ MBB_BUS_SS_IDLE_CONFIRM_CALLBACK IdleConfirmCallback,
+ _In_ MBB_BUS_SS_IDLE_NOTIFICATION_COMPLETE_CALLBACK IdleNotificationComplete,
+ _In_ MBB_PROTOCOL_HANDLE ProtocolHandle,
+ _Outptr_ MBB_BUS_HANDLE* BusHandle);
+/*
+ Description
+ This routine initializes the bus layer i.e. the lower layer in the
+ MBB Class Driver. All bus layer implementations need to have this
+ function. The Protocol Layer i.e. the upper layer in the MBB Class
+ Driver will call this function before calling any other function in
+ the Bus Layer.
+
+ Parameters
+ _In_ PDEVICE_OBJECT DeviceObject,
+ The WDM device representation of the device.
+
+ _In_ MBB_BUS_NOTIFICATION_CALLBACK NotificationCallback,
+ The routine the bus layer calls when it needs to notify
+ the upper protocol layer.
+
+ _In_ MBB_PROTOCOL_HANDLE ProtocolHandle,
+ The handle the bus layer passes back to the protocol layer
+ when it calls any callback. The protocol layer uses this handle
+ to identify the instance of the MBB device the callback is meant for.
+
+ _Outptr_ MBB_BUS_HANDLE BusHandle
+ The handle returned by the bus layer on successful initialization.
+ The protocol layer passes this handle to the bus layer on subsequent
+ calls to the bus layer. The bus layer uses this handle to indetify
+ the instance of the MBB device.
+
+ Return Value
+ NTSTATUS_SUCCESS
+ Initialization was successful.
+
+ Other failure code
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusInitializeByWdf(
+ _In_ WDFDEVICE WdfDevice,
+ _In_ MBB_BUS_RESPONSE_AVAILABLE_CALLBACK ResponseAvailableCallback,
+ _In_ MBB_BUS_DATA_RECEIVE_CALLBACK ReceiveDataCallback,
+ _In_ MBB_BUS_SS_IDLE_CONFIRM_CALLBACK IdleConfirmCallback,
+ _In_ MBB_BUS_SS_IDLE_NOTIFICATION_COMPLETE_CALLBACK IdleNotificationComplete,
+ _In_ MBB_PROTOCOL_HANDLE ProtocolHandle,
+ _Outptr_ MBB_BUS_HANDLE* BusHandle,
+ _Inout_opt_ MBB_BUS_HANDLE preAllocatedBusObject);
+
+EXTERN_C
+VOID MbbBusCleanup(__in MBB_BUS_HANDLE BusHandle);
+/*
+ Description
+ This will be last call from Protocol layer in to Bus Layer
+ to cleanup the bus layer. The bus layer should free all
+ resources. The BusHandle will not be used for subsequent calls.
+ If there are pending requests the Bus Layer should not return
+ from this call unless all operations are complete.
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle
+ BusHandle identifies the instance of the bus layer.
+
+ Return Value
+ None
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusQueryBusParameters(__in MBB_BUS_HANDLE BusHandle, __out PMBB_BUS_PARAMETERS BusParameters);
+/*
+ Description
+ This routine queries the bus specific parameters like transfer size,
+ DMA support etc... This is called when the bus is initialized to format
+ requests correctly before sending to the bus.
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ __out PMBB_BUS_PARAMETERS BusParameters
+ The buffer where the bus layer returns the information to the caller.
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+EXTERN_C
+NTSTATUS
+MbbBusSendMessageFragment(
+ __in MBB_BUS_HANDLE BusHandle,
+ __in MBB_REQUEST_HANDLE RequestHandle,
+ __in PVOID MessageFragment,
+ __in ULONG FragmentLength,
+ __in LPGUID ActivityId,
+ __in MBB_BUS_SEND_COMPLETION_CALLBACK SendCompletionCallback);
+/*
+ Description
+ The protocol layer call this routine to request the bus layer to
+ send a message fragment. Fragmentation / Reassembly is handled by
+ the protocol layer and it will only handle fragments that are within
+ the maximum transfer size of the bus.
+
+ This routine is asynchronous and returns immediately after queueing
+ the transfer. The caller is notified of the completion through the
+ callback.
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ __in MBB_REQUEST_HANDLE RequestHandle,
+ Identifies the request.
+
+ __in PVOID MessageFragment,
+ The data payload that needs to be sent.
+
+ __in ULONG FragmentLength,
+ Length of the data payload. This will not be greater than the
+ maximum transfer size supported by the bus.
+
+ __in MBB_BUS_SEND_COMPLETION_CALLBACK SendCompletionCallback
+ The completion callback routine that will be called by the bus
+ when the transfer is complete.
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ The transfer has completed successfully. SendCompletionCallback will NOT be called.
+
+ NTSTATUS_PENDING
+ The transfer was queued. SendCompletionCallback will be called on completion.
+
+ Other failure code
+ The transfer could not be queued. SendCompletionCallback will NOT be called.
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusReceiveMessageFragment(
+ _In_ MBB_BUS_HANDLE BusHandle,
+ _In_ MBB_REQUEST_HANDLE RequestHandle,
+ _In_ __drv_aliasesMem PVOID MessageFragment,
+ _In_ ULONG FragmentLength,
+ _In_ LPGUID ActivityId,
+ _In_ MBB_BUS_RECEIVE_COMPLETION_CALLBACK ReceiveCompletionCallback);
+/*
+ Description
+
+ Parameters
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Initialization was successful.
+
+ Other failure code
+*/
+/*
+ Description
+ The protocol layer call this routine to request the bus layer to
+ receive data from the device. Reassembly is handled by the protocol layer.
+
+ This routine is asynchronous and returns immediately after queueing
+ the transfer. The caller is notified of the completion through the
+ callback.
+
+ Parameters
+ _In_ MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ _In_ MBB_REQUEST_HANDLE RequestHandle,
+ Identifies the request.
+
+ _InOut_ PVOID MessageFragment,
+ The data buffer that would be filled with the received data.
+
+ _In_ ULONG FragmentLength,
+ Length of the data requested from the device. This will not be
+ greater than the maximum transfer size supported by the bus.
+
+ _In_ MBB_BUS_RECEIVE_COMPLETION_CALLBACK ReceiveCompletionCallback
+ The completion callback routine that will be called by the bus
+ when the transfer is complete.
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ The transfer has completed successfully. ReceiveCompletionCallback will NOT be called.
+
+ NTSTATUS_PENDING
+ The transfer was queued. ReceiveCompletionCallback will be called on completion.
+
+ Other failure code
+ The transfer could not be queued. ReceiveCompletionCallback will NOT be called.
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusSetPacketFilter(__in MBB_BUS_HANDLE BusHandle, __in ULONG PacketFilter);
+/*
+ Description
+ Sets the packet filter on the device.
+ For MBB only directed is supported
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ __in ULONG PacketFilter
+ the filter to apply
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusGetStat(__in MBB_BUS_HANDLE BusHandle, __in USHORT StatIndex, __out ULONGLONG* Value);
+/*
+ Description
+ Retrieves a status from the device
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ __in ULONG PacketFilter
+ the filter to apply
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusStart(_In_ MBB_BUS_HANDLE BusHandle);
+
+EXTERN_C
+NTSTATUS
+MbbBusStop(__in MBB_BUS_HANDLE BusHandle);
+
+EXTERN_C
+BOOLEAN
+MbbBusIsStoped(_In_ MBB_BUS_HANDLE BusHandle);
+
+EXTERN_C
+NTSTATUS
+MbbBusOpen(_In_ MBB_BUS_HANDLE BusHandle, _In_ ULONG TransactionId, _In_opt_ PVOID FastIOSendNetBufferListsComplete, _In_opt_ PVOID FastIOIndicateReceiveNetBufferLists);
+/*
+ Description
+
+ Opens the session with the device
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusClose(__in MBB_BUS_HANDLE BusHandle, __in ULONG TransactionId, __in BOOLEAN ForceClose);
+/*
+ Description
+
+ Opens the session with the device
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+
+EXTERN_C
+NTSTATUS
+MbbBusStartDataPipes(__in MBB_BUS_HANDLE BusHandle);
+/*
+ Description
+
+ Selects alt data interface 1 and starts the IoTargets
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+
+EXTERN_C
+VOID MbbBusStopDataPipes(__in MBB_BUS_HANDLE BusHandle);
+/*
+ Description
+
+ Resets the IoTargets canceling all and waiting for io to compelte
+ Selects alt data interface 0 disabling the pipes
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+
+EXTERN_C
+void MbbBusResetDataPipes(_In_ MBB_BUS_HANDLE BusHandle);
+
+EXTERN_C
+NTSTATUS
+MbbBusWriteData(__in MBB_BUS_HANDLE BusHandle, __in MBB_REQUEST_HANDLE RequestHandle, __in PMDL Mdl, __in MBB_BUS_SEND_DATA_COMPLETION_CALLBACK Callback);
+/*
+ Description
+
+ Writes data to device bulk out pipe
+
+ Parameters
+ __in MBB_BUS_HANDLE BusHandle,
+ BusHandle identifies the instance of the bus layer.
+
+ __in MBB_REQUEST_HANDLE RequestHandle,
+ Identifies the request.
+
+ __in PMDL Mdl
+ pointer to an MDL identifying the data to send. The bus layer will own this until the completion callback is called.
+
+ __in MBB_BUS_SEND_DATA_COMPLETION_CALLBACK Callback
+ Callback that will be called when write is complete.
+
+ Return Value
+
+ NTSTATUS_SUCCESS
+ Information was successfully returned in the BusParameters structure.
+
+ NTSTATUS_INVALID_PARAMETER
+ One of the required parameters is missing or bad.
+
+ Other failure code
+*/
+EXTERN_C
+VOID MbbBusReturnReceiveBuffer(__in MBB_BUS_HANDLE BusHandle, __in MBB_RECEIVE_CONTEXT ReceiveContext, __in PMDL Mdl);
+
+EXTERN_C
+NTSTATUS
+MbbBusSelectDataAltSetting(__in MBB_BUS_HANDLE BusHandle, __in UCHAR AltSetting);
+
+EXTERN_C
+NTSTATUS
+MbbBusIdleNotification(__in MBB_BUS_HANDLE BusHandle, __in BOOLEAN ForceIdle);
+
+EXTERN_C
+VOID MbbBusCancelIdleNotification(__in MBB_BUS_HANDLE BusHandle);
+
+EXTERN_C
+NTSTATUS
+MbbBusSetPowerFilterPattern(
+ __in MBB_BUS_HANDLE BusHandle,
+ __in ULONG PatternId,
+ __in_bcount_opt(MaskSize) PCUCHAR Mask,
+ __in ULONG MaskSize,
+ __in_bcount_opt(PatternSize) PCUCHAR Pattern,
+ __in ULONG PatternSize);
+
+EXTERN_C
+NTSTATUS
+MbbBusResetBulkPipe(__in MBB_BUS_HANDLE BusHandle, __in BOOLEAN Out);
+
+EXTERN_C
+VOID MbbBusSetNotificationState(__in MBB_BUS_HANDLE BusHandle, __in BOOLEAN Enabled);
+
+EXTERN_C
+BOOLEAN
+MbbBusIsUde(_In_ MBB_BUS_HANDLE BusHandle);
+
+#endif
diff --git a/network/wwan/cxwmbclass/inc/MbbLibrary.h b/network/wwan/cxwmbclass/inc/MbbLibrary.h
new file mode 100644
index 00000000..25c4bef9
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/MbbLibrary.h
@@ -0,0 +1,175 @@
+/***************************************************************************
+
+Copyright (c) 2010 Microsoft Corporation
+
+Module Name:
+
+ MbbLibrary.h
+
+Abstract:
+
+ This header files contains the interfaces to the pack / unpack and
+ fragment / reassembly functions provided by the Mbb library.
+ The class driver Protocol layer calls the libary to convert payloads
+ to messages as defined in the MBB Class Driver Hardware Interface
+ document before sending it to the Bus Layer.
+
+Environment:
+
+ User and kernel mode only
+
+Notes:
+
+ This library can be used both in user and kernel mode because it does not
+ to make any memory allocations.
+
+Revision History:
+
+ 2/7/2010 : created
+
+Authors:
+
+ TriRoy
+
+****************************************************************************/
+EXTERN_C
+NTSTATUS
+MbbLibForamtBufferAsOpenMessage(__out_bcount_opt(*BufferLength) PVOID MessageBuffer, __inout PULONG BufferLength, __in ULONG MaximumControlTransfer);
+/*
+ Description
+ Formats an input buffer as a MBB Open Message.
+
+ Parameters
+ __out_opt_bcount(*BufferLength) PVOID MessageBuffer
+ The input message buffer. This parameter may be NULL
+ if BufferLength is 0. This parameter should not be NULL
+ when BufferLength is non-zero.
+
+ __inout PULONG BufferLength
+ This provides the length of the memory location described by MessageBuffer.
+ If BufferLength is 0 then the function will return the required buffer length
+ in this parameter with STATUS_BUFFER_OVERFLOW. On success, the amount of
+ buffer space used by the routine is returned to the caller in BufferLength.
+
+ __in ULONG MaximumControlTransfer
+ MaximumControlTransfer field of the Open Message.
+
+ Return Value
+ STATUS_BUFFER_OVERFLOW
+ The buffer passed in is not sufficient for formatting the message.
+
+ STATUS_INVALID_PARAMETER
+ One of the required parameters is missing.
+
+ STATUS_SUCCESS
+ The input buffer was formatted successfully and the amount of buffer
+ used is returned in BufferLength.
+*/
+EXTERN_C
+NTSTATUS
+MbbLibForamtBufferAsCloseMessage(__out_bcount_opt(*BufferLength) PVOID MessageBuffer, __inout PULONG BufferLength);
+/*
+ Description
+ Formats an input buffer as a MBB Close Message.
+
+ Parameters
+ __out_opt_bcount(*BufferLength) PVOID MessageBuffer
+ The input message buffer. This parameter may be NULL
+ if BufferLength is 0. This parameter should not be NULL
+ when BufferLength is non-zero.
+
+ __inout PULONG BufferLength
+ This provides the length of the memory location described by MessageBuffer.
+ If BufferLength is 0 then the function will return the required buffer length
+ in this parameter with STATUS_BUFFER_OVERFLOW. On success, the amount of
+ buffer space used by the routine is returned to the caller in BufferLength.
+
+ Return Value
+ STATUS_BUFFER_OVERFLOW
+ The buffer passed in is not sufficient for formatting the message.
+
+ STATUS_INVALID_PARAMETER
+ One of the required parameters is missing.
+
+ STATUS_SUCCESS
+ The input buffer was formatted successfully and the amount of buffer
+ used is returned in BufferLength.
+*/
+EXTERN_C
+NTSTATUS
+MbbLibFragmentBufferToCommandMessages(
+ __in PMBB_COMMAND Command,
+ __in MBB_COMMAND_TYPE CommandType,
+ __in_bcount_opt(PayloadLength) PCHAR Payload,
+ __in ULONG PayloadLength,
+ __inout_opt PULONG TransactionId,
+ __in ULONG CurrentFragment,
+ __inout PULONG FragmentBufferCount,
+ __inout PULONG FragmentLength,
+ __out_ecount_opt(*FragmentBufferCount) PCHAR* FragmentBuffers);
+/*
+ Description
+ Given the Payload the routine fragments the payload
+ in to the FragmentBuffers.
+
+ Parameters
+ __in MBB_COMMAND Command
+ Command contains the GUID and Cid.
+ The GUID identifying the service for this message.
+ The command identifier for the given service.
+
+ __in MBB_COMMAND_TYPE CommandType
+ Identifies whether the command is a Set or Query.
+
+ __in_bcount(PayloadLength) PCHAR Payload
+ The Payload is a byte array that needs to be fragmented.
+ If Payload length is not 0 Payload should be provided.
+
+ __in ULONG PayloadLength
+ Length of the payload. If there is no Payload for this command
+ Payload is set to 0.
+
+ __inout PULONG TransactionId
+ If non-zero then this is the transaction id used for the fragments.
+ If zero then a new transcation id is generated and returned to the caller.
+
+ __in ULONG CurrentFragment
+ If non-zero then Fragments are constructed starting this Fragment.
+ If zero then Fragments are constructed from the beginning.
+
+ __inout ULONG FragmentBufferCount
+ Number of input fragments i.e. numberof buffers described by
+ FragmentBuffers array. If the caller is querying for the
+ number of fragments required then this should be set to 0.
+ The function will return the number of fragment required
+ with STATUS_BUFFER_OVERFLOW.
+
+ __in ULONG FragmentLength
+ Length of each output fragment buffers. All fragment
+ buffers needs to be of the same size.
+ The length of the last fragment is returned on STATUS_SUCCESS.
+ All but the last fragment are of FragmentLength size.
+ The last fragment can be lesser than the FragmentLength size.
+
+ __out_ecount_opt(*FragmentBufferCount) PCHAR* FragmentBuffers
+ Array of input fragment buffers. If FragmentCount is 0
+ FragmentBuffers can be NULL. If FragmentCount is non 0
+ FragmentBuffers should be provided.
+
+ Return Value
+ STATUS_INVALID_PARAMETER
+ One of the required parameters is missing.
+
+ STATUS_SUCCESS
+ The Payload was fragmented successfully in to
+ FragmentBuffers and the number of fragments used is
+ returned in FragmentCount.
+
+ STATUS_MORE_PROCESSING_REQUIRED
+ The complete Payload is not fragmented yet.
+ This is not a failure code but an indication to the caller that
+ more calls are needed with more fragment buffers.
+*/
+
+ULONG
+MbbLibraryGetNextTransactionId();
diff --git a/network/wwan/cxwmbclass/inc/adapter.h b/network/wwan/cxwmbclass/inc/adapter.h
new file mode 100644
index 00000000..236daad4
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/adapter.h
@@ -0,0 +1,53 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#pragma once
+
+// packet and header sizes
+#define MBB_MAX_PACKET_SIZE (1514)
+
+// maximum link speed for send and recv in bps
+#define MBB_MEDIA_MAX_SPEED 1'000'000'000
+
+// supported filters
+#define WMBCLASS_MAX_WOL_PATTERN (256)
+#define WMBCLASS_MAX_MBIM_WOL_PATTERN (192)
+
+//
+// Context for each NetAdapter instance.
+// Each NetAdapter instance corresponds to an IP interface
+//
+typedef struct _WMBCLASS_NETADAPTER_CONTEXT
+{
+ PWMBCLASS_DEVICE_CONTEXT WmbDeviceContext; // Wdf device context
+ NETADAPTER NetAdapter; // NetAdapter object
+
+ ULONG ConnectionId;
+ ULONG SessionId;
+ MBB_CONNECTION_STATE ConnectionState;
+
+ // RxQuere-related objects
+
+ WDFLOOKASIDE NtbLookasideList;
+ WDFLOOKASIDE ReceiveNdpLookasideList;
+
+ LIST_ENTRY ReceiveNdpList;
+ NETPACKETQUEUE TxQueue; // Tx Queue object
+ NETPACKETQUEUE RxQueue; // Rx Queue object
+ BOOLEAN AllowRxTraffic;
+} WMBCLASS_NETADAPTER_CONTEXT, *PWMBCLASS_NETADAPTER_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WMBCLASS_NETADAPTER_CONTEXT, WmbClassGetNetAdapterContext);
+
+//
+// NetAdapter functions
+//
+
+EVT_NET_ADAPTER_CREATE_TXQUEUE EvtAdapterCreateTxQueue;
+EVT_NET_ADAPTER_CREATE_RXQUEUE EvtAdapterCreateRxQueue;
+
+EVT_WDF_DEVICE_CONTEXT_DESTROY MbbDestroyAdapterContext;
+
+NTSTATUS
+WmbClassAdapterStart(_In_ NETADAPTER netAdapter);
diff --git a/network/wwan/cxwmbclass/inc/align.h b/network/wwan/cxwmbclass/inc/align.h
new file mode 100644
index 00000000..5c8117d3
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/align.h
@@ -0,0 +1,168 @@
+/*++
+
+Copyright (c) 1988-1992 Microsoft Corporation
+
+Module Name:
+
+ Align.h
+
+Abstract:
+
+
+Author:
+
+ John Rogers (JohnRo) 15-May-1991
+
+Environment:
+
+ This code assumes that sizeof(DWORD) >= sizeof(PVOID).
+
+Revision History:
+
+ 15-May-1991 JohnRo
+ Created align.h for NT/LAN from OS/2 1.2 HPFS pbmacros.h.
+ 19-Jun-1991 JohnRo
+ Make sure pointer-to-wider-then-byte doesn't get messed up.
+ 10-Jul-1991 JohnRo
+ Added ALIGN_BYTE and ALIGN_CHAR for completeness.
+ 21-Aug-1991 CliffV
+ Fix ROUND_DOWN_* to include ~
+ 03-Dec-1991 JohnRo
+ Worst-case on MIPS is 8-byte alignment.
+ Added COUNT_IS_ALIGNED() and POINTER_IS_ALIGNED() macros.
+ 26-Jun-1992 JohnRo
+ RAID 9933: ALIGN_WORST should be 8 for x86 builds.
+
+--*/
+
+#ifndef _ALIGN_
+#define _ALIGN_
+
+
+// BOOL
+// COUNT_IS_ALIGNED(
+// IN DWORD Count,
+// IN DWORD Pow2 // undefined if this isn't a power of 2.
+// );
+//
+#define COUNT_IS_ALIGNED(Count,Pow2) \
+ ( ( ( (Count) & (((Pow2)-1)) ) == 0) ? TRUE : FALSE )
+
+// BOOL
+// POINTER_IS_ALIGNED(
+// IN PVOID Ptr,
+// IN DWORD Pow2 // undefined if this isn't a power of 2.
+// );
+//
+#define POINTER_IS_ALIGNED(Ptr,Pow2) \
+ ( ( ( ((ULONG_PTR)(Ptr)) & (((Pow2)-1)) ) == 0) ? TRUE : FALSE )
+
+
+// Note .............
+// There is a subtle issue with all these alignment methods
+// The way the alignment is done depends on the lValue assignment of these MACRO
+// For example:
+// UINT64 fileSizeAlligned = ROUND_UP_COUNT(fileSize, pageSize)
+// will do a correct 64 bit aligned rounding up
+// UINT32 pagesInFileCount = ROUND_UP_COUNT(fileSize, pageSize) / pageSize;
+// this will truncate the pageSize to UINT32 when evaluating ~(Pow2-1) below
+// causing the result to truncate the most significant 32 bits in fileSize
+
+
+#define ROUND_DOWN_COUNT(Count,Pow2) \
+ ( (Count) & (~(((LONG)(Pow2))-1)) )
+
+#define ROUND_DOWN_POINTER(Ptr,Pow2) \
+ ( (PVOID) ROUND_DOWN_COUNT( ((ULONG_PTR)(Ptr)), (Pow2) ) )
+
+
+// If Count is not already aligned, then
+// round Count up to an even multiple of "Pow2". "Pow2" must be a power of 2.
+//
+// DWORD
+// ROUND_UP_COUNT(
+// IN DWORD Count,
+// IN DWORD Pow2
+// );
+#define ROUND_UP_COUNT(Count,Pow2) \
+ ( ((Count)+(Pow2)-1) & (~(((LONG)(Pow2))-1)) )
+
+// PVOID
+// ROUND_UP_POINTER(
+// IN PVOID Ptr,
+// IN DWORD Pow2
+// );
+
+// If Ptr is not already aligned, then round it up until it is.
+#define ROUND_UP_POINTER(Ptr,Pow2) \
+ ( (PVOID) ( (((ULONG_PTR)(Ptr))+(Pow2)-1) & (~(((LONG)(Pow2))-1)) ) )
+
+
+// Usage: myPtr = ROUND_UP_POINTER( unalignedPtr, ALIGN_LPVOID )
+
+#define ALIGN_BYTE sizeof(UCHAR)
+#define ALIGN_CHAR sizeof(CHAR)
+#define ALIGN_DESC_CHAR sizeof(DESC_CHAR)
+#define ALIGN_DWORD sizeof(DWORD)
+#define ALIGN_LONG sizeof(LONG)
+#define ALIGN_LPBYTE sizeof(LPBYTE)
+#define ALIGN_LPDWORD sizeof(LPDWORD)
+#define ALIGN_LPSTR sizeof(LPSTR)
+#define ALIGN_LPTSTR sizeof(LPTSTR)
+#define ALIGN_LPVOID sizeof(PVOID)
+#define ALIGN_LPWORD sizeof(LPWORD)
+#define ALIGN_TCHAR sizeof(TCHAR)
+#define ALIGN_WCHAR sizeof(WCHAR)
+#define ALIGN_WORD sizeof(WORD)
+
+//
+// For now, use a hardcoded constant. however, this should be visited again
+// and maybe changed to sizeof(QUAD).
+//
+
+#define ALIGN_QUAD 8
+
+#if defined(_X86_)
+
+#define ALIGN_WORST 8
+
+#elif defined(_AMD64_)
+
+#define ALIGN_WORST 8
+
+#elif defined(_ARM_)
+
+#define ALIGN_WORST 8
+
+#elif defined(_ARM64_)
+
+#define ALIGN_WORST 8
+
+#elif defined(_ALPHA_)
+
+//
+// Worst-case alignment on ALPHA is 8 bytes (for double). Specify this here,
+// in case our allocator is used for structures containing this. (That is,
+// even though NT/LAN doesn't need this for our data structures, let's be
+// permissive.) The alignment requirements apply to Alpha.
+//
+
+#define ALIGN_WORST 8
+
+#elif defined(_IA64_)
+
+//
+// IA64 note for QUAD: The NT QUAD type definition is NOT the EM 16byte quad type.
+// Because of some NT constraints, QUAD type size cannot be changed.
+//
+
+#define ALIGN_WORST 16
+
+#else // none of the above
+
+#error "Unknown alignment requirements for align.h"
+
+#endif // none of the above
+
+#endif // _ALIGN_
+
diff --git a/network/wwan/cxwmbclass/inc/data.h b/network/wwan/cxwmbclass/inc/data.h
new file mode 100644
index 00000000..4ac1a8ab
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/data.h
@@ -0,0 +1,185 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+// DEFINES
+//
+////////////////////////////////////////////////////////////////////////////////
+#pragma once
+
+#define MBB_DEFAULT_SESSION_ID 0
+
+typedef struct _DSS_PACKET
+{
+ WDFMEMORY Data;
+ PMDL Mdl;
+} DSS_PACKET, *PDSS_PACKET;
+
+typedef struct _MBB_PORT MBB_PORT, *PMBB_PORT;
+
+typedef struct _MINIPORT_DRIVER_CONTEXT
+{
+ WDFDRIVER hDriver;
+} MINIPORT_DRIVER_CONTEXT, *PMINIPORT_DRIVER_CONTEXT;
+
+typedef struct _MBB_RECEIVE_QUEUE
+{
+ //
+ // Queue State
+ //
+ BOOLEAN LookasideList;
+ NDIS_SPIN_LOCK Lock;
+ KEVENT QueueEmptyEvent;
+ //
+ // Track Receives
+ //
+ LIST_ENTRY ReceivedQueue;
+ //
+ // Resources
+ //
+ NDIS_HANDLE NblPool;
+ NPAGED_LOOKASIDE_LIST ReceiveLookasideList;
+
+} MBB_RECEIVE_QUEUE, *PMBB_RECEIVE_QUEUE;
+
+typedef struct _MBB_NDIS_RECEIVE_CONTEXT
+{
+ //
+ // Resources
+ //
+
+ PMDL Mdl;
+ PUCHAR ReceiveNtbBuffer;
+ WDFLOOKASIDE ReceiveLookasideList;
+ PMBB_RECEIVE_QUEUE RecvQueue;
+ MBB_BUS_HANDLE BusHandle;
+ MBB_RECEIVE_CONTEXT BusContext;
+ PWMBCLASS_DEVICE_CONTEXT WmbDeviceContext;
+ //
+ // Parse state
+ //
+ ULONG NtbSequence;
+ WDFMEMORY ReceiveLookasideBufferMemory;
+
+ LONG TotalNdpCount;
+ LONG CompletedNdpCount;
+} MBB_NDIS_RECEIVE_CONTEXT, *PMBB_NDIS_RECEIVE_CONTEXT;
+
+typedef struct _MBB_RECEIVE_NDP_CONTEXT
+{
+ LIST_ENTRY ReceiveNdpNode;
+ PMBB_NDIS_RECEIVE_CONTEXT ReceiveContext;
+ WDFMEMORY ReceiveNdpLookasideBufferMemory;
+ PVOID Nth;
+ PVOID Ndp;
+ ULONG CurrentDatagramIndex;
+ ULONG IndicatedPackets;
+ PWMBCLASS_NETADAPTER_CONTEXT NetAdapterContext;
+} MBB_RECEIVE_NDP_CONTEXT, *PMBB_RECEIVE_NDP_CONTEXT;
+
+extern MINIPORT_DRIVER_CONTEXT GlobalControl;
+
+typedef enum
+{
+ MbbNdpTypeNoCrc = 0,
+ MbbNdpTypeCrc,
+ MbbNdpTypeIps,
+ MbbNdpTypeVendor_1, // Vendor with session id X (need not be 1)
+ MbbNdpTypeVendor_2, // Vendor with session id Y (need not be X + 1)
+ MbbNdpTypeVendor_3,
+ MbbNdpTypeVendor_Max, // Max 4 vendor sessions in one NTB
+ MbbNdpTypeMax
+
+} MBB_NDP_TYPE;
+
+typedef struct _MBB_PACKET_CONTEXT
+{
+ PMDL DataStartMdl;
+ PMDL DataEndMdl;
+ PMDL PaddingMdl;
+ PMDL ModifiedMdl;
+ MDL OriginalMdl;
+
+} MBB_PACKET_CONTEXT, *PMBB_PACKET_CONTEXT;
+
+typedef struct _MBB_NDP_HEADER_ENTRY
+{
+ MBB_NDP_TYPE NdpType;
+ ULONG SessionId;
+ ULONG DatagramOffset;
+ ULONG DatagramLength;
+ ULONG NextEntryIndex;
+ PNET_BUFFER NetBuffer;
+ PNET_BUFFER_LIST NetBufferList;
+
+ union
+ {
+ NET_PACKET* NetPacket;
+ PDSS_PACKET DssPacket;
+ };
+ MBB_PACKET_CONTEXT NetPacketContext;
+} MBB_NDP_HEADER_ENTRY, *PMBB_NDP_HEADER_ENTRY;
+
+typedef struct _MBB_NTB_BUILD_CONTEXT
+{
+ LIST_ENTRY NtbQLink;
+ //
+ // Read-only values
+ //
+ BOOLEAN IsNtb32Bit;
+ ULONG NtbHeaderSize;
+ ULONG NdpHeaderFixedSize;
+ ULONG NdpDatagramEntrySize;
+ ULONG NtbOutMaxSize;
+ USHORT NtbOutMaxDatagrams;
+ USHORT NdpOutDivisor;
+ USHORT NdpOutPayloadRemainder;
+ USHORT NdpOutAlignment;
+ PVOID PaddingBuffer;
+ WDFLOOKASIDE NtbLookasideList;
+ //
+ // Network Transfer Header(NTH)
+ //
+ union
+ {
+ NCM_NTH16 Nth16;
+ NCM_NTH32 Nth32;
+ };
+ PMDL NthMdl;
+ //
+ // NDP Header
+ //
+ PMDL NdpMdl;
+ ULONG NdpSize;
+ PVOID NdpBuffer;
+ //
+ // NDP Datagrams
+ //
+ ULONG DatagramCount;
+ ULONG DatagramLength;
+ PMDL DatagramLastMdl;
+
+ WDFMEMORY NtbLookasideBufferMemory;
+ WDFMEMORY NdpBufferMemory;
+ NETPACKETQUEUE NetTxQueue;
+ NETADAPTER NetAdapter;
+ NET_RING_COLLECTION const* NetDatapathDescriptor;
+
+#if DBG
+ //
+ // Testing
+ //
+ PCHAR ScratchBuffer;
+ ULONG ScratchLength;
+#endif
+
+ //
+ // NDP Headers. Varialble length array is limited
+ // to NdpMaxDatagrams. NdpFirstDatagramEntry of -1
+ // is invalid.
+ //
+ ULONG NdpFirstDatagramEntry[MbbNdpTypeMax];
+ MBB_NDP_HEADER_ENTRY NdpDatagramEntries[ANYSIZE_ARRAY];
+
+} MBB_NTB_BUILD_CONTEXT, *PMBB_NTB_BUILD_CONTEXT;
diff --git a/network/wwan/cxwmbclass/inc/device.h b/network/wwan/cxwmbclass/inc/device.h
new file mode 100644
index 00000000..a00ea7f4
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/device.h
@@ -0,0 +1,45 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#pragma once
+
+typedef struct _WMBCLASS_DEVICE_CONTEXT
+{
+ void* WdfTriageInfoPtr;
+
+ WDFDEVICE WdfDevice;
+ bool m_armedWake;
+ ULONG TraceInstance;
+
+ MBB_BUS_HANDLE BusHandle;
+ MBB_BUS_PARAMETERS BusParams;
+
+ ULONGLONG DSSPacketsReceivedCount;
+ ULONGLONG DSSPacketsSentCount;
+
+ LONG NtbSequenceNumber;
+
+ WDFLOOKASIDE ReceiveLookasideList;
+ PUCHAR sharedPaddingBuffer;
+
+ struct
+ {
+ WDFSPINLOCK WdfRecvSpinLock;
+ struct _WMBCLASS_NETADAPTER_CONTEXT* NetAdapterContext; // the context of the netAdapter instance if this session is in use
+ } Sessions[MBB_MAX_NUMBER_OF_SESSIONS];
+
+} WMBCLASS_DEVICE_CONTEXT, *PWMBCLASS_DEVICE_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WMBCLASS_DEVICE_CONTEXT, WmbClassGetDeviceContext);
+
+EVT_WDF_DEVICE_PREPARE_HARDWARE EvtDevicePrepareHardware;
+EVT_WDF_DEVICE_RELEASE_HARDWARE EvtDeviceReleaseHardware;
+EVT_WDF_DEVICE_SURPRISE_REMOVAL EvtDeviceSurpriseRemoval;
+
+EVT_MBB_DEVICE_SEND_MBIM_FRAGMENT EvtMbbDeviceSendMbimFragment;
+EVT_MBB_DEVICE_RECEIVE_MBIM_FRAGMENT EvtMbbDeviceReceiveMbimFragment;
+EVT_MBB_DEVICE_CREATE_ADAPTER EvtMbbDeviceCreateAdapter;
+//EVT_NET_DEVICE_RESET EvtMbbDeviceReset;
+
+EVT_WDF_OBJECT_CONTEXT_CLEANUP EvtAdapterCleanup;
diff --git a/network/wwan/cxwmbclass/inc/mbbmessages.h b/network/wwan/cxwmbclass/inc/mbbmessages.h
new file mode 100644
index 00000000..61957009
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/mbbmessages.h
@@ -0,0 +1,3273 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.01.0625 */
+/* at Mon Jan 18 19:14:07 2038
+ */
+/* @@MIDL_FILE_HEADING( ) */
+
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 500
+#endif
+
+/* verify that the <rpcsal.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCSAL_H_VERSION__
+#define __REQUIRED_RPCSAL_H_VERSION__ 100
+#endif
+
+#if 0
+#include <rpc.h>
+#include <rpcndr.h>
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+#endif
+
+#ifndef __MbbMessages_h__
+#define __MbbMessages_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+#ifndef DECLSPEC_XFGVIRT
+#if _CONTROL_FLOW_GUARD_XFG
+#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
+#else
+#define DECLSPEC_XFGVIRT(base, func)
+#endif
+#endif
+
+/* Forward Declarations */
+
+/* header files for imported files */
+// #include "wtypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_MbbMessages_0000_0000 */
+/* [local] */
+
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#include <initguid.h>
+//
+// Service Ids
+//
+// Invald GUID
+// 00000000-0000-0000-0000-000000000000
+DEFINE_GUID( MBB_UUID_INVALID, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 );
+#define MBB_UUID_INVALID_CONSTANT { 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }
+// Basic IP Connectivity
+// a289cc33-bcbb-8b4f-b6b0-133ec2aae6df
+DEFINE_GUID( MBB_UUID_BASIC_CONNECT, 0xa289cc33, 0xbcbb, 0x8b4f, 0xb6, 0xb0, 0x13, 0x3e, 0xc2, 0xaa, 0xe6, 0xdf );
+#define MBB_UUID_BASIC_CONNECT_CONSTANT { 0xa289cc33, 0xbcbb, 0x8b4f, { 0xb6, 0xb0, 0x13, 0x3e, 0xc2, 0xaa, 0xe6, 0xdf } }
+// SMS
+// 533fbeeb-14fe-4467-9f90-33a223e56c3f
+DEFINE_GUID( MBB_UUID_SMS, 0x533fbeeb, 0x14fe, 0x4467, 0x9f, 0x90, 0x33, 0xa2, 0x23, 0xe5, 0x6c, 0x3f );
+#define MBB_UUID_SMS_CONSTANT { 0x533fbeeb, 0x14fe, 0x4467, { 0x9f, 0x90, 0x33, 0xa2, 0x23, 0xe5, 0x6c, 0x3f } }
+// USSD
+// e550a0c8-5e82-479e-82f7-10abf4c3351f
+DEFINE_GUID( MBB_UUID_USSD, 0xe550a0c8, 0x5e82, 0x479e, 0x82, 0xf7, 0x10, 0xab, 0xf4, 0xc3, 0x35, 0x1f );
+#define MBB_UUID_USSD_CONSTANT { 0xe550a0c8, 0x5e82, 0x479e, { 0x82, 0xf7, 0x10, 0xab, 0xf4, 0xc3, 0x35, 0x1f } }
+// Phonebook
+// 4bf38476-1e6a-41db-b1d8-bed289c25bdb
+DEFINE_GUID( MBB_UUID_PHONEBOOK, 0x4bf38476, 0x1e6a, 0x41db, 0xb1, 0xd8, 0xbe, 0xd2, 0x89, 0xc2, 0x5b, 0xdb );
+#define MBB_UUID_PHONEBOOK_CONSTANT { 0x4bf38476, 0x1e6a, 0x41db, { 0xb1, 0xd8, 0xbe, 0xd2, 0x89, 0xc2, 0x5b, 0xdb } }
+// SIM Application Toolkit
+// d8f20131-fcb5-4e17-8602-d6ed3816164c
+DEFINE_GUID( MBB_UUID_SAT, 0xd8f20131, 0xfcb5, 0x4e17, 0x86, 0x02, 0xd6, 0xed, 0x38, 0x16, 0x16, 0x4c );
+#define MBB_UUID_SAT_CONSTANT { 0xd8f20131, 0xfcb5, 0x4e17, { 0x86, 0x02, 0xd6, 0xed, 0x38, 0x16, 0x16, 0x4c } }
+// Windows 7 Vendor Extension
+// b492e7e2-adba-499d-8401-7794bb913c1c
+DEFINE_GUID( MBB_UUID_MS_VENDOR_EXTENSION, 0xb492e7e2, 0xadba, 0x499d, 0x84, 0x01, 0x77, 0x94, 0xbb, 0x91, 0x3c, 0x1c );
+#define MBB_UUID_MS_VENDOR_EXTENSION_CONSTANT { 0xb492e7e2, 0xadba, 0x499d, { 0x84, 0x01, 0x77, 0x94, 0xbb, 0x91, 0x3c, 0x1c } }
+// Authentication
+// 1d2b5ff7-0aa1-48b2-aa52-50f15767174e
+DEFINE_GUID( MBB_UUID_AUTH, 0x1d2b5ff7, 0x0aa1, 0x48b2, 0xaa, 0x52, 0x50, 0xf1, 0x57,0x67, 0x17, 0x4e );
+#define MBB_UUID_AUTH_CONSTANT { 0x1d2b5ff7, 0x0aa1, 0x48b2, { 0xaa, 0x52, 0x50, 0xf1, 0x57,0x67, 0x17, 0x4e } }
+// Device Service Stream
+// c08a26dd-7718-4382-8482-6e0d583c4d0e
+DEFINE_GUID( MBB_UUID_DSS, 0xc08a26dd, 0x7718, 0x4382, 0x84, 0x82, 0x6e, 0x0d, 0x58, 0x3c, 0x4d, 0x0e );
+#define MBB_UUID_DSS_CONSTANT { 0xc08a26dd, 0x7718, 0x4382, { 0x84, 0x82, 0x6e, 0x0d, 0x58, 0x3c, 0x4d, 0x0e } }
+// Multi-carrier device service
+// 8b569648-628d-4653-9b9f-1025404424e1
+DEFINE_GUID( MBB_UUID_MULTICARRIER, 0x8b569648, 0x628d, 0x4653, 0x9b, 0x9f, 0x10, 0x25, 0x40, 0x44, 0x24, 0xe1 );
+#define MBB_UUID_MULTICARRIER_CONSTANT { 0x8b569648, 0x628d, 0x4653, { 0x9b, 0x9f, 0x10, 0x25, 0x40, 0x44, 0x24, 0xe1 } }
+// Host Shutdown device service
+// 883b7c26-985f-43fa-9804-27d7fb80959c
+DEFINE_GUID( MBB_UUID_HOSTSHUTDOWN, 0x883b7c26, 0x985f, 0x43fa, 0x98, 0x04, 0x27, 0xd7, 0xfb, 0x80, 0x95, 0x9c );
+#define MBB_UUID_HOSTSHUTDOWN_CONSTANT { 0x883b7c26, 0x985f, 0x43fa, { 0x98, 0x04, 0x27, 0xd7, 0xfb, 0x80, 0x95, 0x9c } }
+// MBIM 2.0 voice extensions
+// 8d8b9eba-37be-449b-8f1e-61cb034a702e
+DEFINE_GUID( MBB_UUID_VOICEEXTENSIONS, 0x8d8b9eba, 0x37be, 0x449b, 0x8f, 0x1e, 0x61, 0xcb, 0x03, 0x4a, 0x70, 0x2e );
+#define MBB_UUID_VOICEEXTENSIONS_CONSTANT { 0x8d8b9eba, 0x37be, 0x449b, { 0x8f, 0x1e, 0x61, 0xcb, 0x03, 0x4a, 0x70, 0x2e } }
+// Low-Level UICC Access
+// c2f6588e-f037-4bc9-8665-f4d44bd09367
+DEFINE_GUID( MBB_UUID_UICC_LOW_LEVEL, 0xc2f6588e, 0xf037, 0x4bc9, 0x86, 0x65, 0xf4, 0xd4, 0x4b, 0xd0, 0x93, 0x67 );
+#define MBB_UUID_UICC_LOW_LEVEL_CONSTANT { 0xc2f6588e, 0xf037, 0x4bc9, { 0x86, 0x65, 0xf4, 0xd4, 0x4b, 0xd0, 0x93, 0x67 } }
+// Selective Absorption Rate (SAR) control
+// 68223d04-9f6c-4e0f-822d-28441fb72340
+DEFINE_GUID( MBB_UUID_SARCONTROL, 0x68223d04, 0x9f6c, 0x4e0f, 0x82, 0x2d, 0x28, 0x44, 0x1f, 0xb7, 0x23, 0x40 );
+#define MBB_UUID_SARCONTROL_CONSTANT { 0x68223d04, 0x9f6c, 0x4e0f, { 0x82, 0x2d, 0x28, 0x44, 0x1f, 0xb7, 0x23, 0x40 } }
+// Basic IP Connectivity Extensions (a private Microsoft service not approved by MBIM USB forum as of 2016/11/09)
+// 3d01dcc5-fef5-4d05-0d3a-bef7058e9aaf
+DEFINE_GUID( MBB_UUID_BASIC_CONNECT_EXTENSIONS, 0x3d01dcc5, 0xfef5, 0x4d05, 0x0d, 0x3a, 0xbe, 0xf7, 0x05, 0x8e, 0x9a, 0xaf );
+#define MBB_UUID_BASIC_CONNECT_EXT_CONSTANT { 0x3d01dcc5, 0xfef5, 0x4d05, { 0x0d, 0x3a, 0xbe, 0xf7, 0x05, 0x8e, 0x9a, 0xaf } }
+// DeviceService GUID for Modem Log Transfer (parameter for DSS connect/disconnect request to open/close DSS data channel)
+// 0ebb1ceb-af2d-484d-8df3-53bc51fd162c
+DEFINE_GUID( MBB_UUID_MODEM_LOG_TRANSFER, 0x0ebb1ceb, 0xaf2d, 0x484d, 0x8d, 0xf3, 0x53, 0xbc, 0x51, 0xfd, 0x16, 0x2c );
+#define MBB_UUID_MODEM_LOG_TRANSFER_CONSTANT { 0x0ebb1ceb, 0xaf2d, 0x484d, { 0x8d, 0xf3, 0x53, 0xbc, 0x51, 0xfd, 0x16, 0x2c } }
+//
+// Context Type GUIDs
+//
+// MBIMContextTypeNone
+// B43F758C-A560-4B46-B35E-C5869641FB54
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_NONE, 0xB43F758C, 0xA560, 0x4B46, 0xB3, 0x5E, 0xC5, 0x86, 0x96, 0x41, 0xFB, 0x54 );
+// MBIMContextTypeInternet
+// 7E5E2A7E-4E6F-7272-736B-656E7E5E2A7E
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_INTERNET, 0x7E5E2A7E, 0x4E6F, 0x7272, 0x73, 0x6B, 0x65, 0x6E, 0x7E, 0x5E, 0x2A, 0x7E );
+// MBIMContextTypeVpn
+// 9B9F7BBE-8952-44B7-83AC-CA41318DF7A0
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_VPN, 0x9B9F7BBE, 0x8952, 0x44B7, 0x83, 0xAC, 0xCA, 0x41, 0x31, 0x8D, 0xF7, 0xA0 );
+// MBIMContextTypeVoice
+// 88918294-0EF4-4396-8CCA-A8588FBC02B2
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_VOICE, 0x88918294, 0x0EF4, 0x4396, 0x8C, 0xCA, 0xA8, 0x58, 0x8F, 0xBC, 0x02, 0xB2 );
+// MBIMContextTypeVideoShare
+// 05A2A716-7C34-4B4D-9A91-C5EF0C7AAACC
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_VIDEO_SHARE, 0x05A2A716,0x7C34, 0x4B4D, 0x9A, 0x91, 0xC5, 0xEF, 0x0C, 0x7A, 0xAA, 0xCC );
+// MBIMContextTypePurchase
+// B3272496-AC6C-422B-A8C0-ACF687A27217
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_PURCHASE, 0xB3272496, 0xAC6C, 0x422B, 0xA8, 0xC0, 0xAC, 0xF6, 0x87, 0xA2, 0x72, 0x17 );
+// MBIMContextTypeIMS
+// 21610D01-3074-4BCE-9425-B53A07D697D6
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_IMS, 0x21610D01, 0x3074, 0x4BCE, 0x94, 0x25, 0xB5, 0x3A, 0x07, 0xD6, 0x97, 0xD6 );
+// MBIMContextTypeMMS
+// 46726664-7269-6BC6-9624-D1D35389ACA9
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_MMS, 0x46726664, 0x7269, 0x6BC6, 0x96, 0x24, 0xD1, 0xD3, 0x53, 0x89, 0xAC, 0xA9 );
+// MBIMContextTypeLocal
+// A57A9AFC-B09F-45D7-BB40-033C39F60DB9
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_LOCAL, 0xA57A9AFC, 0xB09F, 0x45D7, 0xBB, 0x40, 0x03, 0x3C, 0x39, 0xF6, 0x0D, 0xB9 );
+// MBIMMsContextTypeAdmin
+// 5f7e4c2e-e80b-40a9-a239-f0abcfd11f4b
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_MS_ADMIN, 0x5f7e4c2e, 0xe80b, 0x40a9, 0xa2, 0x39, 0xf0, 0xab, 0xcf, 0xd1, 0x1f, 0x4b );
+// MBIMMSContextTypeApp
+// 74d88a3d-dfbd-4799-9a8c-7310a37bb2ee
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_MS_APP, 0x74d88a3d, 0xdfbd, 0x4799, 0x9a, 0x8c, 0x73, 0x10, 0xa3, 0x7b, 0xb2, 0xee );
+// MBIMMsContextTypeXcap
+// 50d378a7-baa5-4a50-b872-3fe5bb463411
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_MS_XCAP, 0x50d378a7, 0xbaa5, 0x4a50, 0xb8, 0x72, 0x3f, 0xe5, 0xbb, 0x46, 0x34, 0x11 );
+// MBIMMsContextTypeTethering
+// 5e4e0601-48dc-4e2b-acb8-08b4016bbaac
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_MS_TETHERING, 0x5e4e0601, 0x48dc, 0x4e2b, 0xac, 0xb8, 0x08, 0xb4, 0x01, 0x6b, 0xba, 0xac );
+// MBIMMsContextTypeEmergencyCalling
+// 5f41adb8-204e-4d31-9da8-b3c970e360f2
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_MS_EMERGENCYCALL, 0x5f41adb8, 0x204e, 0x4d31, 0x9d, 0xa8, 0xb3, 0xc9, 0x70, 0xe3, 0x60, 0xf2 );
+// 9C494542-A43B-4EA5-B8B7-53310E71DF10
+DEFINE_GUID( MBB_UUID_CONTEXT_TYPE_CUSTOM, 0x9C494542, 0xA43B, 0x4EA5, 0xB8, 0xB7, 0x53, 0x31, 0x0E, 0x71, 0xDF, 0x10);
+// 146FED19-EB71-42A7-B3EB-3875DEA61D92
+DEFINE_GUID(GUID_USB_CAPABILITY_DEVICE_TYPE, 0x146FED19, 0xEB71, 0x42A7, 0xB3, 0xEB, 0x38, 0x75, 0xDE, 0xA6, 0x1D, 0x92);
+#define MBB_STATUS_SUCCESS( STATUS ) \
+ ( \
+ ((STATUS) == MBB_STATUS_SUCCESS) || \
+ ((STATUS) == MBB_STATUS_SMS_MORE_DATA) \
+ )
+#define MBB_STATUS_IS_BASIC(MBBSTATUS) (((MBBSTATUS) >= MBB_STATUS_BASIC_START) && ((MBBSTATUS) < MBB_STATUS_BASIC_END))
+#define MBB_STATUS_BASIC_INDEX(MBBSTATUS) ((MBBSTATUS)-MBB_STATUS_BASIC_START)
+#define MBB_STATUS_BASIC_COUNT() (MBB_STATUS_BASIC_END-MBB_STATUS_BASIC_START)
+#define MBB_STATUS_IS_SMS(MBBSTATUS) (((MBBSTATUS) >= MBB_STATUS_SMS_START) && ((MBBSTATUS) < MBB_STATUS_SMS_END))
+#define MBB_STATUS_SMS_INDEX(MBBSTATUS) ((MBBSTATUS)-MBB_STATUS_SMS_START)
+#define MBB_STATUS_SMS_COUNT() (MBB_STATUS_SMS_END-MBB_STATUS_SMS_START)
+#define MBB_STATUS_IS_UICC(MBBSTATUS) (((MBBSTATUS) >= MBB_STATUS_UICC_START) && ((MBBSTATUS) < MBB_STATUS_UICC_END))
+#define MBB_STATUS_UICC_INDEX(MBBSTATUS) ((MBBSTATUS)-MBB_STATUS_UICC_START)
+#define MBB_STATUS_UICC_COUNT() (MBB_STATUS_UICC_END-MBB_STATUS_UICC_START)
+#define MBB_UUID_TO_NET(_dest, _src) \
+{ \
+ (_dest)->Data1 = RtlUlongByteSwap((_src)->Data1); \
+ (_dest)->Data2 = RtlUshortByteSwap((_src)->Data2); \
+ (_dest)->Data3 = RtlUshortByteSwap((_src)->Data3); \
+ RtlCopyMemory((_dest)->Data4, (_src)->Data4, sizeof((_src)->Data4)); \
+ \
+}
+#define MBB_UUID_TO_HOST(_dest, _src) MBB_UUID_TO_NET(_dest, _src)
+#define MBB_IS_DEVICE_REGISTERED( _State_ ) \
+( \
+ ( (_State_) == MbbRegisterStateHome ) || \
+ ( (_State_) == MbbRegisterStateRoaming ) || \
+ ( (_State_) == MbbRegisterStatePartner ) \
+)
+#include <packon.h>
+#define MBB_MAXIMUM_DATA_CLASS_NAME_LENGTH ( 11 )
+
+#define MBB_MAXIMUM_DEVICE_ID_LENGTH ( 17 )
+
+#define MBB_MAXIMUM_FIRMWARE_INFO_LENGTH ( 31 )
+
+#define MBB_MAXIMUM_SUBSCRIBER_ID_LENGTH ( 15 )
+
+#define MBB_MAXIMUM_SIM_ICC_ID_LENGTH ( 20 )
+
+#define MBB_MAXIMUM_TELEPHONE_NUMBER_LENGTH ( 15 )
+
+#define MBB_MAXIMUM_TELEPHONE_NUMBER_ERRATA_LENGTH ( 22 )
+
+#define MBB_MAXIMUM_PIN_LENGTH ( 16 )
+
+#define MBB_MAXIMUM_PROVIDER_ID_LENGTH ( 6 )
+
+#define MBB_MAXIMUM_PROVIDER_NAME_LENGTH ( 20 )
+
+#define MBB_MAXIMUM_ROAMING_TEXT_LENGTH ( 63 )
+
+#define MBB_MAXIMUM_ACCESS_STRING_LENGTH ( 100 )
+
+#define MBB_MAXIMUM_USERNAME_LENGTH ( 255 )
+
+#define MBB_MAXIMUM_PASSWORD_LENGTH ( 255 )
+
+#define MBB_MAXIMUM_SMS_ADDRESS_LENGTH ( 20 )
+
+#define MBB_MAXIMUM_SMS_CDMA_ADDRESS_LENGTH ( 49 )
+
+#define MBB_MAXIMUM_SMS_CDMA_TIMESTAMP_LENGTH ( 21 )
+
+#define MBB_MAXIMUM_SMS_CDMA_BUFFER_LENGTH ( 160 )
+
+#define MBB_MAXIMUM_SMS_GSM_PDU_BUFFER_LENGTH ( 183 )
+
+#define MBB_MAXIMUM_SMS_CDMA_PDU_BUFFER_LENGTH ( 255 )
+
+#define MBB_USSD_STRING_LEN_MAX ( 160 )
+
+#define MBB_RSSI_DISABLE ( 0xffffffff )
+
+#define MBB_RSSI_DEFAULT ( 0 )
+
+#define MBB_SET_CONTEXT_STATE_EX3_MIN_TLV_CNT ( 3 )
+
+#define MBB_CONTEXT_STATE_EX3_MIN_TLV_CNT ( 1 )
+
+#define MBIM_VERSION_1_0 ( 0x100 )
+
+#define MBIM_MS_EXTENDED_VER_1_0 ( 0x100 )
+
+#define MBIM_MS_EXTENDED_VER_2_0 ( 0x200 )
+
+#define MBIM_MS_EXTENDED_VER_3_0 ( 0x300 )
+
+#define MBB_MS_DEVICE_CAPS_INFO_V3_MIN_TLV_CNT ( 6 )
+
+#define MBB_TLV_TYPE_RESERVED ( 0 )
+
+#define MBB_TLV_TYPE_UE_POLICIES ( 1 )
+
+#define MBB_TLV_TYPE_SINGLE_NSSAI ( 2 )
+
+#define MBB_TLV_TYPE_ALLOWED_NSSAI ( 3 )
+
+#define MBB_TLV_TYPE_CFG_NSSAI ( 4 )
+
+#define MBB_TLV_TYPE_DFLT_CFG_NSSAI ( 5 )
+
+#define MBB_TLV_TYPE_PRECFG_DFLT_CFG_NSSAI ( 6 )
+
+#define MBB_TLV_TYPE_REJ_NSSAI ( 7 )
+
+#define MBB_TLV_TYPE_LADN ( 8 )
+
+#define MBB_TLV_TYPE_TAI ( 9 )
+
+#define MBB_TLV_TYPE_WCHAR_STR ( 10 )
+
+#define MBB_TLV_TYPE_UINT16_TBL ( 11 )
+
+#define MBB_TLV_TYPE_EAP_PACKET ( 12 )
+
+#define MBB_TLV_TYPE_PCO ( 13 )
+
+#define MBB_TLV_TYPE_ROUTE_SELECTION_DESCRIPTORS ( 14 )
+
+#define MBB_TLV_TYPE_TRAFFIC_PARAMETERS ( 15 )
+
+#define MBB_TLV_TYPE_WAKE_COMMAND ( 16 )
+
+#define MBB_TLV_TYPE_WAKE_PACKET ( 17 )
+
+#define MBB_NW_PARAMS_INFO_CONFIG_TLV_CNT ( 6 )
+
+#define MBB_NW_PARAMS_INFO_UE_POLICIES_TLV_CNT ( 1 )
+
+typedef unsigned short MBB_TLV_TYPE;
+
+typedef
+enum _USB_CAP_DEVICE_TYPE
+ {
+ USB_CAP_DEVICE_TYPE_USB = 0,
+ USB_CAP_DEVICE_TYPE_UDE_MBIM = 1,
+ USB_CAP_DEVICE_TYPE_UDE_MBIM_FASTIO = 2,
+ USB_CAP_DEVICE_TYPE_MAXIMUM = ( USB_CAP_DEVICE_TYPE_UDE_MBIM_FASTIO + 1 )
+ } USB_CAP_DEVICE_TYPE;
+
+typedef struct _USB_CAP_DEVICE_INFO_HEADER
+ {
+ USB_CAP_DEVICE_TYPE DeviceType;
+ UCHAR DeviceMinorVersion;
+ UCHAR DeviceMajorVersion;
+ ULONG Reserved;
+ } USB_CAP_DEVICE_INFO_HEADER;
+
+typedef struct _USB_CAP_DEVICE_INFO_HEADER *PUSB_CAP_DEVICE_INFO_HEADER;
+
+typedef struct _USB_CAP_DEVICE_INFO
+ {
+ USB_CAP_DEVICE_INFO_HEADER DeviceInfoHeader;
+ } USB_CAP_DEVICE_INFO;
+
+typedef struct _USB_CAP_DEVICE_INFO *PUSB_CAP_DEVICE_INFO;
+
+typedef
+enum _MBB_NBL_TYPE
+ {
+ MBB_NBL_TYPE_IP = 0,
+ MBB_NBL_TYPE_DSS = 1,
+ MBB_NBL_TYPE_MAXIMUM = ( MBB_NBL_TYPE_DSS + 1 )
+ } MBB_NBL_TYPE;
+
+typedef
+enum _MBB_STATUS
+ {
+ MBB_STATUS_SUCCESS = 0,
+ MBB_STATUS_BASIC_START = 0,
+ MBB_STATUS_BUSY = 1,
+ MBB_STATUS_FAILURE = 2,
+ MBB_STATUS_SIM_NOT_INSERTED = 3,
+ MBB_STATUS_BAD_SIM = 4,
+ MBB_STATUS_PIN_REQUIRED = 5,
+ MBB_STATUS_PIN_DISABLED = 6,
+ MBB_STATUS_NOT_REGISTERED = 7,
+ MBB_STATUS_PROVIDERS_NOT_FOUND = 8,
+ MBB_STATUS_NO_DEVICE_SUPPORT = 9,
+ MBB_STATUS_PROVIDER_NOT_VISIBLE = 10,
+ MBB_STATUS_DATA_CLASS_NOT_AVAILABLE = 11,
+ MBB_STATUS_PACKET_SVC_DETACHED = 12,
+ MBB_STATUS_MAX_ACTIVATED_CONTEXTS = 13,
+ MBB_STATUS_NOT_INITIALIZED = 14,
+ MBB_STATUS_VOICE_CALL_IN_PROGRESS = 15,
+ MBB_STATUS_CONTEXT_NOT_ACTIVATED = 16,
+ MBB_STATUS_SERVICE_NOT_ACTIVATED = 17,
+ MBB_STATUS_INVALID_ACCESS_STRING = 18,
+ MBB_STATUS_INVALID_USER_NAME_PWD = 19,
+ MBB_STATUS_RADIO_POWER_OFF = 20,
+ MBB_STATUS_INVALID_PARAMETERS = 21,
+ MBB_STATUS_READ_FAILURE = 22,
+ MBB_STATUS_WRITE_FAILURE = 23,
+ MBB_STATUS_DENIED_POLICY = 24,
+ MBB_STATUS_NO_PHONEBOOK = 25,
+ MBB_STATUS_PARAMETER_TOO_LONG = 26,
+ MBB_STATUS_STK_BUSY = 27,
+ MBB_STATUS_OPERATION_NOT_ALLOWED = 28,
+ MBB_STATUS_MEMORY_FAILURE = 29,
+ MBB_STATUS_INVALID_MEMORY_INDEX = 30,
+ MBB_STATUS_MEMORY_FULL = 31,
+ MBB_STATUS_FILTER_NOT_SUPPORTED = 32,
+ MBB_STATUS_DSS_INSTANCE_LIMIT = 33,
+ MBB_STATUS_INVALID_DEVICE_SERVICE_OPERATION = 34,
+ MBB_STATUS_AUTH_INCORRECT_AUTN = 35,
+ MBB_STATUS_AUTH_SYNC_FAILURE = 36,
+ MBB_STATUS_AUTH_AMF_NOT_SET = 37,
+ MBB_STATUS_CONTEXT_NOT_SUPPORTED = 38,
+ MBB_STATUS_SHAREABILITY_CONDITION_ERROR = 39,
+ MBB_STATUS_PIN_FAILURE = 40,
+ MBB_STATUS_NO_LTE_ATTACH_CONFIG = 41,
+ MBB_STATUS_SESSION_ALREADY_EXISTS = 42,
+ MBB_STATUS_BASIC_END = ( MBB_STATUS_SESSION_ALREADY_EXISTS + 1 ) ,
+ MBB_STATUS_SMS_UNKNOWN_SMSC_ADDRESS = 100,
+ MBB_STATUS_SMS_START = 100,
+ MBB_STATUS_SMS_NETWORK_TIMEOUT = 101,
+ MBB_STATUS_SMS_LANG_NOT_SUPPORTED = 102,
+ MBB_STATUS_SMS_ENCODING_NOT_SUPPORTED = 103,
+ MBB_STATUS_SMS_FORMAT_NOT_SUPPORTED = 104,
+ MBB_STATUS_SMS_MORE_DATA = 105,
+ MBB_STATUS_SMS_END = ( MBB_STATUS_SMS_MORE_DATA + 1 ) ,
+ MBB_STATUS_UICC_NO_LOGICAL_CHANNELS = 0x87430001,
+ MBB_STATUS_UICC_START = 0x87430001,
+ MBB_STATUS_UICC_SELECT_FAILED = 0x87430002,
+ MBB_STATUS_UICC_INVALID_LOGICAL_CHANNEL = 0x87430003,
+ MBB_STATUS_UICC_END = ( MBB_STATUS_UICC_INVALID_LOGICAL_CHANNEL + 1 )
+ } MBB_STATUS;
+
+typedef
+enum _MBB_ERROR
+ {
+ MBB_ERROR_NONE = 0,
+ MBB_ERROR_TIMEOUT_FRAGMENT = 1,
+ MBB_ERROR_FRAGMENT_OUT_OF_SEQUENCE = 2,
+ MBB_ERROR_LENGTH_MISMATCH = 3,
+ MBB_ERROR_DUPLICATE_TID = 4,
+ MBB_ERROR_NOT_OPENED = 5,
+ MBB_ERROR_UNKNOWN = 6,
+ MBB_ERROR_CANCEL = 7,
+ MBB_ERROR_MAX_TRANSFER = 8
+ } MBB_ERROR;
+
+typedef
+enum _MBB_MESSAGE_TYPE
+ {
+ MBB_MESSAGE_TYPE_NONE = 0,
+ MBB_MESSAGE_TYPE_OPEN = 0x1,
+ MBB_MESSAGE_TYPE_CLOSE = 0x2,
+ MBB_MESSAGE_TYPE_COMMAND = 0x3,
+ MBB_MESSAGE_TYPE_HOST_ERROR = 0x4,
+ MBB_MESSAGE_TYPE_OPEN_DONE = 0x80000001,
+ MBB_MESSAGE_TYPE_CLOSE_DONE = 0x80000002,
+ MBB_MESSAGE_TYPE_COMMAND_DONE = 0x80000003,
+ MBB_MESSAGE_TYPE_FUNCTION_ERROR = 0x80000004,
+ MBB_MESSAGE_TYPE_INDICATE_STATUS = 0x80000007
+ } MBB_MESSAGE_TYPE;
+
+typedef
+enum _MBB_COMMAND_TYPE
+ {
+ MBB_COMMAND_TYPE_QUERY = 0,
+ MBB_COMMAND_TYPE_SET = 1
+ } MBB_COMMAND_TYPE;
+
+typedef struct _MBB_MESSAGE_HEADER
+ {
+ MBB_MESSAGE_TYPE MessageType;
+ ULONG MessageLength;
+ ULONG MessageTransactionId;
+ } MBB_MESSAGE_HEADER;
+
+typedef struct _MBB_MESSAGE_HEADER *PMBB_MESSAGE_HEADER;
+
+typedef struct _MBB_FRAGMENT_HEADER
+ {
+ ULONG TotalFragments;
+ ULONG CurrentFragment;
+ } MBB_FRAGMENT_HEADER;
+
+typedef struct _MBB_FRAGMENT_HEADER *PMBB_FRAGMENT_HEADER;
+
+typedef struct _MBB_COMMAND
+ {
+ GUID ServiceId;
+ ULONG CommandId;
+ } MBB_COMMAND;
+
+typedef struct _MBB_COMMAND *PMBB_COMMAND;
+
+typedef struct _MBB_COMMAND_HEADER
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_FRAGMENT_HEADER FragmentHeader;
+ MBB_COMMAND Command;
+ MBB_COMMAND_TYPE CommandType;
+ ULONG InformationBufferLength;
+ } MBB_COMMAND_HEADER;
+
+typedef struct _MBB_COMMAND_HEADER *PMBB_COMMAND_HEADER;
+
+typedef struct _MBB_COMMAND_FRAGMENT_HEADER
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_FRAGMENT_HEADER FragmentHeader;
+ } MBB_COMMAND_FRAGMENT_HEADER;
+
+typedef struct _MBB_COMMAND_FRAGMENT_HEADER *PMBB_COMMAND_FRAGMENT_HEADER;
+
+typedef struct _MBB_COMMAND_DONE_HEADER
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_FRAGMENT_HEADER FragmentHeader;
+ MBB_COMMAND Command;
+ MBB_STATUS MbbStatus;
+ ULONG InformationBufferLength;
+ } MBB_COMMAND_DONE_HEADER;
+
+typedef struct _MBB_COMMAND_DONE_HEADER *PMBB_COMMAND_DONE_HEADER;
+
+typedef struct _MBB_INDICATE_STATUS_HEADER
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_FRAGMENT_HEADER FragmentHeader;
+ MBB_COMMAND Command;
+ ULONG InformationBufferLength;
+ } MBB_INDICATE_STATUS_HEADER;
+
+typedef struct _MBB_INDICATE_STATUS_HEADER *PMBB_INDICATE_STATUS_HEADER;
+
+typedef struct _MBB_OPEN_MESSAGE
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ ULONG MaximumControlTransfer;
+ } MBB_OPEN_MESSAGE;
+
+typedef struct _MBB_OPEN_MESSAGE *PMBB_OPEN_MESSAGE;
+
+typedef struct _MBB_OPEN_MESSAGE_FASTIO
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ ULONG MaximumControlTransfer;
+ PVOID AdapterContext;
+ PVOID SendNetBufferListsCompleteHandler;
+ PVOID ReceiveNetBufferListsHandler;
+ } MBB_OPEN_MESSAGE_FASTIO;
+
+typedef struct _MBB_OPEN_MESSAGE_FASTIO *PMBB_OPEN_MESSAGE_FASTIO;
+
+typedef struct _MBB_CLOSE_MESSAGE
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ } MBB_CLOSE_MESSAGE;
+
+typedef struct _MBB_CLOSE_MESSAGE *PMBB_CLOSE_MESSAGE;
+
+typedef struct _MBB_OPEN_DONE
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_STATUS MbbStatus;
+ } MBB_OPEN_DONE;
+
+typedef struct _MBB_OPEN_DONE *PMBB_OPEN_DONE;
+
+typedef struct _MBB_OPEN_DONE_FASTIO
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_STATUS MbbStatus;
+ PVOID ModemContext;
+ PVOID SendNetBufferListsHandler;
+ PVOID ReturnNetBufferListsHandler;
+ PVOID CancelSendHandler;
+ PVOID HaltHandler;
+ PVOID PauseHandler;
+ PVOID ShutdownHandler;
+ PVOID ResetHandler;
+ PVOID RestartHandler;
+ } MBB_OPEN_DONE_FASTIO;
+
+typedef struct _MBB_OPEN_DONE_FASTIO *PMBB_OPEN_DONE_FASTIO;
+
+typedef struct _MBB_CLOSE_DONE
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_STATUS MbbStatus;
+ } MBB_CLOSE_DONE;
+
+typedef struct _MBB_CLOSE_DONE *PMBB_CLOSE_DONE;
+
+typedef struct _MBB_ERROR_MESSAGE
+ {
+ MBB_MESSAGE_HEADER MessageHeader;
+ MBB_ERROR ErrorCode;
+ } MBB_ERROR_MESSAGE;
+
+typedef struct _MBB_ERROR_MESSAGE *PMBB_ERROR_MESSAGE;
+
+typedef
+enum _MBB_BASIC_CID
+ {
+ MBB_BASIC_CID_DEVICE_CAPS = 1,
+ MBB_BASIC_CID_SUBSCRIBER_READY_INFO = 2,
+ MBB_BASIC_CID_RADIO_STATE = 3,
+ MBB_BASIC_CID_PIN_INFO = 4,
+ MBB_BASIC_CID_PIN_LIST = 5,
+ MBB_BASIC_CID_HOME_PROVIDER = 6,
+ MBB_BASIC_CID_PREFERRED_PROVIDERS = 7,
+ MBB_BASIC_CID_VISIBLE_PROVIDERS = 8,
+ MBB_BASIC_CID_REGISTER_STATE = 9,
+ MBB_BASIC_CID_PACKET_SERVICE = 10,
+ MBB_BASIC_CID_SIGNAL_STATE = 11,
+ MBB_BASIC_CID_CONNECT = 12,
+ MBB_BASIC_CID_PROVISIONED_CONTEXTS = 13,
+ MBB_BASIC_CID_SERVICE_ACTIVATION = 14,
+ MBB_BASIC_CID_IP_ADDRESS_INFO = 15,
+ MBB_BASIC_CID_DEVICE_SERVICES = 16,
+ MBB_BASIC_CID_NOTIFY_DEVICE_SERVICE_UPDATES = 19,
+ MBB_BASIC_CID_PACKET_STATISTICS = 20,
+ MBB_BASIC_CID_NETWORK_IDLE_HINT = 21,
+ MBB_BASIC_CID_EMERGENCY_MODE = 22,
+ MBB_BASIC_CID_PACKET_FILTERS = 23,
+ MBB_BASIC_CID_MULTICARRIER_PROVIDERS = 24,
+ MBB_BASIC_CID_MAXIMUM = ( MBB_BASIC_CID_MULTICARRIER_PROVIDERS + 1 )
+ } MBB_BASIC_CID;
+
+typedef
+enum _MBB_SMS_CID
+ {
+ MBB_SMS_CID_CONFIGURATION = 1,
+ MBB_SMS_CID_READ = 2,
+ MBB_SMS_CID_SEND = 3,
+ MBB_SMS_CID_DELETE = 4,
+ MBB_SMS_CID_STATUS = 5,
+ MBB_SMS_CID_MAXIMUM = ( MBB_SMS_CID_STATUS + 1 )
+ } MBB_SMS_CID;
+
+typedef
+enum _MBB_VENDOR_CID
+ {
+ MBB_VENDOR_CID_MS_VENDOR_SPECIFIC = 1,
+ MBB_VENDOR_CID_MAXIMUM = ( MBB_VENDOR_CID_MS_VENDOR_SPECIFIC + 1 )
+ } MBB_VENDOR_CID;
+
+typedef
+enum _MBB_USSD_CID
+ {
+ MBB_USSD_CID_USSD = 1,
+ MBB_USSD_CID_MAXIMUM = ( MBB_USSD_CID_USSD + 1 )
+ } MBB_USSD_CID;
+
+typedef
+enum _MBB_PHONEBOOK_CID
+ {
+ MBB_PHONEBOOK_CID_CONFIGURATION = 1,
+ MBB_PHONEBOOK_CID_READ = 2,
+ MBB_PHONEBOOK_CID_DELETE = 3,
+ MBB_PHONEBOOK_CID_SAVE = 4,
+ MBB_PHONEBOOK_CID_MAXIMUM = ( MBB_PHONEBOOK_CID_SAVE + 1 )
+ } MBB_PHONEBOOK_CID;
+
+typedef
+enum _MBB_SAT_CID
+ {
+ MBB_SAT_CID_PAC = 1,
+ MBB_SAT_CID_TERMINAL_RESPONSE = 2,
+ MBB_SAT_CID_ENVELOPE = 3,
+ MBB_SAT_CID_MAXIMUM = ( MBB_SAT_CID_ENVELOPE + 1 )
+ } MBB_SAT_CID;
+
+typedef
+enum _MBB_AUTH_CID
+ {
+ MBB_AUTH_CID_AKA = 1,
+ MBB_AUTH_CID_AKAP = 2,
+ MBB_AUTH_CID_SIM = 3,
+ MBB_AUTH_CID_MAXIUM = ( MBB_AUTH_CID_SIM + 1 )
+ } MBB_AUTH_CID;
+
+typedef
+enum _MBB_DSS_CID
+ {
+ MBB_DSS_CID_CONNECT = 1,
+ MBB_DSS_CID_MAXIUM = ( MBB_DSS_CID_CONNECT + 1 )
+ } MBB_DSS_CID;
+
+typedef
+enum _MBB_MULTICARRIER_CID
+ {
+ MBB_MULTICARRIER_CID_CAPABILITIES = 1,
+ MBB_MULTICARRIER_CID_LOCATION_INFO = 2,
+ MBB_MULTICARRIER_CID_CURRENT_CID_LIST = 3,
+ MBB_MULTICARRIER_CID_MAXIMUM = ( MBB_MULTICARRIER_CID_CURRENT_CID_LIST + 1 )
+ } MBB_MULTICARRIER_CID;
+
+typedef
+enum _MBB_HOSTSHUTDOWN_CID
+ {
+ MBB_HOSTSHUTDOWN_CID_ONE = 1,
+ MBB_HOSTSHUTDOWN_CID_PRESHUTDOWN = 2,
+ MBB_HOSTSHUTDOWN_CID_MAX = ( MBB_HOSTSHUTDOWN_CID_PRESHUTDOWN + 1 )
+ } MBB_HOSTSHUTDOWN_CID;
+
+typedef
+enum _MBB_VOICEEXTENSIONS_CID
+ {
+ MBB_VOICEEXTENSIONS_CID_SYS_CAPS = 1,
+ MBB_VOICEEXTENSIONS_CID_DEVICE_CAPS_V2 = 2,
+ MBB_VOICEEXTENSIONS_CID_SYS_SLOTMAPPINGS = 3,
+ MBB_VOICEEXTENSIONS_CID_SLOT_INFO_STATUS = 4,
+ MBB_VOICEEXTENSIONS_CID_DEVICE_BINDINGS = 5,
+ MBB_VOICEEXTENSIONS_CID_REGISTER_STATE_V2 = 6,
+ MBB_VOICEEXTENSIONS_CID_IMS_VOICE_STATE = 7,
+ MBB_VOICEEXTENSIONS_CID_SIGNAL_STATE_V2 = 8,
+ MBB_VOICEEXTENSIONS_CID_LOCATION_STATE = 9,
+ MBB_VOICEEXTENSIONS_CID_NITZ = 10,
+ MBB_VOICEEXTENSIONS_CID_MAX = ( MBB_VOICEEXTENSIONS_CID_NITZ + 1 )
+ } MBB_VOICEEXTENSIONS_CID;
+
+typedef
+enum _MBB_UICC_CID
+ {
+ MBB_UICC_CID_ATR = 1,
+ MBB_UICC_CID_OPEN_CHANNEL = 2,
+ MBB_UICC_CID_CLOSE_CHANNEL = 3,
+ MBB_UICC_CID_APDU = 4,
+ MBB_UICC_CID_TERMINAL_CAPABILITY = 5,
+ MBB_UICC_CID_RESET = 6,
+ MBB_UICC_CID_APP_LIST = 7,
+ MBB_UICC_CID_FILE_STATUS = 8,
+ MBB_UICC_CID_ACCESS_BINARY = 9,
+ MBB_UICC_CID_ACCESS_RECORD = 10,
+ MBB_UICC_CID_MAXIMUM = ( MBB_UICC_CID_ACCESS_RECORD + 1 )
+ } MBB_UICC_CID;
+
+typedef
+enum _MBB_SAR_CID
+ {
+ MBB_SAR_CID_CONFIG = 1,
+ MBB_SAR_CID_TRANSMISSION_STATUS = 2,
+ MBB_SAR_CID_MAXIMUM = ( MBB_SAR_CID_TRANSMISSION_STATUS + 1 )
+ } MBB_SAR_CID;
+
+typedef
+enum _MBB_BASICCONNECTEXT_CID
+ {
+ MBB_BASICCONNECTEXT_CID_PROVISIONED_CONTEXT_V2 = 1,
+ MBB_BASICCONNECTEXT_CID_NETWORK_BLACKLIST = 2,
+ MBB_BASICCONNECTEXT_CID_LTE_ATTACH_CONFIG = 3,
+ MBB_BASICCONNECTEXT_CID_LTE_ATTACH_STATUS = 4,
+ MBB_BASICCONNECTEXT_CID_SYS_CAPS = 5,
+ MBB_BASICCONNECTEXT_CID_DEVICE_CAPS_V2 = 6,
+ MBB_BASICCONNECTEXT_CID_DEVICE_SLOT_MAPPINGS = 7,
+ MBB_BASICCONNECTEXT_CID_SLOT_INFO_STATUS = 8,
+ MBB_BASICCONNECTEXT_CID_PCO = 9,
+ MBB_BASICCONNECTEXT_CID_DEVICE_RESET = 10,
+ MBB_BASICCONNECTEXT_CID_BASE_STATIONS_INFO = 11,
+ MBB_BASICCONNECTEXT_CID_LOCATION_INFO_STATUS = 12,
+ MBB_BASICCONNECTEXT_CID_MODEM_LOGGING_CONFIG = 13,
+ MBB_BASICCONNECTEXT_CID_PIN_INFO_EX2 = 14,
+ MBB_BASICCONNECTEXT_CID_VERSION = 15,
+ MBB_BASICCONNECTEXT_CID_MODEM_CONFIG = 16,
+ MBB_BASICCONNECTEXT_CID_REGISTRATION_PARAMS = 17,
+ MBB_BASICCONNECTEXT_CID_NETWORK_PARAMS = 18,
+ MBB_BASICCONNECTEXT_CID_WAKE_REASON = 19,
+ MBB_BASICCONNECTEXT_CID_MAXIMUM = ( MBB_BASICCONNECTEXT_CID_WAKE_REASON + 1 )
+ } MBB_BASICCONNECTEXT_CID;
+
+typedef
+enum _MBB_DEVICE_TYPE
+ {
+ MbbDeviceTypeUnknown = 0,
+ MbbDeviceTypeEmbedded = 1,
+ MbbDeviceTypeRemovable = 2,
+ MbbDeviceTypeRemote = 3,
+ MbbDeviceTypeMaximum = ( MbbDeviceTypeRemote + 1 )
+ } MBB_DEVICE_TYPE;
+
+typedef
+enum _MBB_CELLULAR_CLASS
+ {
+ MbbCellularClassInvalid = 0,
+ MbbCellularClassGsm = 1,
+ MbbCellularClassCdma = 2,
+ MbbCellularClassMaximum = ( MbbCellularClassCdma + 1 )
+ } MBB_CELLULAR_CLASS;
+
+typedef
+enum _MBB_VOICE_CLASS
+ {
+ MbbVoiceClassInvalid = 0,
+ MbbVoiceClassNoVoice = 1,
+ MbbVoiceClassSeparateVoiceData = 2,
+ MbbVoiceClassSimultaneousVoiceData = 3,
+ MbbVoiceClassMaximum = ( MbbVoiceClassSimultaneousVoiceData + 1 )
+ } MBB_VOICE_CLASS;
+
+typedef
+enum _MBB_SIM_CLASS
+ {
+ MbbSimClassInvalid = 0,
+ MbbSimClassSimLogical = 1,
+ MbbSimClassSimRemovable = 2,
+ MbbSimClassMaximum = ( MbbSimClassSimRemovable + 1 )
+ } MBB_SIM_CLASS;
+
+typedef
+enum _MBB_DATA_CLASS_VALUE
+ {
+ MbbDataClassNone = 0,
+ MbbDataClassGprs = 0x1,
+ MbbDataClassEdge = 0x2,
+ MbbDataClassUmts = 0x4,
+ MbbDataClassHsdpa = 0x8,
+ MbbDataClassHsupa = 0x10,
+ MbbDataClassLte = 0x20,
+ MbbDataClass5G = 0x40,
+ MbbDataClass_UNUSED = 0x80,
+ MbbDataClassTdScdma = 0x1000,
+ MbbDataClass1xRtt = 0x10000,
+ MbbDataClass1xEvdo = 0x20000,
+ MbbDataClass1xEvdoReva = 0x40000,
+ MbbDataClass1xEvdv = 0x80000,
+ MbbDataClass3xRtt = 0x100000,
+ MbbDataClass1xEvdoRevb = 0x200000,
+ MbbDataClassUmb = 0x400000,
+ MbbDataClassCustom = 0x80000000
+ } MBB_DATA_CLASS_VALUE;
+
+typedef
+enum _MBB_DATA_SUBCLASS_VALUE
+ {
+ MbbDataSubClassNone = 0,
+ MbbDataSubClass5GENDC = 0x1,
+ MbbDataSubClass5GNR = 0x2,
+ MbbDataSubClass5GNEDC = 0x4,
+ MbbDataSubClass5GELTE = 0x8,
+ MbbDataSubClassNGENDC = 0x10
+ } MBB_DATA_SUBCLASS_VALUE;
+
+typedef
+enum _MBB_FREQUENCY_RANGE
+ {
+ MbbFrequencyRangeUnknown = 0,
+ MbbFrequencyRange1 = 1,
+ MbbFrequencyRange2 = 2,
+ MbbFrequencyRange1AndRange2 = 3,
+ MbbFrequencyRangeMaximum = ( MbbFrequencyRange1AndRange2 + 1 )
+ } MBB_FREQUENCY_RANGE;
+
+typedef
+enum _MBB_BAND_CLASS_VALUE
+ {
+ MbbBandClassUnknown = 0,
+ MbbBandClass0 = 0x1,
+ MbbBandClassI = 0x2,
+ MbbBandClassII = 0x4,
+ MbbBandClassIII = 0x8,
+ MbbBandClassIV = 0x10,
+ MbbBandClassV = 0x20,
+ MbbBandClassVI = 0x40,
+ MbbBandClassVII = 0x80,
+ MbbBandClassVIII = 0x100,
+ MbbBandClassIX = 0x200,
+ MbbBandClassX = 0x400,
+ MbbBandClassXI = 0x800,
+ MbbBandClassXII = 0x1000,
+ MbbBandClassXIII = 0x2000,
+ MbbBandClassXIV = 0x4000,
+ MbbBandClassXV = 0x8000,
+ MbbBandClassXVI = 0x10000,
+ MbbBandClassXVII = 0x20000,
+ MbbBandClassCustom = 0x80000000
+ } MBB_BAND_CLASS_VALUE;
+
+typedef
+enum _MBB_SMS_CAPS_VALUE
+ {
+ MbbSmsCapsNone = 0,
+ MbbSmsCapsPduReceive = 0x1,
+ MbbSmsCapsPduSend = 0x2,
+ MbbSmsCapsTextReceive = 0x4,
+ MbbSmsCapsTextSend = 0x8
+ } MBB_SMS_CAPS_VALUE;
+
+typedef
+enum _MBB_CONTROL_CAPS_VALUE
+ {
+ MbbControlCapsNone = 0,
+ MbbControlCapsRegManual = 0x1,
+ MbbControlCapsHwRadioSwitch = 0x2,
+ MbbControlCapsCdmaMobileIp = 0x4,
+ MbbControlCapsCdmaSimpleIp = 0x8,
+ MbbControlCapsMultiCarrier = 0x10,
+ MbbControlCapsESIM = 0x20,
+ MbbControlCapsUEPolicyRouteSelection = 0x40,
+ MbbControlCapsSIMHotSwapCapable = 0x80
+ } MBB_CONTROL_CAPS_VALUE;
+
+typedef
+enum _MBB_READY_STATE
+ {
+ MbbReadyStateOff = 0,
+ MbbReadyStateInitialized = 1,
+ MbbReadyStateSimNotInserted = 2,
+ MbbReadyStateBadSim = 3,
+ MbbReadyStateFailure = 4,
+ MbbReadyStateNotActivated = 5,
+ MbbReadyStateDeviceLocked = 6,
+ MbbReadyStateNoEsimProfile = 7,
+ MbbReadyStateMaximum = ( MbbReadyStateNoEsimProfile + 1 )
+ } MBB_READY_STATE;
+
+typedef
+enum _MBB_READY_INFO_FLAGS
+ {
+ MbbReadyInfoFlagsNone = 0,
+ MbbReadyInfoFlagsUniqueId = 1
+ } MBB_READY_INFO_FLAGS;
+
+typedef
+enum _MBB_EMERGENCY_MODE
+ {
+ MbbEmergencyModeOff = 0,
+ MbbEmergencyModeOn = 1,
+ MbbEmergencyModeMaximum = ( MbbEmergencyModeOn + 1 )
+ } MBB_EMERGENCY_MODE;
+
+typedef
+enum _MBB_RADIO_STATE
+ {
+ MbbRadioStateOff = 0,
+ MbbRadioStateOn = 1,
+ MbbRadioStateMaximum = ( MbbRadioStateOn + 1 )
+ } MBB_RADIO_STATE;
+
+typedef
+enum _MBB_PIN_TYPE
+ {
+ MbbPinTypeNone = 0,
+ MbbPinTypeCustom = 1,
+ MbbPinTypePin1 = 2,
+ MbbPinTypePin2 = 3,
+ MbbPinTypeDeviceSimPin = 4,
+ MbbPinTypeDeviceFirstSimPin = 5,
+ MbbPinTypeNetworkPin = 6,
+ MbbPinTypeNetworkSubsetPin = 7,
+ MbbPinTypeSvcProviderPin = 8,
+ MbbPinTypeCorporatePin = 9,
+ MbbPinTypeSubsidyLock = 10,
+ MbbPinTypePuk1 = 11,
+ MbbPinTypePuk2 = 12,
+ MbbPinTypeDeviceFirstSimPuk = 13,
+ MbbPinTypeNetworkPuk = 14,
+ MbbPinTypeNetworkSubsetPuk = 15,
+ MbbPinTypeSvcProviderPuk = 16,
+ MbbPinTypeCorporatePuk = 17,
+ MbbPinTypeNev = 18,
+ MbbPinTypeAdm = 19,
+ MbbPinTypeMaximum = ( MbbPinTypeAdm + 1 )
+ } MBB_PIN_TYPE;
+
+typedef
+enum _MBB_PIN_STATE
+ {
+ MbbPinStateUnlocked = 0,
+ MbbPinStateLocked = 1,
+ MbbPinStateMaximum = ( MbbPinStateLocked + 1 )
+ } MBB_PIN_STATE;
+
+typedef
+enum _MBB_PIN_OPERATION
+ {
+ MbbPinOperationEnter = 0,
+ MbbPinOperationEnable = 1,
+ MbbPinOperationDisable = 2,
+ MbbPinOperationChange = 3,
+ MbbPinOperationMaximum = ( MbbPinOperationChange + 1 )
+ } MBB_PIN_OPERATION;
+
+typedef
+enum _MBB_PIN_MODE
+ {
+ MbbPinModeNotSupported = 0,
+ MbbPinModeEnabled = 1,
+ MbbPinModeDisabled = 2,
+ MbbPinModeMaximum = ( MbbPinModeDisabled + 1 )
+ } MBB_PIN_MODE;
+
+typedef
+enum _MBB_PIN_FORMAT
+ {
+ MbbPinFormatUnknown = 0,
+ MbbPinFormatNumeric = 1,
+ MbbPinFormatAlphaNumeric = 2,
+ MbbPinFormatMaximum = ( MbbPinFormatAlphaNumeric + 1 )
+ } MBB_PIN_FORMAT;
+
+typedef
+enum _MBB_PROVIDER_STATE_VALUE
+ {
+ MbbProviderStateHome = 0x1,
+ MbbProviderStateForbidden = 0x2,
+ MbbProviderStatePreferred = 0x4,
+ MbbProviderStateVisible = 0x8,
+ MbbProviderStateRegistered = 0x10,
+ MbbProviderStatePreferredMulticarrier = 0x20
+ } MBB_PROVIDER_STATE_VALUE;
+
+typedef
+enum _MBB_REGISTER_ACTION
+ {
+ MbbRegisterActionAutomatic = 0,
+ MbbRegisterActionManual = 1,
+ MbbRegisterActionMaximum = ( MbbRegisterActionManual + 1 )
+ } MBB_REGISTER_ACTION;
+
+typedef
+enum _MBB_REGISTER_STATE
+ {
+ MbbRegisterStateUnknown = 0,
+ MbbRegisterStateDeregistered = 1,
+ MbbRegisterStateSearching = 2,
+ MbbRegisterStateHome = 3,
+ MbbRegisterStateRoaming = 4,
+ MbbRegisterStatePartner = 5,
+ MbbRegisterStateDenied = 6,
+ MbbRegisterStateMaximum = ( MbbRegisterStateDenied + 1 )
+ } MBB_REGISTER_STATE;
+
+typedef
+enum _MBB_REGISTER_MODE
+ {
+ MbbRegisterModeUnknown = 0,
+ MbbRegisterModeAutomatic = 1,
+ MbbRegisterModeManual = 2,
+ MbbRegisterModeMaximum = ( MbbRegisterModeManual + 1 )
+ } MBB_REGISTER_MODE;
+
+typedef
+enum _MBB_PACKET_SERVICE_ACTION
+ {
+ MbbPacketServiceActionAttach = 0,
+ MbbPacketServiceActionDetach = 1,
+ MbbPacketServiceActionMaximum = ( MbbPacketServiceActionDetach + 1 )
+ } MBB_PACKET_SERVICE_ACTION;
+
+typedef
+enum _MBB_PACKET_SERVICE_STATE
+ {
+ MbbPacketServiceStateUnknown = 0,
+ MbbPacketServiceStateAttaching = 1,
+ MbbPacketServiceStateAttached = 2,
+ MbbPacketServiceStateDetaching = 3,
+ MbbPacketServiceStateDetached = 4,
+ MbbPacketServiceStateMaximum = ( MbbPacketServiceStateDetached + 1 )
+ } MBB_PACKET_SERVICE_STATE;
+
+typedef
+enum _MBB_CONTEXT_IP_TYPE
+ {
+ MbbContextIPTypeDefault = 0,
+ MbbContextIPTypeIPv4 = 1,
+ MbbContextIPTypeIPv6 = 2,
+ MbbContextIPTypeIPv4v6 = 3,
+ MbbContextIPTypeIPv4AndIPv6 = 4,
+ MbbContextIPTypeMaximum = ( MbbContextIPTypeIPv4AndIPv6 + 1 )
+ } MBB_CONTEXT_IP_TYPE;
+
+typedef
+enum _MBB_ACTIVATION_COMMAND
+ {
+ MbbActivationCommandDeactivate = 0,
+ MbbActivationCommandActivate = 1,
+ MbbActivationCommandCancel = 2,
+ MbbActivationCommandMaximum = ( MbbActivationCommandCancel + 1 )
+ } MBB_ACTIVATION_COMMAND;
+
+typedef
+enum _MBB_COMPRESSION
+ {
+ MbbCompressionNone = 0,
+ MbbCompressionEnable = 1,
+ MbbCompressionMaximum = ( MbbCompressionEnable + 1 )
+ } MBB_COMPRESSION;
+
+typedef
+enum _MBB_AUTH_PROTOCOL
+ {
+ MbbAuthProtocolNone = 0,
+ MbbAuthProtocolPap = 1,
+ MbbAuthProtocolChap = 2,
+ MbbAuthProtocolMsChapV2 = 3,
+ MbbAuthProtocolMaximum = ( MbbAuthProtocolMsChapV2 + 1 )
+ } MBB_AUTH_PROTOCOL;
+
+typedef
+enum _MBB_ACTIVATION_STATE
+ {
+ MbbActivationStateUnknown = 0,
+ MbbActivationStateActivated = 1,
+ MbbActivationStateActivating = 2,
+ MbbActivationStateDeactivated = 3,
+ MbbActivationStateDeactivating = 4,
+ MbbActivationStateMaximum = ( MbbActivationStateDeactivating + 1 )
+ } MBB_ACTIVATION_STATE;
+
+typedef
+enum _MBB_VOICE_CALL_STATE
+ {
+ MbbVoiceCallStateNone = 0,
+ MbbVoiceCallStateInProgress = 1,
+ MbbVoiceCallStateHangUp = 2,
+ MbbVoiceCallStateMaximum = ( MbbVoiceCallStateHangUp + 1 )
+ } MBB_VOICE_CALL_STATE;
+
+typedef
+enum _MBB_SMS_FORMAT
+ {
+ MbbSmsFormatPdu = 0,
+ MbbSmsFormatCdma = 1,
+ MbbSmsFormatMaximum = ( MbbSmsFormatCdma + 1 )
+ } MBB_SMS_FORMAT;
+
+typedef
+enum _MBB_SMS_FLAG
+ {
+ MbbSmsFlagAll = 0,
+ MbbSmsFlagIndex = 1,
+ MbbSmsFlagNew = 2,
+ MbbSmsFlagOld = 3,
+ MbbSmsFlagSent = 4,
+ MbbSmsFlagDraft = 5,
+ MbbSmsFlagMaximum = ( MbbSmsFlagDraft + 1 )
+ } MBB_SMS_FLAG;
+
+typedef
+enum _MBB_SMS_CDMA_LANGUAGE
+ {
+ MbbSmsCdmaLanguageUnknown = 0,
+ MbbSmsCdmaLanguageEnglish = 1,
+ MbbSmsCdmaLanguageFrench = 2,
+ MbbSmsCdmaLanguageSpanish = 3,
+ MbbSmsCdmaLanguageJapanese = 4,
+ MbbSmsCdmaLanguageKorean = 5,
+ MbbSmsCdmaLanguageChinese = 6,
+ MbbSmsCdmaLanguageHebrew = 7,
+ MbbSmsCdmaLanguageMaximum = ( MbbSmsCdmaLanguageHebrew + 1 )
+ } MBB_SMS_CDMA_LANGUAGE;
+
+typedef
+enum _MBB_SMS_CDMA_ENCODING
+ {
+ MbbSmsCdmaEncodingOctet = 0,
+ MbbSmsCdmaEncodingEpm = 1,
+ MbbSmsCdmaEncoding7BitAscii = 2,
+ MbbSmsCdmaEncodingIa5 = 3,
+ MbbSmsCdmaEncodingUnicode = 4,
+ MbbSmsCdmaEncodingShiftJis = 5,
+ MbbSmsCdmaEncodingKorean = 6,
+ MbbSmsCdmaEncodingLatinHebrew = 7,
+ MbbSmsCdmaEncodingLatin = 8,
+ MbbSmsCdmaEncodingGsm7Bit = 9,
+ MbbSmsCdmaEncodingMaximum = ( MbbSmsCdmaEncodingGsm7Bit + 1 )
+ } MBB_SMS_CDMA_ENCODING;
+
+typedef
+enum _MBB_SMS_MESSAGE_STATUS
+ {
+ MbbSmsMessageStatusNew = 0,
+ MbbSmsMessageStatusOld = 1,
+ MbbSmsMessageStatusDraft = 2,
+ MbbSmsMessageStatusSent = 3,
+ MbbSmsMessageStatusMaximum = ( MbbSmsMessageStatusSent + 1 )
+ } MBB_SMS_MESSAGE_STATUS;
+
+typedef
+enum _MBB_REG_FLAGS_VALUE
+ {
+ MbbRegFlagsNone = 0,
+ MbbRegFlagsNoManualReg = 0x1,
+ MbbRegFlagsPSAutoAttach = 0x2
+ } MBB_REG_FLAGS_VALUE;
+
+typedef
+enum _MBB_SMS_STATUS_FLAGS_VALUE
+ {
+ MbbSmsFlagNone = 0,
+ MbbSmsFlagMessageStoreFull = 1,
+ MbbSmsFlagNewMessage = 2
+ } MBB_SMS_STATUS_FLAGS_VALUE;
+
+typedef struct _MBB_STRING
+ {
+ ULONG Offset;
+ ULONG Size;
+ } MBB_STRING;
+
+typedef struct _MBB_STRING *PMBB_STRING;
+
+typedef struct _MBB_ARRAY_ELEMENT
+ {
+ ULONG Offset;
+ ULONG Size;
+ } MBB_ARRAY_ELEMENT;
+
+typedef struct _MBB_ARRAY_ELEMENT *PMBB_ARRAY_ELEMENT;
+
+typedef struct _MBB_ARRAY_ELEMENT2
+ {
+ ULONG Size;
+ ULONG Offset;
+ } MBB_ARRAY_ELEMENT2;
+
+typedef struct _MBB_ARRAY_ELEMENT2 *PMBB_ARRAY_ELEMENT2;
+
+typedef
+enum _MBB_DSS_PAYLOAD_SUPPORT
+ {
+ MbbDssPayloadNone = 0,
+ MbbDssPayloadHostToDevice = 0x1,
+ MbbDssPayloadDeviceToHost = 0x2
+ } MBB_DSS_PAYLOAD_SUPPORT;
+
+typedef
+enum _MBB_DSS_LINK_STATE
+ {
+ MbbDssLinkDeactivate = 0,
+ MbbDssLinkActivate = 0x1
+ } MBB_DSS_LINK_STATE;
+
+typedef
+enum _MBB_IP_CONFIGURATION_FLAGS_VALUE
+ {
+ MbbIpFlagsNone = 0,
+ MbbIpFlagsAddressAvailable = 0x1,
+ MbbIpFlagsGatewayAvailable = 0x2,
+ MbbIpFlagsDnsServerAvailable = 0x4,
+ MbbIpFlagsMTUAvailable = 0x8
+ } MBB_IP_CONFIGURATION_FLAGS_VALUE;
+
+typedef
+enum _MBB_NETWORK_IDLE_HINT_STATE
+ {
+ MbbNetworkIdleHintDisabled = 0,
+ MbbNetworkIdleHintEnabled = 1
+ } MBB_NETWORK_IDLE_HINT_STATE;
+
+typedef
+enum _MBB_SAR_BACKOFF_STATE
+ {
+ MbbSarBackoffStatusDisabled = 0,
+ MbbSarBackoffStatusEnabled = 1,
+ MbbSarBackoffStatusMaximum = ( MbbSarBackoffStatusEnabled + 1 )
+ } MBB_SAR_BACKOFF_STATE;
+
+typedef
+enum _MBB_SAR_CONTROL_MODE
+ {
+ MbbSarControlModeDevice = 0,
+ MbbSarControlModeOS = 1,
+ MbbSarControlModeMaximum = ( MbbSarControlModeOS + 1 )
+ } MBB_SAR_CONTROL_MODE;
+
+typedef
+enum _MBB_SAR_WIFI_HARDWARE_INTEGRATION
+ {
+ MbbSarWifiHardwareNotIntegrated = 0,
+ MbbSarWifiHardwareIntegrated = 1,
+ MbbSarWifiHardwareIntegrationMaximum = ( MbbSarWifiHardwareIntegrated + 1 )
+ } MBB_SAR_WIFI_HARDWARE_INTEGRATION;
+
+typedef
+enum _MBB_SAR_TRANSMISSION_STATUS_NOTIFICATION_STATE
+ {
+ MbbTransmissionNotificationDisabled = 0,
+ MbbTransmissionNotificationEnabled = 1,
+ MbbTransmissionNotificationMaximum = ( MbbTransmissionNotificationEnabled + 1 )
+ } MBB_SAR_TRANSMISSION_STATUS_NOTIFICATION_STATE;
+
+typedef
+enum _MBB_SAR_TRANSMISSION_STATUS
+ {
+ MbbTransmissionStateInactive = 0,
+ MbbTransmissionStateActive = 1,
+ MbbTransmissionStateMaximum = ( MbbTransmissionStateActive + 1 )
+ } MBB_SAR_TRANSMISSION_STATUS;
+
+typedef
+enum _MBB_BASICCONNECTEXT_CONTEXT_ROAMING_CONTROL
+ {
+ MbbMsContextRoamingControlHomeOnly = 0,
+ MbbMsContextRoamingControlPartnerOnly = 1,
+ MbbMsContextRoamingControlNonPartnerOnly = 2,
+ MbbMsContextRoamingControlHomeAndPartner = 3,
+ MbbMsContextRoamingControlHomeAndNonPartner = 4,
+ MbbMsContextRoamingControlPartnerAndNonPartner = 5,
+ MbbMsContextRoamingControlAllowAll = 6,
+ MbbMsContextRoamingControlMaximum = ( MbbMsContextRoamingControlAllowAll + 1 )
+ } MBB_BASICCONNECTEXT_CONTEXT_ROAMING_CONTROL;
+
+typedef
+enum _MBB_BASICCONNECTEXT_CONTEXT_MEDIA_TYPE
+ {
+ MbbMsContextMediaTypeCellularOnly = 0,
+ MbbMsContextMediaTypeWifiOnly = 1,
+ MbbMsContextMediaTypeAll = 2,
+ MbbMsContextMediaTypeMaximum = ( MbbMsContextMediaTypeAll + 1 )
+ } MBB_BASICCONNECTEXT_CONTEXT_MEDIA_TYPE;
+
+typedef
+enum _MBB_BASICCONNECTEXT_CONTEXT_ENABLE
+ {
+ MbbMsContextDisabled = 0,
+ MbbMsContextEnabled = 1,
+ MbbMsContextEnableMaximum = ( MbbMsContextEnabled + 1 )
+ } MBB_BASICCONNECTEXT_CONTEXT_ENABLE;
+
+typedef
+enum _MBB_BASICCONNECTEXT_CONTEXT_SOURCE
+ {
+ MbbMsContextSourceAdmin = 0,
+ MbbMsContextSourceUser = 1,
+ MbbMsContextSourceOperator = 2,
+ MbbMsContextSourceModem = 3,
+ MbbMsContextSourceDevice = 4,
+ MbbMsContextSourceMaximum = ( MbbMsContextSourceDevice + 1 )
+ } MBB_BASICCONNECTEXT_CONTEXT_SOURCE;
+
+typedef
+enum _MBB_BASICCONNECTEXT_CONTEXT_OPERATIONS
+ {
+ MbbMsContextOperationDefault = 0,
+ MbbMsContextOperationDelete = 1,
+ MbbMsContextOperationRestoreFactory = 2,
+ MbbMsContextOperationMaximum = ( MbbMsContextOperationRestoreFactory + 1 )
+ } MBB_BASICCONNECTEXT_CONTEXT_OPERATIONS;
+
+typedef
+enum _MBB_BASICCONNECTEXT_NETWORK_BLACKLIST_STATE
+ {
+ MbbMsNetworkBlacklistStateNotActuated = 0,
+ MbbMsNetworkBlacklistSIMProviderActuated = 1,
+ MbbMsNetworkBlacklistNetworkProviderActuated = 2,
+ MbbMsNetworkBlacklistStateMaximum = ( MbbMsNetworkBlacklistNetworkProviderActuated + 1 )
+ } MBB_BASICCONNECTEXT_NETWORK_BLACKLIST_STATE;
+
+typedef
+enum _MBB_BASICCONNECTEXT_NETWORK_BLACKLIST_TYPE
+ {
+ MbbMsNetworkBlacklistTypeSIM = 0,
+ MbbMsNetworkBlacklistTypeNetwork = 1,
+ MbbMsNetworkBlacklistTypeMaximum = ( MbbMsNetworkBlacklistTypeNetwork + 1 )
+ } MBB_BASICCONNECTEXT_NETWORK_BLACKLIST_TYPE;
+
+typedef
+enum _MBB_BASICCONNECTEXT_LTEATTACH_ROAMING_CONTROL
+ {
+ MbbMsLteAttachContextRoamingControlHome = 0,
+ MbbMsLteAttachContextRoamingControlPartner = 1,
+ MbbMsLteAttachContextRoamingControlNonPartner = 2,
+ MbbMsLteAttachContextRoamingControlMaximum = ( MbbMsLteAttachContextRoamingControlNonPartner + 1 )
+ } MBB_BASICCONNECTEXT_LTEATTACH_ROAMING_CONTROL;
+
+typedef
+enum _MBB_BASICCONNECTEXT_LTEATTACH_CONTEXT_OPERATIONS
+ {
+ MbbMsLteAttachContextOperationDefault = 0,
+ MbbMsLteAttachContextOperationRestoreFactory = 1,
+ MbbMsLteAttachContextOperationMaximum = ( MbbMsLteAttachContextOperationRestoreFactory + 1 )
+ } MBB_BASICCONNECTEXT_LTEATTACH_CONTEXT_OPERATIONS;
+
+typedef
+enum _MBB_BASICCONNECTEXT_LTEATTACH_STATE
+ {
+ MbbMsLteAttachStateDetached = 0,
+ MbbMsLteAttachStateAttached = 1,
+ MbbMsLteAttachStateMaximum = ( MbbMsLteAttachStateAttached + 1 )
+ } MBB_BASICCONNECTEXT_LTEATTACH_STATE;
+
+typedef
+enum _MBB_BASICCONNECTEXT_UICCSLOT_STATE
+ {
+ MbbMsUiccSlotStateUnknown = 0,
+ MbbMsUiccSlotStateOffEmpty = 1,
+ MbbMsUiccSlotStateOff = 2,
+ MbbMsUiccSlotStateEmpty = 3,
+ MbbMsUiccSlotStateNotReady = 4,
+ MbbMsUiccSlotStateActive = 5,
+ MbbMsUiccSlotStateError = 6,
+ MbbMsUiccSlotStateActiveEsim = 7,
+ MbbMsUiccSlotStateActiveEsimNoProfiles = 8
+ } MBB_BASICCONNECTEXT_UICCSLOT_STATE;
+
+typedef
+enum _MBB_BASICCONNECTEXT_MODEM_LOGGING_LEVEL_CONFIG
+ {
+ MbbMsModemLoggingLevelProd = 0,
+ MbbMsModemLoggingLevelLabVerbose = 1,
+ MbbMsModemLoggingLevelLabMedium = 2,
+ MbbMsModemLoggingLevelLabLow = 3,
+ MbbMsModemLoggingLevelOem = 4,
+ MbbMsModemLoggingLevelMaximum = ( MbbMsModemLoggingLevelOem + 1 )
+ } MBB_BASICCONNECTEXT_MODEM_LOGGING_LEVEL_CONFIG;
+
+typedef
+enum _MBB_PCO_TYPE
+ {
+ MbbPcoTypeComplete = 0,
+ MbbPcoTypePartial = 1,
+ MbbPcoTypeMaximum = ( MbbPcoTypePartial + 1 )
+ } MBB_PCO_TYPE;
+
+typedef struct _MBB_DEVICE_CAPS
+ {
+ MBB_DEVICE_TYPE DeviceType;
+ MBB_CELLULAR_CLASS CellularClass;
+ MBB_VOICE_CLASS VoiceClass;
+ MBB_SIM_CLASS SimClass;
+ ULONG DataClass;
+ ULONG SmsCaps;
+ ULONG ControlCaps;
+ ULONG dwMaxSessions;
+ MBB_STRING CustomDataClass;
+ MBB_STRING DeviceIdString;
+ MBB_STRING FirmwareInfo;
+ MBB_STRING HardwareInfo;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_DEVICE_CAPS;
+
+typedef struct _MBB_DEVICE_CAPS *PMBB_DEVICE_CAPS;
+
+typedef struct _MBB_SUBSCRIBER_READY_INFO
+ {
+ MBB_READY_STATE ReadyState;
+ MBB_STRING SubscriberId;
+ MBB_STRING SimIccId;
+ MBB_READY_INFO_FLAGS ReadyInfoFlags;
+ ULONG TelephoneNumberCount;
+ MBB_STRING TelephoneNumbers[ 1 ];
+ } MBB_SUBSCRIBER_READY_INFO;
+
+typedef struct _MBB_SUBSCRIBER_READY_INFO *PMBB_SUBSCRIBER_READY_INFO;
+
+typedef
+enum _MBB_SUBSCRIBER_READY_STATUS_FLAGS
+ {
+ MbbSubscriberReadyStatusFlagNone = 0,
+ MbbSubscriberReadyStatusFlagESim = 0x1,
+ MbbSubscriberReadyStatusFlagSIMRemovabilityKnown = 0x2,
+ MbbSubscriberReadyStatusFlagSIMRemovable = 0x4
+ } MBB_SUBSCRIBER_READY_STATUS_FLAGS;
+
+typedef struct _MBB_SUBSCRIBER_READY_INFO_EX3
+ {
+ MBB_READY_STATE ReadyState;
+ MBB_SUBSCRIBER_READY_STATUS_FLAGS StatusFlags;
+ MBB_STRING SubscriberId;
+ MBB_STRING SimIccId;
+ MBB_READY_INFO_FLAGS ReadyInfoFlags;
+ ULONG TelephoneNumberCount;
+ MBB_STRING TelephoneNumbers[ 1 ];
+ } MBB_SUBSCRIBER_READY_INFO_EX3;
+
+typedef struct _MBB_SUBSCRIBER_READY_INFO_EX3 *PMBB_SUBSCRIBER_READY_INFO_EX3;
+
+typedef struct _MBB_QUERY_RADIO_STATE
+ {
+ MBB_RADIO_STATE HwRadioState;
+ MBB_RADIO_STATE SwRadioState;
+ } MBB_QUERY_RADIO_STATE;
+
+typedef struct _MBB_QUERY_RADIO_STATE *PMBB_QUERY_RADIO_STATE;
+
+typedef struct _MBB_PIN_INFO
+ {
+ MBB_PIN_TYPE PinType;
+ MBB_PIN_STATE PinState;
+ ULONG AttemptsRemaining;
+ } MBB_PIN_INFO;
+
+typedef struct _MBB_PIN_INFO *PMBB_PIN_INFO;
+
+typedef struct _MBB_PIN_ACTION
+ {
+ MBB_PIN_TYPE PinType;
+ MBB_PIN_OPERATION PinOperation;
+ MBB_STRING Pin;
+ MBB_STRING NewPin;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_PIN_ACTION;
+
+typedef struct _MBB_PIN_ACTION *PMBB_PIN_ACTION;
+
+typedef struct _MBB_PIN_DESCRIPTION
+ {
+ MBB_PIN_MODE PinMode;
+ MBB_PIN_FORMAT PinFormat;
+ ULONG PinLengthMin;
+ ULONG PinLengthMax;
+ } MBB_PIN_DESCRIPTION;
+
+typedef struct _MBB_PIN_DESCRIPTION *PMBB_PIN_DESCRIPTION;
+
+typedef struct _MBB_PIN_LIST
+ {
+ MBB_PIN_DESCRIPTION PinDescPin1;
+ MBB_PIN_DESCRIPTION PinDescPin2;
+ MBB_PIN_DESCRIPTION PinDescDeviceSimPin;
+ MBB_PIN_DESCRIPTION PinDescDeviceFirstSimPin;
+ MBB_PIN_DESCRIPTION PinDescNetworkPin;
+ MBB_PIN_DESCRIPTION PinDescNetworkSubsetPin;
+ MBB_PIN_DESCRIPTION PinDescSvcProviderPin;
+ MBB_PIN_DESCRIPTION PinDescCorporatePin;
+ MBB_PIN_DESCRIPTION PinDescSubsidyLock;
+ MBB_PIN_DESCRIPTION PinDescCustom;
+ } MBB_PIN_LIST;
+
+typedef struct _MBB_PIN_LIST *PMBB_PIN_LIST;
+
+typedef struct _MBB_PROVIDER
+ {
+ MBB_STRING ProviderId;
+ ULONG ProviderState;
+ MBB_STRING ProviderName;
+ MBB_CELLULAR_CLASS CellularClass;
+ ULONG Rssi;
+ ULONG ErrorRate;
+ } MBB_PROVIDER;
+
+typedef struct _MBB_PROVIDER *PMBB_PROVIDER;
+
+typedef struct _MBB_PROVIDER_LIST
+ {
+ ULONG ProviderCount;
+ MBB_ARRAY_ELEMENT Providers[ 1 ];
+ } MBB_PROVIDER_LIST;
+
+typedef struct _MBB_PROVIDER_LIST *PMBB_PROVIDER_LIST;
+
+typedef struct _MBB_REGISTRATION_STATE
+ {
+ ULONG NetworkError;
+ MBB_REGISTER_STATE RegisterState;
+ MBB_REGISTER_MODE RegisterMode;
+ ULONG AvailableDataClasses;
+ MBB_CELLULAR_CLASS CurrentCellularClass;
+ MBB_STRING ProviderId;
+ MBB_STRING ProviderName;
+ MBB_STRING RoamingText;
+ ULONG RegFlags;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_REGISTRATION_STATE;
+
+typedef struct _MBB_REGISTRATION_STATE *PMBB_REGISTRATION_STATE;
+
+typedef struct _MBB_SET_REGISTER_STATE
+ {
+ MBB_STRING ProviderId;
+ MBB_REGISTER_ACTION RegisterAction;
+ ULONG DataClass;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SET_REGISTER_STATE;
+
+typedef struct _MBB_SET_REGISTER_STATE *PMBB_SET_REGISTER_STATE;
+
+typedef struct _MBB_SET_PACKET_SERVICE
+ {
+ MBB_PACKET_SERVICE_ACTION PacketServiceAction;
+ } MBB_SET_PACKET_SERVICE;
+
+typedef struct _MBB_SET_PACKET_SERVICE *PMBB_SET_PACKET_SERVICE;
+
+typedef struct _MBB_PACKET_SERVICE
+ {
+ ULONG NetworkError;
+ MBB_PACKET_SERVICE_STATE PacketServiceState;
+ ULONG HighestAvailableDataClass;
+ ULONGLONG UplinkSpeed;
+ ULONGLONG DownlinkSpeed;
+ } MBB_PACKET_SERVICE;
+
+typedef struct _MBB_PACKET_SERVICE *PMBB_PACKET_SERVICE;
+
+typedef struct _MBB_PACKET_SERVICE_INFO_V2
+ {
+ ULONG NetworkError;
+ MBB_PACKET_SERVICE_STATE PacketServiceState;
+ MBB_DATA_CLASS_VALUE CurrentDataClass;
+ ULONGLONG UplinkSpeed;
+ ULONGLONG DownlinkSpeed;
+ MBB_FREQUENCY_RANGE FrequencyRange;
+ } MBB_PACKET_SERVICE_INFO_V2;
+
+typedef struct _MBB_PACKET_SERVICE_INFO_V2 *PMBB_PACKET_SERVICE_INFO_V2;
+
+typedef struct _MBB_PLMN
+ {
+ USHORT Mcc;
+ USHORT Mnc;
+ } MBB_PLMN;
+
+typedef struct _MBB_PLMN *PMBB_PLMN;
+
+typedef struct _MBB_TAI
+ {
+ MBB_PLMN Plmn;
+ ULONG Tac;
+ } MBB_TAI;
+
+typedef struct _MBB_TAI *PMBB_TAI;
+
+typedef struct _MBB_PACKET_SERVICE_INFO_V3
+ {
+ ULONG NetworkError;
+ MBB_PACKET_SERVICE_STATE PacketServiceState;
+ MBB_DATA_CLASS_VALUE CurrentDataClass;
+ ULONGLONG UplinkSpeed;
+ ULONGLONG DownlinkSpeed;
+ MBB_FREQUENCY_RANGE FrequencyRange;
+ MBB_DATA_SUBCLASS_VALUE CurrentDataSubClass;
+ MBB_TAI TrackingAreaId;
+ } MBB_PACKET_SERVICE_INFO_V3;
+
+typedef struct _MBB_PACKET_SERVICE_INFO_V3 *PMBB_PACKET_SERVICE_INFO_V3;
+
+typedef struct _MBB_SET_SIGNAL_INDICATION
+ {
+ ULONG RssiInterval;
+ ULONG RssiThreshold;
+ ULONG ErrorRateThreshold;
+ } MBB_SET_SIGNAL_INDICATION;
+
+typedef struct _MBB_SET_SIGNAL_INDICATION *PMBB_SET_SIGNAL_INDICATION;
+
+typedef struct _MBB_SIGNAL_STATE
+ {
+ ULONG Rssi;
+ ULONG ErrorRate;
+ ULONG RssiInterval;
+ ULONG RssiThreshold;
+ ULONG ErrorRateThreshold;
+ } MBB_SIGNAL_STATE;
+
+typedef struct _MBB_SIGNAL_STATE *PMBB_SIGNAL_STATE;
+
+typedef struct _MBB_SET_CONTEXT_STATE
+ {
+ ULONG SessionId;
+ MBB_ACTIVATION_COMMAND ActivationCommand;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ MBB_CONTEXT_IP_TYPE IPType;
+ GUID ContextType;
+ CHAR DataBuffer[ 1 ];
+ } MBB_SET_CONTEXT_STATE;
+
+typedef struct _MBB_SET_CONTEXT_STATE *PMBB_SET_CONTEXT_STATE;
+
+typedef
+enum _MBB_ACCESS_MEDIA_PREF
+ {
+ MbbAccessMediaPrefNone = 0,
+ MbbAccessMediaPref3GPP = 1,
+ MbbAccessMediaPref3GPPPreferred = 2,
+ MbbAccessMediaPrefMaximum = ( MbbAccessMediaPref3GPPPreferred + 1 )
+ } MBB_ACCESS_MEDIA_PREF;
+
+typedef struct _MBB_SET_CONTEXT_STATE_EX3
+ {
+ ULONG SessionId;
+ MBB_ACTIVATION_COMMAND ActivationCommand;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ MBB_CONTEXT_IP_TYPE IPType;
+ GUID ContextType;
+ MBB_ACCESS_MEDIA_PREF MediaPreference;
+ } MBB_SET_CONTEXT_STATE_EX3;
+
+typedef struct _MBB_SET_CONTEXT_STATE_EX3 *PMBB_SET_CONTEXT_STATE_EX3;
+
+typedef struct _MBB_QUERY_CONTEXT_EX3
+ {
+ ULONG SessionId;
+ } MBB_QUERY_CONTEXT_EX3;
+
+typedef struct _MBB_QUERY_CONTEXT_EX3 *PMBB_QUERY_CONTEXT_EX3;
+
+typedef struct _MBB_CONTEXT_STATE
+ {
+ ULONG SessionId;
+ MBB_ACTIVATION_STATE ActivationState;
+ MBB_VOICE_CALL_STATE VoiceCallState;
+ MBB_CONTEXT_IP_TYPE IPType;
+ GUID ContextType;
+ ULONG NetworkError;
+ } MBB_CONTEXT_STATE;
+
+typedef struct _MBB_CONTEXT_STATE *PMBB_CONTEXT_STATE;
+
+typedef struct _MBB_CONTEXT_STATE_EX3
+ {
+ ULONG SessionId;
+ MBB_ACTIVATION_STATE ActivationState;
+ MBB_VOICE_CALL_STATE VoiceCallState;
+ MBB_CONTEXT_IP_TYPE IPType;
+ GUID ContextType;
+ ULONG NetworkError;
+ MBB_ACCESS_MEDIA_PREF MediaPreference;
+ } MBB_CONTEXT_STATE_EX3;
+
+typedef struct _MBB_CONTEXT_STATE_EX3 *PMBB_CONTEXT_STATE_EX3;
+
+typedef struct _MBB_SET_CONTEXT
+ {
+ ULONG ContextId;
+ GUID ContextType;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ MBB_STRING ProviderId;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SET_CONTEXT;
+
+typedef struct _MBB_SET_CONTEXT *PMBB_SET_CONTEXT;
+
+typedef struct _MBB_CONTEXT
+ {
+ ULONG ContextId;
+ GUID ContextType;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_CONTEXT;
+
+typedef struct _MBB_CONTEXT *PMBB_CONTEXT;
+
+typedef struct _MBB_CONTEXT_LIST
+ {
+ ULONG ContextCount;
+ MBB_ARRAY_ELEMENT Contexts[ 1 ];
+ } MBB_CONTEXT_LIST;
+
+typedef struct _MBB_CONTEXT_LIST *PMBB_CONTEXT_LIST;
+
+typedef struct _MBB_SERVICE_ACTIVATION
+ {
+ CHAR VendorSpecificBuffer[ 1 ];
+ } MBB_SERVICE_ACTIVATION;
+
+typedef struct _MBB_SERVICE_ACTIVATION *PMBB_SERVICE_ACTIVATION;
+
+typedef struct _MBB_SERVICE_ACTIVATION_STATUS
+ {
+ ULONG NetworkError;
+ CHAR VendorSpecificBuffer[ 1 ];
+ } MBB_SERVICE_ACTIVATION_STATUS;
+
+typedef struct _MBB_SERVICE_ACTIVATION_STATUS *PMBB_SERVICE_ACTIVATION_STATUS;
+
+typedef struct _MBB_IPV4_ADDRESS
+ {
+ ULONG OnLinkPrefixLength;
+ UCHAR IPV4Address[ 4 ];
+ } MBB_IPV4_ADDRESS;
+
+typedef struct _MBB_IPV4_ADDRESS *PMBB_IPV4_ADDRESS;
+
+typedef struct _MBB_IPV6_ADDRESS
+ {
+ ULONG OnLinkPrefixLength;
+ UCHAR IPV6Address[ 16 ];
+ } MBB_IPV6_ADDRESS;
+
+typedef struct _MBB_IPV6_ADDRESS *PMBB_IPV6_ADDRESS;
+
+typedef struct _MBB_IP_ADDRESS_INFO
+ {
+ ULONG SessionId;
+ ULONG IPv4Flags;
+ ULONG IPv6Flags;
+ ULONG IPv4AddressCount;
+ ULONG IPv4AddressOffset;
+ ULONG IPv6AddressCount;
+ ULONG IPv6AddressOffset;
+ ULONG IPv4GatewayOffset;
+ ULONG IPv6GatewayOffset;
+ ULONG IPv4DnsServerCount;
+ ULONG IPv4DnsServerOffset;
+ ULONG IPv6DnsServerCount;
+ ULONG IPv6DnsServerOffset;
+ ULONG IPv4MTU;
+ ULONG IPv6MTU;
+ } MBB_IP_ADDRESS_INFO;
+
+typedef struct _MBB_IP_ADDRESS_INFO *PMBB_IP_ADDRESS_INFO;
+
+typedef struct _MBB_PACKET_STATISTICS
+ {
+ ULONG InDiscards;
+ ULONG InErrors;
+ ULONGLONG InOctets;
+ ULONGLONG InPackets;
+ ULONGLONG OutOctets;
+ ULONGLONG OutPackets;
+ ULONG OutErrors;
+ ULONG OutDiscards;
+ } MBB_PACKET_STATISTICS;
+
+typedef struct _MBB_PACKET_STATISTICS *PMBB_PACKET_STATISTICS;
+
+typedef
+enum _MBB_VISIBLE_PROVIDERS_ACTION_VALUE
+ {
+ MbbVisibleProvidersActionFull = 0,
+ MbbVisibleProvidersActionMulticarrier = 0x1,
+ MbbVisibleProvidersActionMax = ( MbbVisibleProvidersActionMulticarrier + 1 )
+ } MBB_VISIBLE_PROVIDERS_ACTION_VALUE;
+
+typedef struct _MBB_GET_VISIBLE_PROVIDERS
+ {
+ ULONG Action;
+ } MBB_GET_VISIBLE_PROVIDERS;
+
+typedef struct _MBB_GET_VISIBLE_PROVIDERS *PMBB_GET_VISIBLE_PROVIDERS;
+
+typedef
+enum _MBB_SMS_STORAGE_STATE
+ {
+ MbbSmsStorageNotInitialized = 0,
+ MbbSmsStorageInitialized = 1
+ } MBB_SMS_STORAGE_STATE;
+
+typedef struct _MBB_SET_SMS_CONFIGURATION
+ {
+ MBB_SMS_FORMAT SmsFormat;
+ MBB_STRING ScAddress;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SET_SMS_CONFIGURATION;
+
+typedef struct _MBB_SET_SMS_CONFIGURATION *PMBB_SET_SMS_CONFIGURATION;
+
+typedef struct _MBB_SMS_CONFIGURATION
+ {
+ MBB_SMS_STORAGE_STATE SmsStorageState;
+ MBB_SMS_FORMAT SmsFormat;
+ ULONG MaxMessages;
+ ULONG CdmaShortMessageSize;
+ MBB_STRING ScAddress;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SMS_CONFIGURATION;
+
+typedef struct _MBB_SMS_CONFIGURATION *PMBB_SMS_CONFIGURATION;
+
+typedef struct _MBB_SMS_READ
+ {
+ MBB_SMS_FORMAT SmsFormat;
+ MBB_SMS_FLAG SmsFlag;
+ ULONG MessageIndex;
+ } MBB_SMS_READ;
+
+typedef struct _MBB_SMS_READ *PMBB_SMS_READ;
+
+typedef struct _MBB_SMS_CDMA_RECORD
+ {
+ ULONG MessageIndex;
+ MBB_SMS_MESSAGE_STATUS MessageStatus;
+ MBB_STRING Address;
+ MBB_STRING TimeStamp;
+ MBB_SMS_CDMA_ENCODING EncodingId;
+ MBB_SMS_CDMA_LANGUAGE LanguageId;
+ MBB_ARRAY_ELEMENT EncodedMessage;
+ ULONG SizeInCharacters;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SMS_CDMA_RECORD;
+
+typedef struct _MBB_SMS_CDMA_RECORD *PMBB_SMS_CDMA_RECORD;
+
+typedef struct _MBB_SMS_PDU_RECORD
+ {
+ ULONG MessageIndex;
+ MBB_SMS_MESSAGE_STATUS MessageStatus;
+ MBB_ARRAY_ELEMENT PduData;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SMS_PDU_RECORD;
+
+typedef struct _MBB_SMS_PDU_RECORD *PMBB_SMS_PDU_RECORD;
+
+typedef struct _MBB_SMS_RECEIVE
+ {
+ MBB_SMS_FORMAT SmsFormat;
+ ULONG MessageCount;
+ MBB_ARRAY_ELEMENT MessageElement[ 1 ];
+ } MBB_SMS_RECEIVE;
+
+typedef struct _MBB_SMS_RECEIVE *PMBB_SMS_RECEIVE;
+
+typedef struct _MBB_SMS_SEND_PDU
+ {
+ MBB_ARRAY_ELEMENT PduData;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SMS_SEND_PDU;
+
+typedef struct _MBB_SMS_SEND_PDU *PMBB_SMS_SEND_PDU;
+
+typedef struct _MBB_SMS_SEND_CDMA
+ {
+ MBB_SMS_CDMA_ENCODING EncodingId;
+ MBB_SMS_CDMA_LANGUAGE LanguageId;
+ MBB_STRING Address;
+ MBB_ARRAY_ELEMENT EncodedMessage;
+ ULONG SizeInCharacters;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SMS_SEND_CDMA;
+
+typedef struct _MBB_SMS_SEND_CDMA *PMBB_SMS_SEND_CDMA;
+
+typedef struct _MBB_SMS_SEND
+ {
+ MBB_SMS_FORMAT SmsFormat;
+ /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_MbbMessages_0000_0000_0001
+ {
+ /* [case()] */ MBB_SMS_SEND_PDU Pdu;
+ /* [case()] */ MBB_SMS_SEND_CDMA Cdma;
+ } u;
+ } MBB_SMS_SEND;
+
+typedef struct _MBB_SMS_SEND *PMBB_SMS_SEND;
+
+typedef struct _MBB_SMS_SEND_STATUS
+ {
+ ULONG MessageReference;
+ } MBB_SMS_SEND_STATUS;
+
+typedef struct _MBB_SMS_SEND_STATUS *PMBB_SMS_SEND_STATUS;
+
+typedef struct _MBB_SMS_DELETE
+ {
+ MBB_SMS_FLAG SmsFlags;
+ ULONG MessageIndex;
+ } MBB_SMS_DELETE;
+
+typedef struct _MBB_SMS_DELETE *PMBB_SMS_DELETE;
+
+typedef struct _MBB_SMS_STATUS
+ {
+ ULONG StatusFlags;
+ ULONG MessageIndex;
+ } MBB_SMS_STATUS;
+
+typedef struct _MBB_SMS_STATUS *PMBB_SMS_STATUS;
+
+typedef
+enum _MBB_USSD_ACTION
+ {
+ MbbUSSDInitiate = 0,
+ MbbUSSDContinue = 1,
+ MbbUSSDCancel = 2
+ } MBB_USSD_ACTION;
+
+typedef
+enum _MBB_USSD_RESPONSE
+ {
+ MbbUSSDNoActionRequired = 0,
+ MbbUSSDActionRequired = 1,
+ MbbUSSDTerminated = 2,
+ MbbUSSDOtherLocalClient = 3,
+ MbbUSSDOperationNotSupported = 4,
+ MbbUSSDNetworkTimeOut = 5
+ } MBB_USSD_RESPONSE;
+
+typedef
+enum _MBB_USSD_SESSION_STATE
+ {
+ MbbUSSDNewSession = 0,
+ MbbUSSDExistingSession = 1
+ } MBB_USSD_SESSION_STATE;
+
+typedef struct _MBB_SET_USSD
+ {
+ MBB_USSD_ACTION USSDAction;
+ ULONG USSDDataCodingScheme;
+ MBB_ARRAY_ELEMENT USSDPayload;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SET_USSD;
+
+typedef struct _MBB_SET_USSD *PMBB_SET_USSD;
+
+typedef struct _MBB_USSD
+ {
+ MBB_USSD_RESPONSE USSDResponse;
+ MBB_USSD_SESSION_STATE USSDSessionState;
+ ULONG USSDDataCodingScheme;
+ MBB_ARRAY_ELEMENT USSDPayload;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_USSD;
+
+typedef struct _MBB_USSD *PMBB_USSD;
+
+typedef struct _MBB_AKA_AUTH_CHALLENGE
+ {
+ UCHAR Rand[ 16 ];
+ UCHAR Autn[ 16 ];
+ } MBB_AKA_AUTH_CHALLENGE;
+
+typedef struct _MBB_AKA_AUTH_CHALLENGE *PMBB_AKA_AUTH_CHALLENGE;
+
+typedef struct _MBB_AKA_AUTH_RESPONSE
+ {
+ UCHAR Res[ 16 ];
+ ULONG ResLength;
+ UCHAR IK[ 16 ];
+ UCHAR CK[ 16 ];
+ UCHAR Auts[ 14 ];
+ } MBB_AKA_AUTH_RESPONSE;
+
+typedef struct _MBB_AKA_AUTH_RESPONSE *PMBB_AKA_AUTH_RESPONSE;
+
+typedef struct _MBB_AKAP_AUTH_CHALLENGE
+ {
+ UCHAR Rand[ 16 ];
+ UCHAR Autn[ 16 ];
+ MBB_STRING NetworkName;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_AKAP_AUTH_CHALLENGE;
+
+typedef struct _MBB_AKAP_AUTH_CHALLENGE *PMBB_AKAP_AUTH_CHALLENGE;
+
+typedef struct _MBB_AKAP_AUTH_RESPONSE
+ {
+ UCHAR Res[ 16 ];
+ ULONG ResLength;
+ UCHAR IK[ 16 ];
+ UCHAR CK[ 16 ];
+ UCHAR Auts[ 14 ];
+ } MBB_AKAP_AUTH_RESPONSE;
+
+typedef struct _MBB_AKAP_AUTH_RESPONSE *PMBB_AKAP_AUTH_RESPONSE;
+
+typedef struct _MBB_SIM_AUTH_CHALLENGE
+ {
+ UCHAR Rand1[ 16 ];
+ UCHAR Rand2[ 16 ];
+ UCHAR Rand3[ 16 ];
+ ULONG n;
+ } MBB_SIM_AUTH_CHALLENGE;
+
+typedef struct _MBB_SIM_AUTH_CHALLENGE *PMBB_SIM_AUTH_CHALLENGE;
+
+typedef struct _MBB_SIM_AUTH_RESPONSE
+ {
+ UCHAR Sres1[ 4 ];
+ UCHAR Kc1[ 8 ];
+ UCHAR Sres2[ 4 ];
+ UCHAR Kc2[ 8 ];
+ UCHAR Sres3[ 4 ];
+ UCHAR Kc3[ 8 ];
+ ULONG n;
+ } MBB_SIM_AUTH_RESPONSE;
+
+typedef struct _MBB_SIM_AUTH_RESPONSE *PMBB_SIM_AUTH_RESPONSE;
+
+typedef struct _MBB_PACKET_FILTERS
+ {
+ ULONG SessionId;
+ ULONG PacketFiltersCount;
+ MBB_ARRAY_ELEMENT ArrayElement[ 1 ];
+ } MBB_PACKET_FILTERS;
+
+typedef struct _MBB_PACKET_FILTERS *PMBB_PACKET_FILTERS;
+
+typedef struct _MBB_SINGLE_PACKET_FILTER
+ {
+ ULONG FilterSize;
+ ULONG PacketFilterOffset;
+ ULONG PacketMaskOffset;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SINGLE_PACKET_FILTER;
+
+typedef struct _MBB_SINGLE_PACKET_FILTER *PMBB_SINGLE_PACKET_FILTER;
+
+typedef struct _MBB_SINGLE_PACKET_FILTER_V2
+ {
+ ULONG FilterSize;
+ ULONG PacketFilterOffset;
+ ULONG PacketMaskOffset;
+ ULONG FilterId;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SINGLE_PACKET_FILTER_V2;
+
+typedef struct _MBB_SINGLE_PACKET_FILTER_V2 *PMBB_SINGLE_PACKET_FILTER_V2;
+
+typedef struct _MBB_NETWORK_IDLE_HINT
+ {
+ MBB_NETWORK_IDLE_HINT_STATE NetworkIdleHintState;
+ } MBB_NETWORK_IDLE_HINT;
+
+typedef struct _MBB_NETWORK_IDLE_HINT *PMBB_NETWORK_IDLE_HINT;
+
+typedef struct _MBB_DEVICE_SERVICE_ELEMENT
+ {
+ GUID DeviceServiceId;
+ MBB_DSS_PAYLOAD_SUPPORT DSSPayload;
+ ULONG MaxDSSInstances;
+ ULONG CIDCount;
+ ULONG CIDList[ 1 ];
+ } MBB_DEVICE_SERVICE_ELEMENT;
+
+typedef struct _MBB_DEVICE_SERVICE_ELEMENT *PMBB_DEVICE_SERVICE_ELEMENT;
+
+typedef struct _MBB_DEVICE_SERVICES_HEADER
+ {
+ ULONG DeviceServicesCount;
+ ULONG MaxDSSSessions;
+ MBB_ARRAY_ELEMENT ArrayElement[ 1 ];
+ } MBB_DEVICE_SERVICES_HEADER;
+
+typedef struct _MBB_DEVICE_SERVICES_HEADER *PMBB_DEVICE_SERVICES_HEADER;
+
+typedef struct _MBB_SUBSCRIBE_EVENT_ENTRY
+ {
+ GUID DeviceServiceId;
+ ULONG CIDCount;
+ ULONG CIDList[ 1 ];
+ } MBB_SUBSCRIBE_EVENT_ENTRY;
+
+typedef struct _MBB_SUBSCRIBE_EVENT_ENTRY *PMBB_SUBSCRIBE_EVENT_ENTRY;
+
+typedef struct _MBB_SUBSCRIBE_EVENT_LIST
+ {
+ ULONG Count;
+ MBB_ARRAY_ELEMENT ArrayElement[ 1 ];
+ } MBB_SUBSCRIBE_EVENT_LIST;
+
+typedef struct _MBB_SUBSCRIBE_EVENT_LIST *PMBB_SUBSCRIBE_EVENT_LIST;
+
+typedef struct _MBB_SET_DSS_CONNECT
+ {
+ GUID DeviceServiceId;
+ ULONG DssSessionId;
+ MBB_DSS_LINK_STATE DssLinkState;
+ } MBB_SET_DSS_CONNECT;
+
+typedef struct _MBB_SET_DSS_CONNECT *PMBB_SET_DSS_CONNECT;
+
+typedef struct _MBB_SET_DSS_CLOSE
+ {
+ ULONG DssSessionId;
+ } MBB_SET_DSS_CLOSE;
+
+typedef struct _MBB_SET_DSS_CLOSE *PMBB_SET_DSS_CLOSE;
+
+typedef struct _MBB_MULTICARRIER_CURRENT_CID_LIST
+ {
+ ULONG CIDCount;
+ ULONG CIDList[ 1 ];
+ } MBB_MULTICARRIER_CURRENT_CID_LIST;
+
+typedef struct _MBB_MULTICARRIER_CURRENT_CID_LIST *PMBB_MULTICARRIER_CURRENT_CID_LIST;
+
+typedef
+enum _MBB_UICC_APP_TYPE
+ {
+ MbbUiccAppTypeUnknown = 0,
+ MbbUiccAppTypeMf = 1,
+ MbbUiccAppTypeMfSIM = 2,
+ MbbUiccAppTypeMfRUIM = 3,
+ MbbUiccAppTypeUSIM = 4,
+ MbbUiccAppTypeCSIM = 5,
+ MbbUiccAppTypeISIM = 6,
+ MbbUiccAppTypeMax = ( MbbUiccAppTypeISIM + 1 )
+ } MBB_UICC_APP_TYPE;
+
+typedef struct _MBB_UICC_APP_INFO
+ {
+ MBB_UICC_APP_TYPE AppType;
+ MBB_ARRAY_ELEMENT AppId;
+ MBB_ARRAY_ELEMENT AppName;
+ ULONG NumPins;
+ MBB_ARRAY_ELEMENT PinRef;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_UICC_APP_INFO;
+
+typedef struct _MBB_UICC_APP_INFO *PMBB_UICC_APP_INFO;
+
+typedef struct _MBB_UICC_APP_LIST
+ {
+ ULONG Version;
+ ULONG AppCount;
+ ULONG ActiveAppIndex;
+ ULONG AppListSize;
+ MBB_ARRAY_ELEMENT DataBuffer[ 1 ];
+ } MBB_UICC_APP_LIST;
+
+typedef struct _MBB_UICC_APP_LIST *PMBB_UICC_APP_LIST;
+
+typedef
+enum _MBB_UICC_FILE_ACCESSIBILITY
+ {
+ MbbUiccFileAccessibilityUnknown = 0,
+ MbbUiccFileAccessibilityNotShareable = 1,
+ MbbUiccFileAccessibilityShareable = 2,
+ MbbUiccFileAccessibilityMax = ( MbbUiccFileAccessibilityShareable + 1 )
+ } MBB_UICC_FILE_ACCESSIBILITY;
+
+typedef
+enum _MBB_UICC_FILE_TYPE
+ {
+ MbbUiccFileTypeUnknown = 0,
+ MbbUiccFileTypeWorkingEf = 1,
+ MbbUiccFileTypeInternalEf = 2,
+ MbbUiccFileTypeDfOrAdf = 3,
+ MbbUiccFileTypeMax = ( MbbUiccFileTypeDfOrAdf + 1 )
+ } MBB_UICC_FILE_TYPE;
+
+typedef
+enum _MBB_UICC_FILE_STRUCTURE
+ {
+ MbbUiccFileStructureUnknown = 0,
+ MbbUiccFileStructureTransparent = 1,
+ MbbUiccFileStructureCyclic = 2,
+ MbbUiccFileStructureLinear = 3,
+ MbbUiccFileStructureBertlv = 4,
+ MbbUiccFileStructureMax = ( MbbUiccFileStructureBertlv + 1 )
+ } MBB_UICC_FILE_STRUCTURE;
+
+typedef struct _MBB_UICC_FILE_PATH
+ {
+ ULONG Version;
+ MBB_ARRAY_ELEMENT AppId;
+ MBB_ARRAY_ELEMENT FilePath;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_UICC_FILE_PATH;
+
+typedef struct _MBB_UICC_FILE_PATH *PMBB_UICC_FILE_PATH;
+
+typedef struct _MBB_UICC_FILE_STATUS
+ {
+ ULONG Version;
+ ULONG StatusWord1;
+ ULONG StatusWord2;
+ MBB_UICC_FILE_ACCESSIBILITY FileAccessibility;
+ MBB_UICC_FILE_TYPE FileType;
+ MBB_UICC_FILE_STRUCTURE FileStructure;
+ ULONG ItemCount;
+ ULONG ItemSize;
+ MBB_PIN_TYPE FileLockStatus[ 4 ];
+ } MBB_UICC_FILE_STATUS;
+
+typedef struct _MBB_UICC_FILE_STATUS *PMBB_UICC_FILE_STATUS;
+
+typedef struct _MBB_UICC_ACCESS_BINARY
+ {
+ ULONG Version;
+ MBB_ARRAY_ELEMENT AppId;
+ MBB_ARRAY_ELEMENT UiccFilePath;
+ ULONG FileOffset;
+ ULONG NumberOfBytes;
+ MBB_ARRAY_ELEMENT LocalPin;
+ MBB_ARRAY_ELEMENT BinaryData;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_UICC_ACCESS_BINARY;
+
+typedef struct _MBB_UICC_ACCESS_BINARY *PMBB_UICC_ACCESS_BINARY;
+
+typedef struct _MBB_UICC_ACCESS_RECORD
+ {
+ ULONG Version;
+ MBB_ARRAY_ELEMENT AppId;
+ MBB_ARRAY_ELEMENT UiccFilePath;
+ ULONG RecordNumber;
+ MBB_ARRAY_ELEMENT LocalPin;
+ MBB_ARRAY_ELEMENT RecordData;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_UICC_ACCESS_RECORD;
+
+typedef struct _MBB_UICC_ACCESS_RECORD *PMBB_UICC_ACCESS_RECORD;
+
+typedef struct _MBB_UICC_RESPONSE
+ {
+ ULONG Version;
+ ULONG StatusWord1;
+ ULONG StatusWord2;
+ MBB_ARRAY_ELEMENT ResponseData;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_UICC_RESPONSE;
+
+typedef struct _MBB_UICC_RESPONSE *PMBB_UICC_RESPONSE;
+
+typedef struct _MBB_PIN_APP
+ {
+ ULONG Version;
+ MBB_ARRAY_ELEMENT AppId;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_PIN_APP;
+
+typedef struct _MBB_PIN_APP *PMBB_PIN_APP;
+
+typedef struct _MBB_PIN_ACTION_EX2
+ {
+ MBB_PIN_TYPE PinType;
+ MBB_PIN_OPERATION PinOperation;
+ MBB_STRING Pin;
+ MBB_STRING NewPin;
+ MBB_ARRAY_ELEMENT AppId;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_PIN_ACTION_EX2;
+
+typedef struct _MBB_PIN_ACTION_EX2 *PMBB_PIN_ACTION_EX2;
+
+typedef struct _MBB_SYS_CAPS_INFO
+ {
+ ULONG NumberOfExecutors;
+ ULONG NumberOfSlots;
+ ULONG Concurrency;
+ } MBB_SYS_CAPS_INFO;
+
+typedef struct _MBB_SYS_CAPS_INFO *PMBB_SYS_CAPS_INFO;
+
+typedef struct _MBB_DEVICE_CAPS_V2
+ {
+ MBB_DEVICE_TYPE DeviceType;
+ MBB_CELLULAR_CLASS CellularClass;
+ MBB_VOICE_CLASS VoiceClass;
+ MBB_SIM_CLASS SimClass;
+ ULONG DataClass;
+ ULONG SmsCaps;
+ ULONG ControlCaps;
+ ULONG dwMaxSessions;
+ MBB_STRING CustomDataClass;
+ MBB_STRING DeviceIdString;
+ MBB_STRING FirmwareInfo;
+ MBB_STRING HardwareInfo;
+ ULONG DeviceIndex;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_DEVICE_CAPS_V2;
+
+typedef struct _MBB_DEVICE_CAPS_V2 *PMBB_DEVICE_CAPS_V2;
+
+typedef struct _MBB_DEVICE_SLOT_MAPPING_INFO
+ {
+ ULONG MapCount;
+ MBB_ARRAY_ELEMENT SlotMapList[ 1 ];
+ } MBB_DEVICE_SLOT_MAPPING_INFO;
+
+typedef struct _MBB_DEVICE_SLOT_MAPPING_INFO *PMBB_DEVICE_SLOT_MAPPING_INFO;
+
+typedef
+enum _MBB_UICCSLOT_STATE
+ {
+ MbbUiccSlotStateOffEmpty = 0,
+ MbbUiccSlotStateOff = 1,
+ MbbUiccSlotStateEmpty = 2,
+ MbbUiccSlotStateNotReady = 3,
+ MbbUiccSlotStateActive = 4,
+ MbbUiccSlotStateError = 5
+ } MBB_UICCSLOT_STATE;
+
+typedef struct _MBB_SLOT_INFO_REQ
+ {
+ ULONG SlotIndex;
+ } MBB_SLOT_INFO_REQ;
+
+typedef struct _MBB_SLOT_INFO_REQ *PMBB_SLOT_INFO_REQ;
+
+typedef struct _MBB_SLOT_INFO
+ {
+ ULONG SlotIndex;
+ MBB_UICCSLOT_STATE State;
+ } MBB_SLOT_INFO;
+
+typedef struct _MBB_SLOT_INFO *PMBB_SLOT_INFO;
+
+typedef struct _MBB_DEVICE_BINDINGS_INFO
+ {
+ ULONG ApplicationCount;
+ MBB_ARRAY_ELEMENT ApplicationList[ 1 ];
+ } MBB_DEVICE_BINDINGS_INFO;
+
+typedef struct _MBB_DEVICE_BINDINGS_INFO *PMBB_DEVICE_BINDINGS_INFO;
+
+typedef
+enum _MBB_REGISTRATION_VOICE_CLASS
+ {
+ MbbRegistrationVoiceClassVoiceCentric = 0,
+ MbbRegistrationVoiceClassDataCentric = 1
+ } MBB_REGISTRATION_VOICE_CLASS;
+
+typedef
+enum _MBB_REGISTRATION_VOICE_DOMAIN_PREFERENCE
+ {
+ MbbRegistrationVoiceDomainPreferenceCsOnly = 0,
+ MbbRegistrationVoiceDomainPreferenceCsPreferred = 1,
+ MbbRegistrationVoiceDomainPreferenceImsPreferred = 2,
+ MbbRegistrationVoiceDomainPreferenceImsOnly = 3
+ } MBB_REGISTRATION_VOICE_DOMAIN_PREFERENCE;
+
+typedef
+enum _MBB_REGISTRATION_VOICE_SUPPORT
+ {
+ MbbRegistrationVoiceSupportNone = 0,
+ MbbRegistrationVoiceSupportIms = 0x1,
+ MbbRegistrationVoiceSupportEmergencyAttach = 0x2,
+ MbbRegistrationVoiceSupportCs = 0x4,
+ MbbRegistrationVoiceSupportCsfb = 0x8,
+ MbbRegistrationVoiceSupport1xCsfb = 0x10,
+ MbbRegistrationVoiceSupportCsEmergency = 0x20
+ } MBB_REGISTRATION_VOICE_SUPPORT;
+
+typedef
+enum _MBB_REGISTRATION_CDMA_ROAM_MODE
+ {
+ MbbRegistrationCdmaRoamModeAutomatic = 0,
+ MbbRegistrationCdmaRoamModeHomeOnly = 1
+ } MBB_REGISTRATION_CDMA_ROAM_MODE;
+
+typedef struct _MBB_SET_REGISTER_STATE_V2
+ {
+ MBB_STRING ProviderId;
+ MBB_REGISTER_ACTION RegisterAction;
+ ULONG DataClass;
+ MBB_REGISTRATION_VOICE_CLASS VoiceClass;
+ MBB_REGISTRATION_VOICE_DOMAIN_PREFERENCE VoiceDomain;
+ MBB_REGISTRATION_CDMA_ROAM_MODE CdmaRoamMode;
+ MBB_ARRAY_ELEMENT AcquisitionOrder[ 1 ];
+ } MBB_SET_REGISTER_STATE_V2;
+
+typedef struct _MBB_SET_REGISTER_STATE_V2 *PMBB_SET_REGISTER_STATE_V2;
+
+typedef struct _MBB_REGISTRATION_STATE_V2
+ {
+ ULONG NetworkError;
+ MBB_REGISTER_STATE RegisterState;
+ MBB_REGISTER_MODE RegisterMode;
+ ULONG AvailableDataClasses;
+ MBB_CELLULAR_CLASS CurrentCellularClass;
+ MBB_STRING ProviderId;
+ MBB_STRING ProviderName;
+ MBB_STRING RoamingText;
+ ULONG RegFlags;
+ MBB_REGISTRATION_VOICE_SUPPORT VoiceSupport;
+ ULONG CurrentRATClass;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_REGISTRATION_STATE_V2;
+
+typedef struct _MBB_REGISTRATION_STATE_V2 *PMBB_REGISTRATION_STATE_V2;
+
+typedef struct _MBB_REGISTRATION_STATE_INFOS_V2
+ {
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT RegistrationStateList[ 1 ];
+ } MBB_REGISTRATION_STATE_INFOS_V2;
+
+typedef struct _MBB_REGISTRATION_STATE_INFOS_V2 *PMBB_REGISTRATION_STATE_INFOS_V2;
+
+typedef struct _MBB_REGISTRATION_STATE_INFO_V2
+ {
+ ULONG NetworkError;
+ MBB_REGISTER_STATE RegisterState;
+ MBB_REGISTER_MODE RegisterMode;
+ ULONG AvailableDataClasses;
+ MBB_CELLULAR_CLASS CurrentCellularClass;
+ MBB_STRING ProviderId;
+ MBB_STRING ProviderName;
+ MBB_STRING RoamingText;
+ ULONG RegistrationFlag;
+ ULONG PreferredDataClasses;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_REGISTRATION_STATE_INFO_V2;
+
+typedef struct _MBB_REGISTRATION_STATE_INFO_V2 *PMBB_REGISTRATION_STATE_INFO_V2;
+
+typedef
+enum _MBB_IMS_VOICE_STATUS
+ {
+ MbbImsVoiceStatusUnknown = 0,
+ MbbImsVoiceStatusUnregistered = 1,
+ MbbImsVoiceStatusRegistered = 2
+ } MBB_IMS_VOICE_STATUS;
+
+typedef struct _MBB_SET_IMS_VOICE_STATE
+ {
+ MBB_IMS_VOICE_STATUS ImsVoiceStatus;
+ } MBB_SET_IMS_VOICE_STATE;
+
+typedef struct _MBB_SET_IMS_VOICE_STATE *PMBB_SET_IMS_VOICE_STATE;
+
+typedef struct _MBB_IMS_VOICE_STATE
+ {
+ MBB_IMS_VOICE_STATUS ImsVoiceStatus;
+ } MBB_IMS_VOICE_STATE;
+
+typedef struct _MBB_IMS_VOICE_STATE *PMBB_IMS_VOICE_STATE;
+
+typedef struct _MBB_SET_SIGNAL_INDICATION_V2
+ {
+ ULONG RssiInterval;
+ ULONG RssiThreshold;
+ ULONG ErrorRateThreshold;
+ ULONG SnrThreshold;
+ } MBB_SET_SIGNAL_INDICATION_V2;
+
+typedef struct _MBB_SET_SIGNAL_INDICATION_V2 *PMBB_SET_SIGNAL_INDICATION_V2;
+
+typedef struct _MBB_SIGNAL_STATE_V2
+ {
+ ULONG Rssi;
+ ULONG ErrorRate;
+ ULONG RssiInterval;
+ ULONG RssiThreshold;
+ ULONG ErrorRateThreshold;
+ ULONG Snr;
+ ULONG SnrThreshold;
+ ULONG DataClass;
+ } MBB_SIGNAL_STATE_V2;
+
+typedef struct _MBB_SIGNAL_STATE_V2 *PMBB_SIGNAL_STATE_V2;
+
+typedef struct _MBB_RSRP_SNR_INFO
+ {
+ ULONG RSRP;
+ ULONG SNR;
+ ULONG RSRPThreshold;
+ ULONG SNRThreshold;
+ MBB_DATA_CLASS_VALUE SystemType;
+ } MBB_RSRP_SNR_INFO;
+
+typedef struct _MBB_RSRP_SNR_INFO *PMBB_RSRP_SNR_INFO;
+
+typedef struct _MBB_RSRP_SNR
+ {
+ ULONG ElementCount;
+ MBB_RSRP_SNR_INFO DataBuffer[ 1 ];
+ } MBB_RSRP_SNR;
+
+typedef struct _MBB_RSRP_SNR *PMBB_RSRP_SNR;
+
+typedef struct _MBB_SIGNAL_STATE_INFO_V2
+ {
+ ULONG Rssi;
+ ULONG ErrorRate;
+ ULONG SignalStrengthInterval;
+ ULONG RssiThreshold;
+ ULONG ErrorRateThreshold;
+ ULONG RsrpSnrOffset;
+ ULONG RsrpSnrSize;
+ MBB_RSRP_SNR DataBuffer;
+ } MBB_SIGNAL_STATE_INFO_V2;
+
+typedef struct _MBB_SIGNAL_STATE_INFO_V2 *PMBB_SIGNAL_STATE_INFO_V2;
+
+typedef struct _MBB_SIGNAL_STATE_INFOS_V2
+ {
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT SignalStateList[ 1 ];
+ } MBB_SIGNAL_STATE_INFOS_V2;
+
+typedef struct _MBB_SIGNAL_STATE_INFOS_V2 *PMBB_SIGNAL_STATE_INFOS_V2;
+
+typedef
+enum _MBB_LOCATION_TRIGGER_MODE
+ {
+ MbbLocationTriggerNone = 0,
+ MbbLocationTriggerAreaCode = 1,
+ MbbLocationTriggerAreaCellId = 2
+ } MBB_LOCATION_TRIGGER_MODE;
+
+typedef struct _MBB_SET_LOCATION_STATE
+ {
+ MBB_LOCATION_TRIGGER_MODE Trigger;
+ } MBB_SET_LOCATION_STATE;
+
+typedef struct _MBB_SET_LOCATION_STATE *PMBB_SET_LOCATION_STATE;
+
+typedef struct _MBB_LOCATION_STATE_INFO
+ {
+ MBB_LOCATION_TRIGGER_MODE Trigger;
+ ULONG DataClass;
+ ULONG AreaCode;
+ ULONG CellId;
+ } MBB_LOCATION_STATE_INFO;
+
+typedef struct _MBB_LOCATION_STATE_INFO *PMBB_LOCATION_STATE_INFO;
+
+typedef struct _MBB_NITZ_INFO
+ {
+ ULONG Year;
+ ULONG Month;
+ ULONG Day;
+ ULONG Hour;
+ ULONG Minute;
+ ULONG Second;
+ ULONG TimeZoneOffsetMinutes;
+ ULONG DaylightSavingTimeOffsetMinutes;
+ ULONG DataClasses;
+ } MBB_NITZ_INFO;
+
+typedef struct _MBB_NITZ_INFO *PMBB_NITZ_INFO;
+
+typedef struct _MBB_ATR_INFO
+ {
+ MBB_ARRAY_ELEMENT2 Atr;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_ATR_INFO;
+
+typedef struct _MBB_ATR_INFO *PMBB_ATR_INFO;
+
+typedef struct _MBB_SET_UICC_OPEN_CHANNEL
+ {
+ MBB_ARRAY_ELEMENT2 AppId;
+ ULONG SelectP2Arg;
+ ULONG ChannelGroup;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SET_UICC_OPEN_CHANNEL;
+
+typedef struct _MBB_SET_UICC_OPEN_CHANNEL *PMBB_SET_UICC_OPEN_CHANNEL;
+
+typedef struct _MBB_UICC_OPEN_CHANNEL_INFO
+ {
+ UCHAR Status[ 4 ];
+ ULONG Channel;
+ MBB_ARRAY_ELEMENT2 Response;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_UICC_OPEN_CHANNEL_INFO;
+
+typedef struct _MBB_UICC_OPEN_CHANNEL_INFO *PMBB_UICC_OPEN_CHANNEL_INFO;
+
+typedef struct _MBB_SET_UICC_CLOSE_CHANNEL
+ {
+ ULONG Channel;
+ ULONG ChannelGroup;
+ ULONG SelectP2Arg;
+ } MBB_SET_UICC_CLOSE_CHANNEL;
+
+typedef struct _MBB_SET_UICC_CLOSE_CHANNEL *PMBB_SET_UICC_CLOSE_CHANNEL;
+
+typedef struct _MBB_UICC_CLOSE_CHANNEL_INFO
+ {
+ UCHAR Status[ 4 ];
+ } MBB_UICC_CLOSE_CHANNEL_INFO;
+
+typedef struct _MBB_UICC_CLOSE_CHANNEL_INFO *PMBB_UICC_CLOSE_CHANNEL_INFO;
+
+typedef
+enum _MBB_UICC_SECURE_MESSAGING
+ {
+ MbbUiccSecureMessagingNone = 0,
+ MbbUiccSecureMessagingNoHdrAuth = 1
+ } MBB_UICC_SECURE_MESSAGING;
+
+typedef
+enum _MBB_UICC_CLASS_BYTE_TYPE
+ {
+ MbbUiccClassByteTypeInterindustry = 0,
+ MbbUiccClassByteTypeExtended = 1
+ } MBB_UICC_CLASS_BYTE_TYPE;
+
+typedef struct _MBB_SET_UICC_APDU
+ {
+ ULONG Channel;
+ MBB_UICC_SECURE_MESSAGING SecureMessaging;
+ MBB_UICC_CLASS_BYTE_TYPE Type;
+ MBB_ARRAY_ELEMENT2 Command;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SET_UICC_APDU;
+
+typedef struct _MBB_SET_UICC_APDU *PMBB_SET_UICC_APDU;
+
+typedef struct _MBB_UICC_APDU_INFO
+ {
+ UCHAR Status[ 4 ];
+ MBB_ARRAY_ELEMENT2 Response;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_UICC_APDU_INFO;
+
+typedef struct _MBB_UICC_APDU_INFO *PMBB_UICC_APDU_INFO;
+
+typedef struct _MBB_UICC_TERMINAL_CAPABILITY_TLV
+ {
+ UCHAR Data[ 3 ];
+ } MBB_UICC_TERMINAL_CAPABILITY_TLV;
+
+typedef struct _MBB_UICC_TERMINAL_CAPABILITY_TLV *PMBB_UICC_TERMINAL_CAPABILITY_TLV;
+
+typedef struct _MBB_SET_UICC_TERMINAL_CAPABILITY
+ {
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT CapabilityList[ 1 ];
+ } MBB_SET_UICC_TERMINAL_CAPABILITY;
+
+typedef struct _MBB_SET_UICC_TERMINAL_CAPABILITY *PMBB_SET_UICC_TERMINAL_CAPABILITY;
+
+typedef struct _MBB_UICC_TERMINAL_CAPABILITY_INFO
+ {
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT CapabilityList[ 1 ];
+ } MBB_UICC_TERMINAL_CAPABILITY_INFO;
+
+typedef struct _MBB_UICC_TERMINAL_CAPABILITY_INFO *PMBB_UICC_TERMINAL_CAPABILITY_INFO;
+
+typedef
+enum _MBB_UICC_PASSTHROUGH_ACTION
+ {
+ MbbUiccPassThroughDisable = 0,
+ MbbUiccPassThroughEnable = 1
+ } MBB_UICC_PASSTHROUGH_ACTION;
+
+typedef
+enum _MBB_UICC_PASSTHROUGH_STATUS
+ {
+ MbbUiccPassThroughDisabled = 0,
+ MbbUiccPassThroughEnabled = 1
+ } MBB_UICC_PASSTHROUGH_STATUS;
+
+typedef struct _MBB_SET_UICC_RESET
+ {
+ MBB_UICC_PASSTHROUGH_ACTION PassThroughAction;
+ } MBB_SET_UICC_RESET;
+
+typedef struct _MBB_SET_UICC_RESET *PMBB_SET_UICC_RESET;
+
+typedef struct _MBB_UICC_RESET_INFO
+ {
+ MBB_UICC_PASSTHROUGH_STATUS PassThroughStatus;
+ } MBB_UICC_RESET_INFO;
+
+typedef struct _MBB_UICC_RESET_INFO *PMBB_UICC_RESET_INFO;
+
+typedef struct _MBB_SAR_CONFIG_INDICES
+ {
+ ULONG SarAntennaIndex;
+ ULONG SarBackoffIndex;
+ } MBB_SAR_CONFIG_INDICES;
+
+typedef struct _MBB_SAR_CONFIG_INDICES *PMBB_SAR_CONFIG_INDICES;
+
+typedef struct _MBB_SAR_CONFIG_INFO
+ {
+ MBB_SAR_CONTROL_MODE SarMode;
+ MBB_SAR_BACKOFF_STATE SarBackoffStatus;
+ MBB_SAR_WIFI_HARDWARE_INTEGRATION SarWifiIntegration;
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT Configurations[ 1 ];
+ } MBB_SAR_CONFIG_INFO;
+
+typedef struct _MBB_SAR_CONFIG_INFO *PMBB_SAR_CONFIG_INFO;
+
+typedef struct _MBB_SET_SAR_CONFIG
+ {
+ MBB_SAR_CONTROL_MODE SarMode;
+ MBB_SAR_BACKOFF_STATE SarBackoffStatus;
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT Configurations[ 1 ];
+ } MBB_SET_SAR_CONFIG;
+
+typedef struct _MBB_SET_SAR_CONFIG *PMBB_SET_SAR_CONFIG;
+
+typedef struct _MBB_SAR_TRANSMISSION_STATUS_INFO
+ {
+ MBB_SAR_TRANSMISSION_STATUS_NOTIFICATION_STATE ChannelNotification;
+ MBB_SAR_TRANSMISSION_STATUS TransmissionStatus;
+ ULONG HysteresisTimer;
+ } MBB_SAR_TRANSMISSION_STATUS_INFO;
+
+typedef struct _MBB_SAR_TRANSMISSION_STATUS_INFO *PMBB_SAR_TRANSMISSION_STATUS_INFO;
+
+typedef struct _MBB_SET_SAR_TRANSMISSION_STATUS
+ {
+ MBB_SAR_TRANSMISSION_STATUS_NOTIFICATION_STATE ChannelNotification;
+ ULONG HysteresisTimer;
+ } MBB_SET_SAR_TRANSMISSION_STATUS;
+
+typedef struct _MBB_SET_SAR_TRANSMISSION_STATUS *PMBB_SET_SAR_TRANSMISSION_STATUS;
+
+typedef struct _MBB_SET_MS_CONTEXT_PROVISIONED_CONTEXT_V2
+ {
+ MBB_BASICCONNECTEXT_CONTEXT_OPERATIONS Operation;
+ GUID ContextType;
+ MBB_CONTEXT_IP_TYPE IPType;
+ MBB_BASICCONNECTEXT_CONTEXT_ENABLE Enable;
+ MBB_BASICCONNECTEXT_CONTEXT_ROAMING_CONTROL Roaming;
+ MBB_BASICCONNECTEXT_CONTEXT_MEDIA_TYPE MediaType;
+ MBB_BASICCONNECTEXT_CONTEXT_SOURCE Source;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_SET_MS_CONTEXT_PROVISIONED_CONTEXT_V2;
+
+typedef struct _MBB_SET_MS_CONTEXT_PROVISIONED_CONTEXT_V2 *PMBB_SET_MS_CONTEXT_PROVISIONED_CONTEXT_V2;
+
+typedef struct _MBB_MS_CONTEXT_V2
+ {
+ ULONG ContextId;
+ GUID ContextType;
+ MBB_CONTEXT_IP_TYPE IPType;
+ MBB_BASICCONNECTEXT_CONTEXT_ENABLE Enable;
+ MBB_BASICCONNECTEXT_CONTEXT_ROAMING_CONTROL Roaming;
+ MBB_BASICCONNECTEXT_CONTEXT_MEDIA_TYPE MediaType;
+ MBB_BASICCONNECTEXT_CONTEXT_SOURCE Source;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_MS_CONTEXT_V2;
+
+typedef struct _MBB_MS_CONTEXT_V2 *PMBB_MS_CONTEXT_V2;
+
+typedef struct _MBB_MS_NETWORK_BLACKLIST_PROVIDER
+ {
+ ULONG MCC;
+ ULONG MNC;
+ MBB_BASICCONNECTEXT_NETWORK_BLACKLIST_TYPE NetworkBlacklistType;
+ } MBB_MS_NETWORK_BLACKLIST_PROVIDER;
+
+typedef struct _MBB_MS_NETWORK_BLACKLIST_PROVIDER *PMBB_MS_NETWORK_BLACKLIST_PROVIDER;
+
+typedef struct _MBB_MS_NETWORK_BLACKLIST_INFO
+ {
+ MBB_BASICCONNECTEXT_NETWORK_BLACKLIST_STATE BlacklistState;
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT Contexts[ 1 ];
+ } MBB_MS_NETWORK_BLACKLIST_INFO;
+
+typedef struct _MBB_MS_NETWORK_BLACKLIST_INFO *PMBB_MS_NETWORK_BLACKLIST_INFO;
+
+typedef struct _MBB_MS_VERSION_INFO
+ {
+ USHORT bcdMBIMVersion;
+ USHORT bcdMBIMExtendedVersion;
+ } MBB_MS_VERSION_INFO;
+
+typedef struct _MBB_MS_VERSION_INFO *PMBB_MS_VERSION_INFO;
+
+typedef struct _MBB_MS_LTE_ATTACH_CONTEXT
+ {
+ MBB_CONTEXT_IP_TYPE IPType;
+ MBB_BASICCONNECTEXT_LTEATTACH_ROAMING_CONTROL Roaming;
+ MBB_BASICCONNECTEXT_CONTEXT_SOURCE Source;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_MS_LTE_ATTACH_CONTEXT;
+
+typedef struct _MBB_MS_LTE_ATTACH_CONTEXT *PMBB_MS_LTE_ATTACH_CONTEXT;
+
+typedef struct _MBB_SET_MS_CONTEXT_LTE_ATTACH_CONFIG
+ {
+ MBB_BASICCONNECTEXT_LTEATTACH_CONTEXT_OPERATIONS Operation;
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT Contexts[ 1 ];
+ } MBB_SET_MS_CONTEXT_LTE_ATTACH_CONFIG;
+
+typedef struct _MBB_SET_MS_CONTEXT_LTE_ATTACH_CONFIG *PMBB_SET_MS_CONTEXT_LTE_ATTACH_CONFIG;
+
+typedef struct _MBB_MS_LTE_ATTACH_CONFIG_INFO
+ {
+ ULONG ElementCount;
+ MBB_ARRAY_ELEMENT Contexts[ 1 ];
+ } MBB_MS_LTE_ATTACH_CONFIG_INFO;
+
+typedef struct _MBB_MS_LTE_ATTACH_CONFIG_INFO *PMBB_MS_LTE_ATTACH_CONFIG_INFO;
+
+typedef struct _MBB_MS_LTE_ATTACH_STATUS
+ {
+ MBB_BASICCONNECTEXT_LTEATTACH_STATE LteAttachState;
+ MBB_CONTEXT_IP_TYPE IPType;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_MS_LTE_ATTACH_STATUS;
+
+typedef struct _MBB_MS_LTE_ATTACH_STATUS *PMBB_MS_LTE_ATTACH_STATUS;
+
+typedef struct _MBB_MS_LTE_ATTACH_STATUS_V2
+ {
+ MBB_BASICCONNECTEXT_LTEATTACH_STATE LteAttachState;
+ ULONG NetworkError;
+ MBB_CONTEXT_IP_TYPE IPType;
+ MBB_STRING AccessString;
+ MBB_STRING UserName;
+ MBB_STRING Password;
+ MBB_COMPRESSION Compression;
+ MBB_AUTH_PROTOCOL AuthProtocol;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_MS_LTE_ATTACH_STATUS_V2;
+
+typedef struct _MBB_MS_LTE_ATTACH_STATUS_V2 *PMBB_MS_LTE_ATTACH_STATUS_V2;
+
+typedef struct _MBB_MS_SYS_CAPS_INFO
+ {
+ ULONG NumberOfExecutors;
+ ULONG NumberOfSlots;
+ ULONG Concurrency;
+ ULONG64 ModemId;
+ } MBB_MS_SYS_CAPS_INFO;
+
+typedef struct _MBB_MS_SYS_CAPS_INFO *PMBB_MS_SYS_CAPS_INFO;
+
+typedef struct _MBB_MS_DEVICE_CAPS_INFO_V2
+ {
+ MBB_DEVICE_TYPE DeviceType;
+ MBB_CELLULAR_CLASS CellularClass;
+ MBB_VOICE_CLASS VoiceClass;
+ MBB_SIM_CLASS SimClass;
+ ULONG DataClass;
+ ULONG SmsCaps;
+ ULONG ControlCaps;
+ ULONG dwMaxSessions;
+ MBB_STRING CustomDataClass;
+ MBB_STRING DeviceIdString;
+ MBB_STRING FirmwareInfo;
+ MBB_STRING HardwareInfo;
+ ULONG ExecutorIndex;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_MS_DEVICE_CAPS_INFO_V2;
+
+typedef struct _MBB_MS_DEVICE_CAPS_INFO_V2 *PMBB_MS_DEVICE_CAPS_INFO_V2;
+
+typedef struct _MBB_MS_DEVICE_CAPS_INFO_V3_OBS
+ {
+ MBB_DEVICE_TYPE DeviceType;
+ MBB_CELLULAR_CLASS CellularClass;
+ MBB_VOICE_CLASS VoiceClass;
+ ULONG SimClassBitMasks;
+ ULONG DataClass;
+ ULONG SmsCaps;
+ ULONG ControlCaps;
+ ULONGLONG MiscCaps;
+ ULONG dwMaxSessions;
+ ULONG ExecutorIndex;
+ ULONG WcdmaBandClass;
+ } MBB_MS_DEVICE_CAPS_INFO_V3_OBS;
+
+typedef struct _MBB_MS_DEVICE_CAPS_INFO_V3_OBS *PMBB_MS_DEVICE_CAPS_INFO_V3_OBS;
+
+typedef struct _MBB_MS_DEVICE_CAPS_INFO_V3
+ {
+ MBB_DEVICE_TYPE DeviceType;
+ MBB_CELLULAR_CLASS CellularClass;
+ MBB_VOICE_CLASS VoiceClass;
+ ULONG SimClassBitMasks;
+ ULONG DataClass;
+ ULONG SmsCaps;
+ ULONG ControlCaps;
+ ULONGLONG DataSubClass;
+ ULONG dwMaxSessions;
+ ULONG ExecutorIndex;
+ ULONG WcdmaBandClass;
+ } MBB_MS_DEVICE_CAPS_INFO_V3;
+
+typedef struct _MBB_MS_DEVICE_CAPS_INFO_V3 *PMBB_MS_DEVICE_CAPS_INFO_V3;
+
+typedef struct _MBB_MS_DEVICE_SLOT_MAPPING_INFO
+ {
+ ULONG MapCount;
+ MBB_ARRAY_ELEMENT SlotMapList[ 1 ];
+ } MBB_MS_DEVICE_SLOT_MAPPING_INFO;
+
+typedef struct _MBB_MS_DEVICE_SLOT_MAPPING_INFO *PMBB_MS_DEVICE_SLOT_MAPPING_INFO;
+
+typedef struct _MBB_MS_SLOT_INFO_REQ
+ {
+ ULONG SlotIndex;
+ } MBB_MS_SLOT_INFO_REQ;
+
+typedef struct _MBB_MS_SLOT_INFO_REQ *PMBB_MS_SLOT_INFO_REQ;
+
+typedef struct _MBB_MS_SLOT_INFO
+ {
+ ULONG SlotIndex;
+ MBB_BASICCONNECTEXT_UICCSLOT_STATE State;
+ } MBB_MS_SLOT_INFO;
+
+typedef struct _MBB_MS_SLOT_INFO *PMBB_MS_SLOT_INFO;
+
+typedef struct _MBB_MS_PCO_VALUE
+ {
+ ULONG SessionId;
+ ULONG PcoDataSize;
+ MBB_PCO_TYPE PcoDataType;
+ UCHAR PcoDataBuffer[ 1 ];
+ } MBB_MS_PCO_VALUE;
+
+typedef struct _MBB_MS_PCO_VALUE *PMBB_MS_PCO_VALUE;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO_REQ
+ {
+ ULONG MaxGSMCount;
+ ULONG MaxUMTSCount;
+ ULONG MaxTDSCDMACount;
+ ULONG MaxLTECount;
+ ULONG MaxCDMACount;
+ } MBB_MS_BASE_STATIONS_INFO_REQ;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO_REQ *PMBB_MS_BASE_STATIONS_INFO_REQ;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO_REQ_V2
+ {
+ ULONG MaxGSMCount;
+ ULONG MaxUMTSCount;
+ ULONG MaxTDSCDMACount;
+ ULONG MaxLTECount;
+ ULONG MaxCDMACount;
+ ULONG MaxNRCount;
+ } MBB_MS_BASE_STATIONS_INFO_REQ_V2;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO_REQ_V2 *PMBB_MS_BASE_STATIONS_INFO_REQ_V2;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO
+ {
+ MBB_DATA_CLASS_VALUE SystemType;
+ MBB_ARRAY_ELEMENT GSMServingCell;
+ MBB_ARRAY_ELEMENT UMTSServingCell;
+ MBB_ARRAY_ELEMENT TDSCDMAServingCell;
+ MBB_ARRAY_ELEMENT LTEServingCell;
+ MBB_ARRAY_ELEMENT GSMNmr;
+ MBB_ARRAY_ELEMENT UMTSMrl;
+ MBB_ARRAY_ELEMENT TDSCDMAMrl;
+ MBB_ARRAY_ELEMENT LTEMrl;
+ MBB_ARRAY_ELEMENT CDMAMrl;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_MS_BASE_STATIONS_INFO;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO *PMBB_MS_BASE_STATIONS_INFO;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO_V2
+ {
+ MBB_DATA_CLASS_VALUE SystemType;
+ MBB_DATA_SUBCLASS_VALUE SystemSubType;
+ MBB_ARRAY_ELEMENT GSMServingCell;
+ MBB_ARRAY_ELEMENT UMTSServingCell;
+ MBB_ARRAY_ELEMENT TDSCDMAServingCell;
+ MBB_ARRAY_ELEMENT LTEServingCell;
+ MBB_ARRAY_ELEMENT GSMNmr;
+ MBB_ARRAY_ELEMENT UMTSMrl;
+ MBB_ARRAY_ELEMENT TDSCDMAMrl;
+ MBB_ARRAY_ELEMENT LTEMrl;
+ MBB_ARRAY_ELEMENT CDMAMrl;
+ MBB_ARRAY_ELEMENT NRServingCells;
+ MBB_ARRAY_ELEMENT NRNeighborCells;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_MS_BASE_STATIONS_INFO_V2;
+
+typedef struct _MBB_MS_BASE_STATIONS_INFO_V2 *PMBB_MS_BASE_STATIONS_INFO_V2;
+
+typedef struct _MBB_MODEM_LOGGING_CONFIG
+ {
+ ULONG Version;
+ ULONG MaxSegmentSize;
+ ULONG MaxFlushTime;
+ MBB_BASICCONNECTEXT_MODEM_LOGGING_LEVEL_CONFIG LevelConfig;
+ } MBB_MODEM_LOGGING_CONFIG;
+
+typedef struct _MBB_MODEM_LOGGING_CONFIG *PMBB_MODEM_LOGGING_CONFIG;
+
+typedef struct _MBB_TLV_IE
+ {
+ MBB_TLV_TYPE Type;
+ UCHAR Reserved;
+ UCHAR PaddingLength;
+ ULONG DataLength;
+ } MBB_TLV_IE;
+
+typedef struct _MBB_TLV_IE *PMBB_TLV_IE;
+
+typedef
+enum _MBB_ACCESS_TYPE
+ {
+ MbbAccessUnknown = 0,
+ MbbAccess3GPP = 1,
+ MbbAccessNon3GPP = 2,
+ MbbAccessMaximum = ( MbbAccessNon3GPP + 1 )
+ } MBB_ACCESS_TYPE;
+
+typedef struct _MBB_PRE_DFLT_NSSAI_INFO
+ {
+ MBB_ACCESS_TYPE AccessType;
+ MBB_TLV_IE PreferredNSSAI;
+ } MBB_PRE_DFLT_NSSAI_INFO;
+
+typedef struct _MBB_PRE_DFLT_NSSAI_INFO *PMBB_PRE_DFLT_NSSAI_INFO;
+
+typedef struct _MBB_SNSSAI_INFO
+ {
+ UCHAR SnssaiLength;
+ UCHAR Sst;
+ } MBB_SNSSAI_INFO;
+
+typedef struct _MBB_SNSSAI_INFO *PMBB_SNSSAI_INFO;
+
+typedef struct _MBB_TAI_LIST_SINGLE_PLMN
+ {
+ MBB_PLMN Plmn;
+ UCHAR ElementCount;
+ ULONG TacList[ 1 ];
+ } MBB_TAI_LIST_SINGLE_PLMN;
+
+typedef struct _MBB_TAI_LIST_SINGLE_PLMN *PMBB_TAI_LIST_SINGLE_PLMN;
+
+typedef struct _MBB_TAI_LIST_MULTI_PLMNS
+ {
+ UCHAR ElementCount;
+ MBB_TAI TaiList[ 1 ];
+ } MBB_TAI_LIST_MULTI_PLMNS;
+
+typedef struct _MBB_TAI_LIST_MULTI_PLMNS *PMBB_TAI_LIST_MULTI_PLMNS;
+
+typedef struct _MBB_TAI_LIST_INFO
+ {
+ UCHAR ListType;
+ /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_MbbMessages_0000_0000_0002
+ {
+ /* [case()] */ MBB_TAI_LIST_SINGLE_PLMN SinglePlmnTaiList;
+ /* [case()] */ MBB_TAI_LIST_MULTI_PLMNS MultiPlmnsTaiList;
+ } u;
+ } MBB_TAI_LIST_INFO;
+
+typedef struct _MBB_TAI_LIST_INFO *PMBB_TAI_LIST_INFO;
+
+typedef struct _MBB_DNN
+ {
+ UCHAR DnnLength;
+ } MBB_DNN;
+
+typedef struct _MBB_DNN *PMBB_DNN;
+
+typedef struct _MBB_LADN
+ {
+ MBB_DNN Dnn;
+ } MBB_LADN;
+
+typedef struct _MBB_LADN *PMBB_LADN;
+
+typedef
+enum _MBB_MODEM_CONFIG_STATUS
+ {
+ ModemConfigStatusUnknown = 0,
+ ModemConfigStatusStarted = 1,
+ ModemConfigStatusCompleted = 2,
+ ModemConfigStatusMaximum = ( ModemConfigStatusCompleted + 1 )
+ } MBB_MODEM_CONFIG_STATUS;
+
+typedef struct _MBB_MODEM_CONFIG_INFO
+ {
+ MBB_MODEM_CONFIG_STATUS ConfigStatus;
+ MBB_TLV_IE ConfigName;
+ } MBB_MODEM_CONFIG_INFO;
+
+typedef struct _MBB_MODEM_CONFIG_INFO *PMBB_MODEM_CONFIG_INFO;
+
+typedef
+enum _MBB_MICO_MODE
+ {
+ MicoModeDisabled = 0,
+ MicoModeEnabled = 1,
+ MicoModeUnsupported = 2,
+ MBIMMicoModeDefault = 3,
+ MicoModeMaximum = ( MBIMMicoModeDefault + 1 )
+ } MBB_MICO_MODE;
+
+typedef
+enum _MBB_DRX_PARAMS
+ {
+ DRXNotSpecified = 0,
+ MBIMDRXNotSupported = 1,
+ DRXCycle32 = 2,
+ DRXCycle64 = 3,
+ DRXCycle128 = 4,
+ DRXCycle256 = 5,
+ DRXCycleMaximum = ( DRXCycle256 + 1 )
+ } MBB_DRX_PARAMS;
+
+typedef
+enum _MBB_DEFAULT_PDU_HINT
+ {
+ MBIMDefaultPDUSessionActivationUnlikely = 0,
+ MBIMDefaultPDUSessionActivationLikely = 1,
+ DefaultPDUMaximum = ( MBIMDefaultPDUSessionActivationLikely + 1 )
+ } MBB_DEFAULT_PDU_HINT;
+
+typedef
+enum _MBB_MS_LADN_IND
+ {
+ LADNInfoNotNeeded = 0,
+ LADNInfoRequested = 1,
+ LADNInfoMaximum = ( LADNInfoRequested + 1 )
+ } MBB_MS_LADN_IND;
+
+typedef struct _MBB_REGISTRATION_PARAMS_INFO
+ {
+ MBB_MICO_MODE MicoMode;
+ MBB_DRX_PARAMS DRXParams;
+ MBB_MS_LADN_IND LADNInfo;
+ MBB_DEFAULT_PDU_HINT DefaultPDUHint;
+ ULONG ReRegisterIfNeeded;
+ } MBB_REGISTRATION_PARAMS_INFO;
+
+typedef struct _MBB_REGISTRATION_PARAMS_INFO *PMBB_REGISTRATION_PARAMS_INFO;
+
+typedef
+enum _MBB_MICO_IND
+ {
+ RaaiTypeRaNotAllocated = 0,
+ RaaiTypeRaAllocated = 1,
+ RaaiTypeNotAvailable = 0xffffffff
+ } MBB_MICO_IND;
+
+typedef struct _MBB_NW_PARAMS_QUERY_INFO
+ {
+ USHORT AreConfigurationsNeeded;
+ USHORT AreUEPoliciesNeeded;
+ } MBB_NW_PARAMS_QUERY_INFO;
+
+typedef struct _MBB_NW_PARAMS_QUERY_INFO *PMBB_NW_PARAMS_QUERY_INFO;
+
+typedef struct _MBB_NW_PARAMS_INFO
+ {
+ MBB_MICO_IND MicoInd;
+ MBB_DRX_PARAMS DRXParams;
+ } MBB_NW_PARAMS_INFO;
+
+typedef struct _MBB_NW_PARAMS_INFO *PMBB_NW_PARAMS_INFO;
+
+typedef
+enum _MBB_WAKE_TYPE
+ {
+ WakeTypeCIDResponse = 0,
+ WakeTypeCIDIndication = 1,
+ WakeTypePacket = 2
+ } MBB_WAKE_TYPE;
+
+typedef struct _MBB_WAKE_REASON
+ {
+ MBB_WAKE_TYPE WakeType;
+ ULONG SessionId;
+ } MBB_WAKE_REASON;
+
+typedef struct _MBB_WAKE_REASON *PMBB_WAKE_REASON;
+
+typedef struct _MBB_WAKE_COMMAND
+ {
+ MBB_COMMAND Command;
+ ULONG PayloadOffset;
+ ULONG PayloadSize;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_WAKE_COMMAND;
+
+typedef struct _MBB_WAKE_COMMAND *PMBB_WAKE_COMMAND;
+
+typedef struct _MBB_WAKE_PACKET
+ {
+ ULONG FilterId;
+ ULONG OriginalPacketSize;
+ ULONG SavedPacketOffset;
+ ULONG SavedPacketSize;
+ UCHAR DataBuffer[ 1 ];
+ } MBB_WAKE_PACKET;
+
+typedef struct _MBB_WAKE_PACKET *PMBB_WAKE_PACKET;
+
+#include <packoff.h>
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+
diff --git a/network/wwan/cxwmbclass/inc/mbbncm.h b/network/wwan/cxwmbclass/inc/mbbncm.h
new file mode 100644
index 00000000..9731dedf
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/mbbncm.h
@@ -0,0 +1,431 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#pragma once
+
+#define NCM10_CC_INTERFACE_CLASS (0x02)
+#define NCM10_CC_INTERFACE_SUBCLASS (0x0d)
+#define NCM10_CC_INTERFACE_PROTOCOL (0x00)
+
+#define MBIM_CC_INTERFACE_CLASS (0x02)
+#define MBIM_CC_INTERFACE_SUBCLASS (0x0e)
+#define MBIM_CC_INTERFACE_PROTOCOL (0x00)
+#define MBIM_CC_INTERFACE_NBL_PROTOCOL (0x01)
+#define MBIM_CC_INTERFACE_NETPACKET_PROTOCOL (0x02)
+
+
+#define MBIM_DC_INTERFACE_CLASS (0x0A)
+#define MBIM_DC_INTERFACE_SUBCLASS (0x00)
+#define MBIM_DC_INTERFACE_PROTOCOL (0x02)
+
+#define MBIM_MBB_FUNCDESC_MIN_VERSION (0x0100)
+#define MBIM_MBB_FUNCDESC_EXTENDED_MIN_VERSION (0x0100)
+
+#define SEND_ENCAPSULATE_COMMAND (0x00)
+#define GET_ENCAPSULATE_RESPONSE (0x01)
+#define RESET_FUNCTION (0x05)
+#define SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER (0x41)
+#define GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER (0x42)
+#define SET_PACKET_FILTER (0x43)
+#define GET_STATISTIC (0x44)
+
+#define GET_NTB_PARAMETERS (0x80)
+#define GET_NBT_FORMAT (0x83)
+#define SET_NBT_FORMAT (0x84)
+#define GET_NTB_INPUT_SIZE (0x85)
+#define SET_NTB_INPUT_SIZE (0x86)
+#define GET_MAX_DATAGRAM_SIZE (0x87)
+
+
+#define MBIM_MIN_SEGMENT_SIZE (1280)
+#define MBIM_MAX_PACKET_FILTER_SIZE (192)
+#define MBIM_MIN_NUMBER_OF_PACKET_FILTERS (16)
+#define MBIM_MIN_MTU_SIZE (1280)
+#define MBIM_MAX_MTU_SIZE (1500)
+
+#define USB_CDC_CS_DESCRIPTOR_TYPE (0x24)
+
+#define USB_CDC_CS_DESCRIPTOR_SUBTYPE (0x0)
+#define USB_CDC_UNION_DESCRIPTOR_SUBTYPE (0x6)
+#define USB_CDC_CS_ECM_DESCRIPTOR_SUBTYPE (0xf)
+#define USB_CDC_CS_NCM_DESCRIPTOR_SUBTYPE (0x1a)
+#define USB_CDC_CS_MBB_DESCRIPTOR_SUBTYPE (0x1b)
+#define USB_CDC_CS_MBB_DESCRIPTOR_EXTENDED_SUBTYPE (0x1c)
+
+
+#define USB_CDC_NOTIFICATION_NETWORK_CONNECTION (0x00)
+#define USB_CDC_NOTIFICATION_RESPONSE_AVAILABLE (0x01)
+#define USB_CDC_NOTIFICATION_CONNECTION_SPEED_CHANGE (0x2a)
+
+#define NCM_NETWORK_CAPS_SET_FILTER_SUPPORTED (1 << 0)
+#define NCM_NETWORK_CAPS_GET_SET_ADDRESS_SUPPORTED (1 << 1)
+#define NCM_NETWORK_CAPS_ENCAPSULATED_COMMAND_SUPPORTED (1 << 2)
+#define NCM_NETWORK_CAPS_MAX_DATAGRAM_SUPPORTED (1 << 3)
+#define NCM_NETWORK_CAPS_GET_SET_CRC_SUPPORTED (1 << 4)
+#define NCM_NETWORK_CAPS_GET_8_BYTE_INPUT_SIZE_SUPPORTED (1 << 5)
+
+#define NCM_NTB_FORMAT_16_BIT (1 << 0)
+#define NCM_NTB_FORMAT_32_BIT (1 << 1)
+
+#define NCM_PACKET_FILTER_DIRECTED (1 << 2)
+
+#define NCM_SET_NTB_FORMAT_16_BIT (0x0)
+#define NCM_SET_NTB_FORMAT_32_BIT (0x1)
+
+
+
+#define NCM_STAT_RESERVED 0x00
+#define NCM_XMIT_OK 0x01
+#define NCM_RCV_OK 0x02
+#define NCM_XMIT_ERROR 0x03
+#define NCM_RCV_ERROR 0x04
+#define NCM_RCV_NO_BUFFER 0x05
+#define NCM_DIRECTED_BYTES_XMIT 0x06
+#define NCM_DIRECTED_FRAMES_XMIT 0x07
+#define NCM_MULTICAST_BYTES_XMIT 0x08
+#define NCM_MULTICAST_FRAMES_XMIT 0x09
+#define NCM_BROADCAST_BYTES_XMIT 0x0A
+#define NCM_BROADCAST_FRAMES_XMIT 0x0B
+#define NCM_DIRECTED_BYTES_RCV 0x0C
+#define NCM_DIRECTED_FRAMES_RCV 0x0D
+#define NCM_MULTICAST_BYTES_RCV 0x0E
+#define NCM_MULTICAST_FRAMES_RCV 0x0F
+#define NCM_BROADCAST_BYTES_RCV 0x10
+#define NCM_BROADCAST_FRAMES_RCV 0x11
+#define NCM_RCV_CRC_ERROR 0x12
+#define NCM_TRANSMIT_QUEUE_LENGTH 0x13
+#define NCM_RCV_ERROR_ALIGNMENT 0x14
+#define NCM_XMIT_ONE_COLLISION 0x15
+#define NCM_XMIT_MORE_COLLISIONS 0x16
+#define NCM_XMIT_DEFERRED 0x17
+#define NCM_XMIT_MAX_COLLISIONS 0x18
+#define NCM_RCV_OVERRUN 0x19
+#define NCM_XMIT_UNDERRUN 0x1A
+#define NCM_XMIT_HEARTBEAT_FAILURE 0x1B
+#define NCM_XMIT_TIMES_CRS_LOST 0x1C
+#define NCM_XMIT_LATE_COLLISIONS 0x1D
+
+#define NCM_NDP_SESSION_SHIFT 24
+#define NCM_NDP_SIGNATURE_MASK 0x00FFFFFF
+
+#define NCM_NTH16_SIG 'HMCN'
+#define NCM_NTH32_SIG 'hmcn'
+
+#define NCM_NDP16_IPS 'SPI'
+#define NCM_NDP16_VENDOR 'SSD'
+
+#define NCM_NDP32_IPS 'spi'
+#define NCM_NDP32_VENDOR 'ssd'
+
+#define NCM_CID_SIG 'dcbm'
+
+#pragma pack( push,1)
+
+typedef struct _NCM_NTB_PARAMETER {
+
+ USHORT wLength;
+ USHORT bmNtbFormatSupported;
+ ULONG dwNtbInMaxSize;
+ USHORT wNdpInDivisor;
+ USHORT wNdpInPayloadRemainder;
+ USHORT wNdpInAlignment;
+ USHORT wReserved1;
+ ULONG dwNtbOutMaxSize;
+ USHORT wNdpOutDivisor;
+ USHORT wNdpOutPayloadRemainder;
+ USHORT wNdpOutAlignment;
+ USHORT wNtbOutMaxDatagrams;
+
+} NCM_NTB_PARAMETER, *PNCM_NTB_PARAMETER;
+
+typedef struct _USB_CS_DESCRIPTOR {
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bSubType;
+
+} USB_CS_DESCRIPTOR, *PUSB_CS_DESCRIPTOR;
+
+typedef struct _USB_CS_UNION_DESCRIPTOR {
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bSubType;
+ BYTE bControlInterface;
+ BYTE bSubordinateInterface[1];
+
+} USB_CS_UNION_DESCRIPTOR, *PUSB_CS_UNION_DESCRIPTOR;
+
+
+typedef struct _USB_CS_CDC_DESCRIPTOR {
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bSubType;
+ USHORT wCDCVersion;
+
+} USB_CS_CDC_DESCRIPTOR, *PUSB_CS_CDC_DESCRIPTOR;
+
+typedef struct _USB_CS_ECM_DESCRIPTOR {
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bSubType;
+ BYTE iMacAddress;
+ ULONG bmEthernetStatistics;
+ USHORT wMaxSegmentSize;
+ USHORT wNumberMCFilters;
+ BYTE bNumberPowerFilters;
+
+} USB_CS_ECM_DESCRIPTOR, *PUSB_CS_ECM_DESCRIPTOR;
+
+typedef struct _USB_CS_NCM_DESCRIPTOR {
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bSubType;
+ USHORT wNcmVersion;
+ BYTE bmNetworkCapabilities;
+
+} USB_CS_NCM_DESCRIPTOR, *PUSB_CS_NCM_DESCRIPTOR;
+
+
+typedef struct _USB_CS_MBB_DESCRIPTOR {
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bSubType;
+ USHORT wMbbVersion;
+ USHORT wMaxControlMessage;
+ BYTE bNumberPowerFilters;
+ BYTE bMaxFilterSize;
+ USHORT wMaxSegmentSize;
+ BYTE bmNetworkCapabilities;
+
+} USB_CS_MBB_DESCRIPTOR, *PUSB_CS_MBB_DESCRIPTOR;
+
+typedef struct _USB_CS_MBB_DESCRIPTOR_EXTENDED {
+
+ BYTE bLength;
+ BYTE bDescriptorType;
+ BYTE bSubType;
+ USHORT wMbbVersion;
+ BYTE bMaxOutstandingCommandMessages;
+ USHORT wMTU;
+
+} USB_CS_MBB_DESCRIPTOR_EXTENDED, *PUSB_CS_MBB_DESCRIPTOR_EXTENDED;
+
+typedef struct _USB_CDC_NOTIFICATION {
+
+ BYTE bmRequestType;
+ BYTE bNotificationCode;
+ USHORT wValue;
+ USHORT wIndex;
+ USHORT wLength;
+
+} USB_CDC_NOTIFICATION, *PUSB_CDC_NOTIFICATION;
+
+typedef struct _USB_CDC_NOTIFICATION_SPEED_CHANGE {
+
+ USB_CDC_NOTIFICATION NotificationHeader;
+ ULONG DownLinkBitRate;
+ ULONG UpLinkBitRate;
+
+} USB_CDC_NOTIFICATION_SPEED_CHANGE, *PUSB_CDC_NOTIFICATION_SPEED_CHANGE;
+
+
+typedef struct _NCM_NTH16 {
+
+ ULONG dwSignature;
+ USHORT wHeaderLength;
+ USHORT wSequence;
+ USHORT wBlockLength;
+ USHORT wFpIndex;
+
+} NCM_NTH16, *PNCM_NTH16;
+
+typedef struct _NCM_NTH32 {
+
+ ULONG dwSignature;
+ USHORT wHeaderLength;
+ USHORT wSequence;
+ ULONG dwBlockLength;
+ ULONG dwFpIndex;
+
+} NCM_NTH32, *PNCM_NTH32;
+
+typedef struct _NCM_NDP16_DATAGRAM {
+
+ USHORT wDatagramIndex;
+ USHORT wDatagramLength;
+
+} NCM_NDP16_DATAGRAM, *PNCM_NDP16_DATAGRAM;
+
+
+typedef struct _NCM_NDP16 {
+
+ ULONG dwSignature;
+ USHORT wLength;
+ USHORT wNextFpIndex;
+
+ NCM_NDP16_DATAGRAM Datagram[1];
+
+} NCM_NDP16, *PNCM_NDP16;
+
+
+typedef struct _NCM_NDP32_DATAGRAM {
+
+ ULONG dwDatagramIndex;
+ ULONG dwDatagramLength;
+
+} NCM_NDP32_DATAGRAM, *PNCM_NDP32_DATAGRAM;
+
+
+typedef struct _NCM_NDP32 {
+
+ ULONG dwSignature;
+ USHORT wLength;
+ USHORT wReserved6;
+ ULONG dwNextFpIndex;
+ ULONG dwReserved12;
+
+ NCM_NDP32_DATAGRAM Datagram[1];
+
+} NCM_NDP32, *PNCM_NDP32;
+
+
+#pragma pack( pop)
+
+//
+// NTB
+//
+
+#define MBB_NTB_GET_OFFSET(NTH,_X_) ((ULONG)(((SIZE_T)(_X_))-((SIZE_T)(NTH))))
+#define MBB_NTB_GET_SEQUENCE(NTH) (((PNCM_NTH32)(NTH))->wSequence)
+#define MBB_NTB_GET_SIGNATURE(NTH) (((PNCM_NTH32)(NTH))->dwSignature)
+#define MBB_NTB_GET_HEADER_LENGTH(NTH) (((PNCM_NTH32)(NTH))->wHeaderLength)
+#define MBB_NTB_IS_32BIT(NTH) (MBB_NTB_GET_SIGNATURE(NTH) == NCM_NTH32_SIG)
+#define MBB_NTB_IS_16BIT(NTH) (MBB_NTB_GET_SIGNATURE(NTH) == NCM_NTH16_SIG)
+
+//
+// NTB32
+
+#define MBB_NTH32_GET_SEQUENCE(NTH) MBB_NTB_GET_SEQUENCE(NTH)
+#define MBB_NTH32_GET_SIGNATURE(NTH) MBB_NTB_GET_SIGNATURE(NTH)
+#define MBB_NTH32_GET_HEADER_LENGTH(NTH) MBB_NTB_GET_HEADER_LENGTH(NTH)
+#define MBB_NTH32_GET_BLOCK_LENGTH(NTH) ((NTH)->dwBlockLength)
+#define MBB_NTH32_GET_FIRST_NDP_OFFSET(NTH) ((NTH)->dwFpIndex)
+#define MBB_NTH32_GET_FIRST_NDP(NTH) ((MBB_NTH32_GET_FIRST_NDP_OFFSET(NTH) != 0)? ((PNCM_NDP32)(((PCHAR)(NTH)) + MBB_NTH32_GET_FIRST_NDP_OFFSET(NTH))): NULL)
+#define MBB_NTH32_IS_VALID_BLOCK_LENGTH(NTH,MAXLEN) (MBB_NTH32_GET_BLOCK_LENGTH(NTH) <= (MAXLEN))
+#define MBB_NTH32_IS_VALID_HEADER_LENGTH(NTH) (MBB_NTB_GET_HEADER_LENGTH(NTH) == sizeof(NCM_NTH32))
+#define MBB_NTH32_IS_VALID_SIGNATURE(NTH) (MBB_NTB_GET_SIGNATURE(NTH) == NCM_NTH32_SIG)
+#define MBB_NTH32_IS_VALID_FIRST_NDP(NTH) \
+ ( \
+ MBB_NTH32_GET_FIRST_NDP_OFFSET(NTH)<= (ULONG_MAX - sizeof(NCM_NDP32)) && \
+ (MBB_NTH32_GET_FIRST_NDP_OFFSET(NTH) + sizeof(NCM_NDP32)) <= MBB_NTH32_GET_BLOCK_LENGTH(NTH) \
+ )
+
+#define MBB_NDP32_GET_SIGNATURE(NDP) ((NDP)->dwSignature)
+#define MBB_NDP32_GET_SESSIONID(NDP) (MBB_NDP32_GET_SIGNATURE(NDP) >> NCM_NDP_SESSION_SHIFT)
+#define MBB_NDP32_GET_SIGNATURE_TYPE(NDP) (MBB_NDP32_GET_SIGNATURE(NDP) & NCM_NDP_SIGNATURE_MASK)
+#define MBB_NDP32_GET_LENGTH(NDP) ((NDP)->wLength)
+#define MBB_NDP32_GET_NEXT_NDP_OFFSET(NDP) ((NDP)->dwNextFpIndex)
+#define MBB_NDP32_GET_NEXT_NDP(NTH,NDP) ((MBB_NDP32_GET_NEXT_NDP_OFFSET(NDP) != 0)? ((PNCM_NDP32)(((PCHAR)(NTH)) + MBB_NDP32_GET_NEXT_NDP_OFFSET(NDP))): NULL)
+#define MBB_NDP32_GET_DATAGRAM_COUNT(NDP) ((MBB_NDP32_GET_LENGTH(NDP)-FIELD_OFFSET(NCM_NDP32,Datagram)) / sizeof(NCM_NDP32_DATAGRAM))
+#define MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX) ((NDP)->Datagram[(IDX)].dwDatagramIndex)
+#define MBB_NDP32_GET_DATAGRAM_LENGTH(NDP,IDX) ((NDP)->Datagram[(IDX)].dwDatagramLength)
+#define MBB_NDP32_GET_DATAGRAM(NTH,NDP,IDX) ((MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX) != 0)? (((PCHAR)(NTH)) + MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX)): NULL)
+#define MBB_NDP32_IS_DATAGRAM_PRESENT(NDP,IDX) ((FIELD_OFFSET(NCM_NDP32,Datagram)+((IDX)*sizeof(NCM_NDP32_DATAGRAM))) <= MBB_NDP32_GET_LENGTH(NDP))
+
+#define MBB_NTB32_IS_END_DATAGRAM(NTH,NDP,IDX) \
+ ( \
+ MBB_NDP32_IS_DATAGRAM_PRESENT(NDP,IDX) && \
+ ( \
+ MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX) == 0 || \
+ MBB_NDP32_GET_DATAGRAM_LENGTH(NDP,IDX) == 0 \
+ ) \
+ )
+#define MBB_NTB32_IS_VALID_DATAGRAM(NTH,NDP,IDX) \
+ ( \
+ MBB_NDP32_IS_DATAGRAM_PRESENT(NDP,IDX) && \
+ MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX) != 0 && \
+ MBB_NDP32_GET_DATAGRAM_LENGTH(NDP,IDX) != 0 && \
+ MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX) < MBB_NTH32_GET_BLOCK_LENGTH(NTH) && \
+ MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX) <= (ULONG_MAX - MBB_NDP32_GET_DATAGRAM_LENGTH(NDP,IDX)) && \
+ (MBB_NDP32_GET_DATAGRAM_OFFSET(NDP,IDX) + MBB_NDP32_GET_DATAGRAM_LENGTH(NDP,IDX)) <= MBB_NTH32_GET_BLOCK_LENGTH(NTH) \
+ )
+#define MBB_NTB32_IS_VALID_NDP_LENGTH(NTH,NDP) \
+ ( \
+ (MBB_NTB_GET_OFFSET(NTH,NDP) < MBB_NTH32_GET_BLOCK_LENGTH(NTH)) && \
+ (MBB_NDP32_GET_LENGTH(NDP) >= FIELD_OFFSET(NCM_NDP32,Datagram)) && \
+ (MBB_NTB_GET_OFFSET(NTH,NDP) <= ULONG_MAX - MBB_NDP32_GET_LENGTH(NDP)) && \
+ ((MBB_NTB_GET_OFFSET(NTH,NDP)+MBB_NDP32_GET_LENGTH(NDP)) <= MBB_NTH32_GET_BLOCK_LENGTH(NTH)) \
+ )
+#define MBB_NTB32_IS_VALID_NDP_SIGNATURE(NDP) \
+ ( \
+ ((MBB_NDP32_GET_SIGNATURE(NDP) & NCM_NDP_SIGNATURE_MASK) == NCM_NDP32_IPS) || \
+ ((MBB_NDP32_GET_SIGNATURE(NDP) & NCM_NDP_SIGNATURE_MASK) == NCM_NDP32_VENDOR) \
+ )
+
+//
+// NTB16
+//
+
+#define MBB_NTH16_GET_SEQUENCE(NTH) MBB_NTB_GET_SEQUENCE(NTH)
+#define MBB_NTH16_GET_SIGNATURE(NTH) MBB_NTB_GET_SIGNATURE(NTH)
+#define MBB_NTH16_GET_HEADER_LENGTH(NTH) MBB_NTB_GET_HEADER_LENGTH(NTH)
+#define MBB_NTH16_GET_BLOCK_LENGTH(NTH) ((NTH)->wBlockLength)
+#define MBB_NTH16_GET_FIRST_NDP_OFFSET(NTH) ((NTH)->wFpIndex)
+#define MBB_NTH16_GET_FIRST_NDP(NTH) ((MBB_NTH16_GET_FIRST_NDP_OFFSET(NTH) != 0)? ((PNCM_NDP16)(((PCHAR)(NTH)) + MBB_NTH16_GET_FIRST_NDP_OFFSET(NTH))): NULL)
+#define MBB_NTH16_IS_VALID_BLOCK_LENGTH(NTH,MAXLEN) (MBB_NTH16_GET_BLOCK_LENGTH(NTH) <= (MAXLEN))
+#define MBB_NTH16_IS_VALID_HEADER_LENGTH(NTH) (MBB_NTB_GET_HEADER_LENGTH(NTH) == sizeof(NCM_NTH16))
+#define MBB_NTH16_IS_VALID_SIGNATURE(NTH) (MBB_NTB_GET_SIGNATURE(NTH) == NCM_NTH16_SIG)
+#define MBB_NTH16_IS_VALID_FIRST_NDP(NTH) \
+ ( \
+ MBB_NTH16_GET_FIRST_NDP_OFFSET(NTH) <= (USHRT_MAX - sizeof(NCM_NDP16)) &&\
+ (MBB_NTH16_GET_FIRST_NDP_OFFSET(NTH) + sizeof(NCM_NDP16)) <= MBB_NTH16_GET_BLOCK_LENGTH(NTH) \
+ )
+
+#define MBB_NDP16_GET_SIGNATURE(NDP) ((NDP)->dwSignature)
+#define MBB_NDP16_GET_SESSIONID(NDP) (MBB_NDP16_GET_SIGNATURE(NDP) >> NCM_NDP_SESSION_SHIFT)
+#define MBB_NDP16_GET_SIGNATURE_TYPE(NDP) (MBB_NDP16_GET_SIGNATURE(NDP) & NCM_NDP_SIGNATURE_MASK)
+#define MBB_NDP16_GET_LENGTH(NDP) ((NDP)->wLength)
+#define MBB_NDP16_GET_NEXT_NDP_OFFSET(NDP) ((NDP)->wNextFpIndex)
+#define MBB_NDP16_GET_NEXT_NDP(NTH,NDP) ((MBB_NDP16_GET_NEXT_NDP_OFFSET(NDP) != 0)? ((PNCM_NDP16)(((PCHAR)(NTH)) + MBB_NDP16_GET_NEXT_NDP_OFFSET(NDP))): NULL)
+#define MBB_NDP16_GET_DATAGRAM_COUNT(NDP) ((MBB_NDP16_GET_LENGTH(NDP)-FIELD_OFFSET(NCM_NDP16,Datagram)) / sizeof(NCM_NDP16_DATAGRAM))
+#define MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX) ((NDP)->Datagram[(IDX)].wDatagramIndex)
+#define MBB_NDP16_GET_DATAGRAM_LENGTH(NDP,IDX) ((NDP)->Datagram[(IDX)].wDatagramLength)
+#define MBB_NDP16_GET_DATAGRAM(NTH,NDP,IDX) ((MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX) != 0)? (((PCHAR)(NTH)) + MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX)): NULL)
+#define MBB_NDP16_IS_DATAGRAM_PRESENT(NDP,IDX) ((FIELD_OFFSET(NCM_NDP16,Datagram)+((IDX)*sizeof(NCM_NDP16_DATAGRAM))) <= MBB_NDP16_GET_LENGTH(NDP))
+
+#define MBB_NTB16_IS_END_DATAGRAM(NTH,NDP,IDX) \
+ ( \
+ MBB_NDP16_IS_DATAGRAM_PRESENT(NDP,IDX) && \
+ ( \
+ MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX) == 0 || \
+ MBB_NDP16_GET_DATAGRAM_LENGTH(NDP,IDX) == 0 \
+ ) \
+ )
+#define MBB_NTB16_IS_VALID_DATAGRAM(NTH,NDP,IDX) \
+ ( \
+ MBB_NDP16_IS_DATAGRAM_PRESENT(NDP,IDX) && \
+ MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX) != 0 && \
+ MBB_NDP16_GET_DATAGRAM_LENGTH(NDP,IDX) != 0 && \
+ MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX) < MBB_NTH16_GET_BLOCK_LENGTH(NTH) && \
+ MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX) <= (USHRT_MAX - MBB_NDP16_GET_DATAGRAM_LENGTH(NDP,IDX)) &&\
+ (MBB_NDP16_GET_DATAGRAM_OFFSET(NDP,IDX) + MBB_NDP16_GET_DATAGRAM_LENGTH(NDP,IDX)) <= MBB_NTH16_GET_BLOCK_LENGTH(NTH) \
+ )
+#define MBB_NTB16_IS_VALID_NDP_LENGTH(NTH,NDP) \
+ ( \
+ (MBB_NTB_GET_OFFSET(NTH,NDP) < MBB_NTH16_GET_BLOCK_LENGTH(NTH)) && \
+ (MBB_NDP16_GET_LENGTH(NDP) >= FIELD_OFFSET(NCM_NDP16,Datagram)) && \
+ (MBB_NTB_GET_OFFSET(NTH,NDP) <= (ULONG)(USHRT_MAX - MBB_NDP16_GET_LENGTH(NDP))) &&\
+ ((MBB_NTB_GET_OFFSET(NTH,NDP)+MBB_NDP16_GET_LENGTH(NDP)) <= MBB_NTH16_GET_BLOCK_LENGTH(NTH)) \
+ )
+#define MBB_NTB16_IS_VALID_NDP_SIGNATURE(NDP) \
+ ( \
+ ((MBB_NDP16_GET_SIGNATURE(NDP) & NCM_NDP_SIGNATURE_MASK) == NCM_NDP16_IPS) || \
+ ((MBB_NDP16_GET_SIGNATURE(NDP) & NCM_NDP_SIGNATURE_MASK) == NCM_NDP16_VENDOR) \
+ )
+
diff --git a/network/wwan/cxwmbclass/inc/power.h b/network/wwan/cxwmbclass/inc/power.h
new file mode 100644
index 00000000..0205fb8e
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/power.h
@@ -0,0 +1,11 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#pragma once
+
+EVT_WDF_DEVICE_D0_ENTRY EvtDeviceD0Entry;
+EVT_WDF_DEVICE_D0_EXIT EvtDeviceD0Exit;
+EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtDeviceArmWakeFromS0;
+EVT_WDF_DEVICE_DISARM_WAKE_FROM_S0 EvtDeviceDisarmWakeFromS0;
+EVT_NET_DEVICE_PREVIEW_WAKE_SOURCE EvtDevicePreviewBitmapPattern;
diff --git a/network/wwan/cxwmbclass/inc/precomp.h b/network/wwan/cxwmbclass/inc/precomp.h
new file mode 100644
index 00000000..706407ba
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/precomp.h
@@ -0,0 +1,53 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#pragma once
+
+#include <ntddk.h>
+#include <ntstrsafe.h>
+
+#include <wdm.h>
+#include <wdf.h>
+#include <wdfminiport.h>
+#include <usbspec.h>
+#include <usb.h>
+#include <usbdlib.h>
+#include <usbiodef.h>
+#include <usbioctl.h>
+#include <wdfusb.h>
+#include <netadaptercx.h>
+#include <netdevice.h>
+#include <mbbcx.h>
+#include <net/returncontext.h>
+#include <net/virtualaddress.h>
+#include <net/mdl.h>
+#include <ndis.h>
+
+#include <netiodef.h>
+
+#define INITGUID
+#include <devpkey.h>
+
+#include <limits.h>
+
+#include "mbbncm.h"
+
+#include "mbbmessages.h"
+#define MBB_MAX_NUMBER_OF_SESSIONS 17 // including the default session for the physical/primary interface
+#define MBB_DEFAULT_SESSION_ID 0 // for physical/primay interface. Must be 0. Do NOT change it.
+#define MBB_INVALID_SESSION_ID MBB_MAX_NUMBER_OF_SESSIONS
+
+#define WMBCLASS_RADIO_STATE_OFF 0
+#define WMBCLASS_RADIO_STATE_ON 1
+
+#include "BusInterface.h"
+
+#include "align.h"
+#include "device.h"
+#include "adapter.h"
+#include "data.h"
+#include "txqueue.h"
+#include "util.h"
+#include "usbbus.h"
+#include "utils.h"
diff --git a/network/wwan/cxwmbclass/inc/rxqueue.h b/network/wwan/cxwmbclass/inc/rxqueue.h
new file mode 100644
index 00000000..fa57e6e0
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/rxqueue.h
@@ -0,0 +1,26 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#pragma once
+
+typedef struct _MBB_RXQUEUE_CONTEXT
+{
+ PWMBCLASS_NETADAPTER_CONTEXT NetAdapterContext;
+ LONG NotificationEnabled;
+ NET_RING_COLLECTION const* DatapathDescriptor;
+ NET_EXTENSION ReturnContextExtension;
+ NET_EXTENSION VirtualAddressExtension;
+} MBB_RXQUEUE_CONTEXT, *PMBB_RXQUEUE_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(MBB_RXQUEUE_CONTEXT, MbbGetRxQueueContext);
+
+EVT_WDF_OBJECT_CONTEXT_DESTROY EvtRxQueueDestroy;
+
+EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED EvtRxQueueSetNotificationEnabled;
+EVT_PACKET_QUEUE_ADVANCE EvtRxQueueAdvance;
+EVT_PACKET_QUEUE_CANCEL EvtRxQueueCancel;
+
+VOID MbbNdisReceiveCallback(_In_ MBB_PROTOCOL_HANDLE ProtocolHandle, _In_ MBB_RECEIVE_CONTEXT ReceiveContext, _In_ PMDL Mdl);
+
+VOID EvtAdapterReturnRxBuffer(_In_ NETADAPTER Adapter, _In_ NET_FRAGMENT_RETURN_CONTEXT_HANDLE RxBufferReturnContext);
diff --git a/network/wwan/cxwmbclass/inc/txqueue.h b/network/wwan/cxwmbclass/inc/txqueue.h
new file mode 100644
index 00000000..7bab9c07
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/txqueue.h
@@ -0,0 +1,22 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#pragma once
+
+typedef struct _MBB_TXQUEUE_CONTEXT
+{
+ PWMBCLASS_NETADAPTER_CONTEXT NetAdapterContext;
+ LONG NotificationEnabled;
+ UINT32 CompletionBatchSize;
+ NET_RING_COLLECTION const* DatapathDescriptor;
+ NET_EXTENSION MdlExtension;
+} MBB_TXQUEUE_CONTEXT, *PMBB_TXQUEUE_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(MBB_TXQUEUE_CONTEXT, MbbGetTxQueueContext);
+
+EVT_WDF_OBJECT_CONTEXT_DESTROY EvtTxQueueDestroy;
+EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED EvtTxQueueSetNotificationEnabled;
+EVT_PACKET_QUEUE_CANCEL EvtTxQueueCancel;
+EVT_PACKET_QUEUE_ADVANCE EvtTxQueueAdvance;
+
+EVT_MBB_DEVICE_SEND_DEVICE_SERVICE_SESSION_DATA EvtMbbDeviceSendDeviceServiceSessionData;
diff --git a/network/wwan/cxwmbclass/inc/usbbus.h b/network/wwan/cxwmbclass/inc/usbbus.h
new file mode 100644
index 00000000..cca02f60
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/usbbus.h
@@ -0,0 +1,235 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#pragma once
+
+#define INITIALIZE_PASSIVE_LOCK(__lock) KeInitializeGuardedMutex(__lock)
+
+#define ACQUIRE_PASSIVE_LOCK(__lock) KeAcquireGuardedMutex(__lock)
+
+#define RELEASE_PASSIVE_LOCK(__lock) KeReleaseGuardedMutex(__lock)
+
+#define WMB_PUSH_LOCK EX_PUSH_LOCK
+
+#define INIT_PUSHLOCK(PushLock) ExInitializePushLock(PushLock)
+
+#define ACQUIRE_PUSHLOCK_EXCLUSIVE(PushLock) \
+ do \
+ { \
+ KeEnterCriticalRegion(); \
+ ExAcquirePushLockExclusive((PushLock)); \
+ } while (0)
+
+#define RELEASE_PUSHLOCK_EXCLUSIVE(PushLock) \
+ do \
+ { \
+ ExReleasePushLockExclusive((PushLock)); \
+ KeLeaveCriticalRegion(); \
+ } while (0)
+
+#define ACQUIRE_PUSHLOCK_SHARED(PushLock) \
+ do \
+ { \
+ KeEnterCriticalRegion(); \
+ ExAcquirePushLockShared((PushLock)); \
+ } while (0)
+
+#define RELEASE_PUSHLOCK_SHARED(PushLock) \
+ do \
+ { \
+ ExReleasePushLockShared((PushLock)); \
+ KeLeaveCriticalRegion(); \
+ } while (0)
+
+#define MAX_PREALLOCATED_WRITE_REQUESTS (20)
+
+//#define DEFAULT_INTERRUPT_PIPE_READ_SIZE (8)
+#define DEFAULT_IO_TIMEOUT (10)
+
+#define MAX_HOST_NTB_SIZE (0x10000)
+#define MAX_HOST_NTB_SIZE_FOR_UDE_MBIM (0x20000)
+#define MAX_OUT_DATAGRAMS (64)
+
+#define INTERRUPT_REASSEMBLY_BUFFER_SIZE (64)
+
+#define MIN_CONTROL_MESSAGE_SIZE (64)
+#define MAX_CONTROL_MESSAGE_SIZE (4096)
+
+#define ALT_DATA_SETTING_0_PIPES (0)
+#define ALT_DATA_SETTING_1_PIPES (2)
+
+#define INITIAL_OPEN_TIMEOUT (5)
+#define MAX_OPEN_RETRY_ATTEMPTS (4)
+
+#define PENDING_BULK_IN_READS (3)
+#define PENDING_BULK_IN_READS_FOR_UDE_MBIM (10)
+
+typedef enum _BUS_STATE
+{
+
+ BUS_STATE_CLOSED = 0,
+ BUS_STATE_CLOSING,
+
+ BUS_STATE_OPENING,
+ BUS_STATE_OPENED
+
+} BUS_STATE,
+ *PBUS_STATE;
+
+typedef struct _POWER_FILTER_LOOKUP
+{
+
+ ULONG PatternId;
+ BOOLEAN InUse;
+
+} POWER_FILTER_LOOKUP, *PPOWER_FILTER_LOOKUP;
+
+typedef struct _BUS_OBJECT
+{
+
+ KGUARDED_MUTEX Lock;
+ BUS_STATE State;
+
+ PDEVICE_OBJECT Pdo;
+ PDEVICE_OBJECT Fdo;
+ PDEVICE_OBJECT NextDeviceObject;
+
+ MBB_PROTOCOL_HANDLE ProtocolHandle;
+ MBB_BUS_RESPONSE_AVAILABLE_CALLBACK ResponseAvailableCallback;
+
+ MBB_BUS_DATA_RECEIVE_CALLBACK ReceiveDataCallback;
+
+ MBB_BUS_SS_IDLE_CONFIRM_CALLBACK IdleConfirmCallback;
+ MBB_BUS_SS_IDLE_NOTIFICATION_COMPLETE_CALLBACK IdleNotificationComplete;
+
+ WDFDEVICE WdfDevice;
+ WDFUSBDEVICE WdfUsbDevice;
+
+ USHORT MaxControlChannelSize;
+
+ USHORT MaxSegmentSize;
+ BYTE NcmParams;
+ BOOLEAN NtbFormat32Bit;
+ BYTE PowerFiltersSupported;
+ BYTE MaxPowerFilterSize;
+
+ BYTE MaxOutstandingCommandMessages;
+ USHORT MTU;
+
+ NCM_NTB_PARAMETER NtbParam;
+
+ PWSTR Manufacturer;
+ PWSTR Model;
+
+ ULONG MaxBulkInTransfer;
+ ULONG BulkInHeaderSize;
+
+ BOOLEAN ChainedMdlsSupported;
+
+ PIRP UsbSsIrp;
+ USB_IDLE_CALLBACK_INFO UsbSsCallback;
+
+ KEVENT UsbSsIrpComplete;
+
+ PPOWER_FILTER_LOOKUP PowerFilterTable;
+
+ PUCHAR SyncInterruptReadBuffer;
+
+ UCHAR InterruptReassemnblyBuffer[INTERRUPT_REASSEMBLY_BUFFER_SIZE];
+ ULONG CurrentOffset;
+ ULONG ExpectLength;
+
+ USHORT MbimVersion;
+ USHORT MbimExtendedVersion;
+ BOOLEAN RemoteWakeCapable;
+
+ USB_CAP_DEVICE_INFO UsbCapDeviceInfo;
+ PVOID ModemContext;
+
+} BUS_OBJECT, *PBUS_OBJECT;
+
+typedef struct _WDF_DEVICE_INFO
+{
+
+ PBUS_OBJECT BusObject;
+
+} WDF_DEVICE_INFO, *PWDF_DEVICE_INFO;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WDF_DEVICE_INFO, GetWdfDeviceInfo)
+
+//
+// put this in the NIC data structure
+//
+typedef struct _USB_DEVICE_CONTEXT
+{
+ size_t NumberOfPipes;
+
+ WDFWAITLOCK PipeStateLock;
+
+ UCHAR UsbCommunicationInterfaceIndex;
+ UCHAR UsbDataInterfaceIndex;
+
+ UCHAR UsbCommunicationInterfaceSetting;
+ UCHAR UsbDataInterfaceSetting;
+
+ UCHAR WdfCommunicationInterfaceIndex;
+ UCHAR WdfDataInterfaceIndex;
+
+ BOOLEAN BulkInputPipeConfigured;
+ BOOLEAN BulkInputPipeStarted;
+ ULONG BulkInputPipeMaxPacket;
+ WDFUSBPIPE BulkInputPipe;
+
+ BOOLEAN BulkOutputPipeConfigured;
+ BOOLEAN BulkOutputPipeStarted;
+ ULONG BulkOutputPipeMaxPacket;
+ WDFUSBPIPE BulkOutputPipe;
+
+ WDFUSBPIPE InterruptPipe;
+
+ WDFIOTARGET InterruptPipeIoTarget;
+ ULONG InterruptPipeMaxPacket;
+
+ WDFLOOKASIDE LookasideList;
+
+ WDFSPINLOCK WriteCollectionLock;
+ WDFCOLLECTION WriteRequestCollection;
+
+ WDFWORKITEM BulkPipeResetWorkitem;
+ LONG BulkPipeResetFlag;
+ EX_RUNDOWN_REF BulkPipeResetRundown;
+ PBUS_OBJECT BusObject;
+} USB_DEVICE_CONTEXT, *PUSB_DEVICE_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(USB_DEVICE_CONTEXT, GetUsbDeviceContext)
+
+typedef struct _REQUEST_CONTEXT
+{
+
+ PVOID CallbackContext;
+ union
+ {
+
+ MBB_BUS_SEND_COMPLETION_CALLBACK Send;
+ MBB_BUS_RECEIVE_COMPLETION_CALLBACK Receive;
+
+ } Callback;
+
+ MBB_PROTOCOL_HANDLE ProtocolHandle;
+
+ PUSB_DEVICE_CONTEXT UsbDeviceContext;
+
+ PVOID Buffer;
+ ULONG BufferLength;
+
+} REQUEST_CONTEXT, *PREQUEST_CONTEXT;
+
+WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(REQUEST_CONTEXT, GetRequestContext)
+
+VOID MbbBusMiniportUsbIdle(PVOID Context);
+
+NTSTATUS
+PreAllocateWriteRequests(WDFUSBDEVICE UsbDevice);
+
+#define IS_USB_DEVICE_REMOTE_WAKE_CAPABLE(deviceInformation) \
+ ((deviceInformation.Traits & WDF_USB_DEVICE_TRAIT_REMOTE_WAKE_CAPABLE) > 0 ? TRUE : FALSE);
diff --git a/network/wwan/cxwmbclass/inc/util.h b/network/wwan/cxwmbclass/inc/util.h
new file mode 100644
index 00000000..12d166b4
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/util.h
@@ -0,0 +1,42 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#pragma once
+typedef enum
+{
+ MbbPoolTagDefault = '0CBM',
+ MbbPoolTagNtbSend = '1CBM',
+ MbbPoolTagNblSend = '2CBM',
+ MbbPoolTagNbSend = '3CBM',
+ MbbPoolTagMdlReceive = '6CBM'
+} MBB_POOL_TAG;
+
+#define ALLOCATE_PAGED_POOL(_y) ExAllocatePool2(POOL_FLAG_PAGED, _y, MbbPoolTagDefault)
+#define ALLOCATE_NONPAGED_POOL(_y) ExAllocatePool2(POOL_FLAG_NON_PAGED, _y, MbbPoolTagDefault)
+#define ALLOCATE_NONPAGED_POOL_WITH_TAG(_x, _y) ExAllocatePool2(POOL_FLAG_NON_PAGED, _x, _y)
+
+#define FREE_POOL(_x) \
+ { \
+ ExFreePool(_x); \
+ _x = NULL; \
+ };
+
+#define MIN(_X_, _Y_) (((_X_) < (_Y_)) ? (_X_) : (_Y_))
+#define MAX(_X_, _Y_) (((_X_) > (_Y_)) ? (_X_) : (_Y_))
+
+#define ALIGN_FLOOR(_VALUE_, _ALIGN_) ALIGN_DOWN_BY(_VALUE_, _ALIGN_)
+#define ALIGN_CIELING(_VALUE_, _ALIGN_) ALIGN_UP_BY(_VALUE_, _ALIGN_)
+#define ALIGN(_VALUE_, _ALIGN_) ALIGN_CIELING(_VALUE_, _ALIGN_)
+#define ALIGN_AT_OFFSET(_VALUE_, _ALIGN_, _OFFSET_) \
+ (((SIZE_T)(_VALUE_) <= (ALIGN_FLOOR(_VALUE_, _ALIGN_) + (_OFFSET_))) ? (ALIGN_FLOOR(_VALUE_, _ALIGN_) + (_OFFSET_)) \
+ : (ALIGN(_VALUE_, _ALIGN_) + (_OFFSET_)))
+
+NTSTATUS
+MbbNtbValidate(_In_ PVOID Nth, _In_ ULONG BufferLength, _In_ BOOLEAN Is32Bit, _Out_opt_ ULONG* NdpCount);
+
+NTSTATUS
+CreateNonPagedWdfMemory(_In_ ULONG ObjectSize, _Out_ WDFMEMORY* WdfMemory, _Out_opt_ PVOID* ObjectMemory, _In_ WDFOBJECT Parent, _In_ ULONG PoolTag);
+
+PMDL AllocateNonPagedMdl(_In_reads_bytes_(Length) PVOID VirtualAddress, _In_ ULONG Length);
+
+VOID MbbRecvCancelNdps(_In_ PWMBCLASS_DEVICE_CONTEXT DeviceContext, _In_ ULONG SessionId);
diff --git a/network/wwan/cxwmbclass/inc/utils.h b/network/wwan/cxwmbclass/inc/utils.h
new file mode 100644
index 00000000..e7d06637
--- /dev/null
+++ b/network/wwan/cxwmbclass/inc/utils.h
@@ -0,0 +1,61 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#pragma once
+NTSTATUS
+SendSyncControlCommand(
+ __in WDFUSBDEVICE WdfUsbDevice,
+ __in WDF_USB_BMREQUEST_DIRECTION Direction,
+ __in WDF_USB_BMREQUEST_RECIPIENT Recipient,
+ __in BYTE Request,
+ __in USHORT Value,
+ __inout_bcount_opt(BufferLength) PUCHAR Buffer,
+ __in ULONG BufferLength,
+ __out_opt PULONG BytesTransfered);
+
+NTSTATUS
+TransactControlChannel(
+ __in PBUS_OBJECT BusObject,
+ __in ULONG TimeOut,
+ __in_bcount_opt(InBufferLength) PUCHAR InBuffer,
+ __in ULONG InBufferLength,
+ __out_bcount_opt(OutBufferLength) PUCHAR OutBuffer,
+ __in ULONG OutBufferLength,
+ __out PULONG BytesRead);
+
+NTSTATUS
+ReadInterrupt(_In_ PBUS_OBJECT BusObject, _Inout_updates_bytes_(BufferLength) PUCHAR Buffer, _In_ ULONG BufferLength, _In_ ULONG Timeout, _Out_ PULONG BytesRead);
+
+NTSTATUS
+GetDeviceString(__in WDFUSBDEVICE UsbDevice, __in UCHAR Index, __out PWSTR* String);
+
+NTSTATUS
+MbbBusSetPacketFilter(__in MBB_BUS_HANDLE BusHandle, __in ULONG PacketFilter);
+
+NTSTATUS
+MbbBusSetNtbInSize(__in MBB_BUS_HANDLE BusHandle, __in ULONG InSize);
+
+NTSTATUS
+MbbBusGetStat(__in MBB_BUS_HANDLE BusHandle, __in USHORT StatIndex, __out ULONGLONG* Value);
+
+NTSTATUS
+MbbBusSetNtbFormat(__in MBB_BUS_HANDLE BusHandle, __in USHORT Format);
+
+NTSTATUS
+MbbBusResetFunction(__in MBB_BUS_HANDLE BusHandle);
+
+ULONG
+ProcessInterruptPipeRead(
+ PBUS_OBJECT BusObject,
+ __in_ecount(NewFragmentLength) PCUCHAR NewFragment,
+ ULONG NewFragmentLength,
+ __out_ecount(MessageBufferSize) PUCHAR CompleteMessageBuffer,
+ ULONG MessageBufferSize);
+
+NTSTATUS
+WaitForResponseAvailible(PBUS_OBJECT BusObject, ULONG TimeOut);
+
+NTSTATUS
+MbbBusResetDeviceAndSetParms(__in PBUS_OBJECT BusObject);
+
+BOOLEAN IsUsbCapDeviceInfoValid(_In_ USB_CAP_DEVICE_INFO UsbCapDeviceInfo, _In_ ULONG CapResultLength);
diff --git a/network/wwan/cxwmbclass/power.cpp b/network/wwan/cxwmbclass/power.cpp
new file mode 100644
index 00000000..e0726975
--- /dev/null
+++ b/network/wwan/cxwmbclass/power.cpp
@@ -0,0 +1,116 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include "precomp.h"
+
+#include "power.h"
+#include "device.h"
+#include "adapter.h"
+
+_Use_decl_annotations_ NTSTATUS EvtDeviceD0Entry(WDFDEVICE Device, WDF_POWER_DEVICE_STATE previousPowerState)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+ UNREFERENCED_PARAMETER(previousPowerState);
+ do
+ {
+ if (MbbBusIsStoped(deviceContext->BusHandle))
+ {
+ //
+ // device was in d3, open it again
+ //
+ status = MbbBusStart(deviceContext->BusHandle);
+
+ if (!NT_SUCCESS(status))
+ {
+ WdfDeviceSetFailed(deviceContext->WdfDevice, WdfDeviceFailedAttemptRestart);
+ break;
+ }
+ }
+ else
+ {
+ MbbBusSetNotificationState(deviceContext->BusHandle, TRUE);
+ }
+ // Allow sessions to receive data from this point since RxQueueCreate happens later after D0Entry. We need cache NDPs receive before RxQueueCreate
+ for (int i = 0; i < MBB_MAX_NUMBER_OF_SESSIONS; i++)
+ {
+ if (deviceContext->Sessions[i].NetAdapterContext == NULL)
+ {
+ continue;
+ }
+ deviceContext->Sessions[i].NetAdapterContext->AllowRxTraffic = TRUE;
+ }
+ MbbBusStartDataPipes(deviceContext->BusHandle);
+ } while (FALSE);
+
+ return status;
+}
+
+_Use_decl_annotations_ NTSTATUS EvtDeviceD0Exit(WDFDEVICE Device, WDF_POWER_DEVICE_STATE TargetPowerState)
+{
+ UNREFERENCED_PARAMETER(TargetPowerState);
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+
+ MbbBusStopDataPipes(deviceContext->BusHandle);
+ //
+ // If the device is not armed for wake, close has been sent by MbbCx. All response available notifications from close in MbbCx to EvtDeviceD0Exit will be ignored.
+ //
+ // If the device is armed for wake, No response available notification after EvtDeviceArmWakeFromS0 where we stop the notification.
+ if (!deviceContext->m_armedWake)
+ {
+ MbbBusStop(deviceContext->BusHandle);
+ }
+ return STATUS_SUCCESS;
+}
+
+_Use_decl_annotations_ NTSTATUS EvtDevicePreviewBitmapPattern(WDFDEVICE Device, NETWAKESOURCE BitmapPattern)
+{
+ // We don't need to look at the pattern itself, only how many we currently have
+ UNREFERENCED_PARAMETER(BitmapPattern);
+
+ NET_WAKE_SOURCE_LIST wakeSourceList;
+ NET_WAKE_SOURCE_LIST_INIT(&wakeSourceList);
+ NetDeviceGetWakeSourceList(Device, &wakeSourceList);
+
+ auto const wakeSourceCount = NetWakeSourceListGetCount(&wakeSourceList);
+ size_t numberOfPowerFilters = 0;
+
+ // Count how many power filters are currently stored for this device
+ for (size_t i = 0; i < wakeSourceCount; i++)
+ {
+ auto wakeSource = NetWakeSourceListGetElement(&wakeSourceList, i);
+ auto const wakeSourceType = NetWakeSourceGetType(wakeSource);
+
+ if (wakeSourceType == NetWakeSourceTypeBitmapPattern)
+ {
+ numberOfPowerFilters++;
+ }
+ }
+
+ auto const deviceContext = WmbClassGetDeviceContext(Device);
+ auto const maxPowerFilters = deviceContext->BusParams.PowerFiltersSupported;
+
+ NT_ASSERT(numberOfPowerFilters <= maxPowerFilters);
+
+ if (numberOfPowerFilters == maxPowerFilters)
+ {
+ return STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL;
+ }
+
+ return STATUS_SUCCESS;
+}
+
+_Use_decl_annotations_ NTSTATUS EvtDeviceArmWakeFromS0(WDFDEVICE Device)
+{
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+ deviceContext->m_armedWake = true;
+ MbbBusSetNotificationState(deviceContext->BusHandle, FALSE);
+ return STATUS_SUCCESS;
+}
+
+_Use_decl_annotations_ VOID EvtDeviceDisarmWakeFromS0(WDFDEVICE Device)
+{
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+ deviceContext->m_armedWake = false;
+}
diff --git a/network/wwan/cxwmbclass/rxqueue.cpp b/network/wwan/cxwmbclass/rxqueue.cpp
new file mode 100644
index 00000000..836201a5
--- /dev/null
+++ b/network/wwan/cxwmbclass/rxqueue.cpp
@@ -0,0 +1,602 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include "precomp.h"
+
+#include "device.h"
+#include "rxqueue.h"
+
+#define MBB_NTH_GET_FIRST_NDP_OFFSET(IS32BIT, NTH) \
+ ((IS32BIT) ? MBB_NTH32_GET_FIRST_NDP_OFFSET((PNCM_NTH32)NTH) : MBB_NTH16_GET_FIRST_NDP_OFFSET((PNCM_NTH16)NTH))
+
+void MbbNotifyRxReady(_In_ NETPACKETQUEUE RxQueue)
+{
+ PMBB_RXQUEUE_CONTEXT rxQueueContext = MbbGetRxQueueContext(RxQueue);
+ if (InterlockedExchange(&rxQueueContext->NotificationEnabled, FALSE) == TRUE)
+ {
+ NetRxQueueNotifyMoreReceivedPacketsAvailable(RxQueue);
+ }
+}
+
+VOID MbbRecvCleanup(_In_ PMBB_NDIS_RECEIVE_CONTEXT Receive)
+{
+ MbbBusReturnReceiveBuffer(Receive->BusHandle, Receive->BusContext, Receive->Mdl);
+
+ WdfObjectDelete(Receive->ReceiveLookasideBufferMemory);
+}
+
+VOID MbbRecvReturnNdp(_In_ PMBB_NDIS_RECEIVE_CONTEXT ReceiveContext, _In_opt_ PMBB_RECEIVE_NDP_CONTEXT ReceiveNdpContext)
+{
+ LONG newCompletedCount = InterlockedIncrement(&ReceiveContext->CompletedNdpCount);
+ if (newCompletedCount == ReceiveContext->TotalNdpCount)
+ {
+ MbbRecvCleanup(ReceiveContext);
+ }
+ if (ReceiveNdpContext != NULL)
+ {
+ WdfObjectDelete(ReceiveNdpContext->ReceiveNdpLookasideBufferMemory);
+ }
+}
+
+_Use_decl_annotations_ VOID MbbRecvCancelNdps(PWMBCLASS_DEVICE_CONTEXT DeviceContext, ULONG SessionId)
+{
+ LIST_ENTRY tempList;
+ PLIST_ENTRY listEntry;
+ PLIST_ENTRY nextEntry;
+ PMBB_RECEIVE_NDP_CONTEXT receiveNdpContext = NULL;
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = DeviceContext->Sessions[SessionId].NetAdapterContext;
+
+ InitializeListHead(&tempList);
+
+ WdfSpinLockAcquire(DeviceContext->Sessions[SessionId].WdfRecvSpinLock);
+ InsertHeadList(&netAdapterContext->ReceiveNdpList, &tempList);
+ RemoveEntryList(&netAdapterContext->ReceiveNdpList);
+ InitializeListHead(&netAdapterContext->ReceiveNdpList);
+ // Cannot cache the received Ndps anymore
+ netAdapterContext->AllowRxTraffic = FALSE;
+ WdfSpinLockRelease(DeviceContext->Sessions[SessionId].WdfRecvSpinLock);
+
+ for (listEntry = tempList.Flink; listEntry != &tempList; listEntry = nextEntry)
+ {
+ nextEntry = listEntry->Flink;
+ receiveNdpContext = CONTAINING_RECORD(listEntry, MBB_RECEIVE_NDP_CONTEXT, ReceiveNdpNode);
+ MbbRecvReturnNdp(receiveNdpContext->ReceiveContext, receiveNdpContext);
+ }
+}
+
+void MbbReceiveDssData(__in PWMBCLASS_DEVICE_CONTEXT DeviceContext, __in ULONG SessionId, __in_bcount_opt(InBufferSize) PUCHAR InBuffer, __in ULONG InBufferSize)
+{
+ NTSTATUS status;
+ WDFMEMORY data;
+
+ status = WdfMemoryCreatePreallocated(WDF_NO_OBJECT_ATTRIBUTES, InBuffer, InBufferSize, &data);
+
+ if (NT_SUCCESS(status))
+ {
+ DeviceContext->DSSPacketsReceivedCount++;
+
+ MbbDeviceReceiveDeviceServiceSessionData(DeviceContext->WdfDevice, SessionId, data);
+ WdfObjectDelete(data);
+ }
+}
+
+NTSTATUS
+MbbRecvNdpUnpackDss32(_In_ PMBB_NDIS_RECEIVE_CONTEXT ReceiveContext, _In_ PNCM_NTH32 Nth, _In_ PNCM_NDP32 Ndp)
+{
+ UNREFERENCED_PARAMETER(Nth);
+ NTSTATUS status = STATUS_SUCCESS;
+ ULONG datagramCount = MBB_NDP32_GET_DATAGRAM_COUNT(Ndp);
+ ULONG sessionId = MBB_NDP32_GET_SESSIONID(Ndp);
+ for (ULONG index = 0; index < datagramCount; index++)
+ {
+ if (MBB_NTB32_IS_END_DATAGRAM(Nth, Ndp, index))
+ break;
+
+ // Forward to the dss receive handler
+ MbbReceiveDssData(
+ ReceiveContext->WmbDeviceContext, sessionId, (PUCHAR)MBB_NDP32_GET_DATAGRAM(Nth, Ndp, index), MBB_NDP32_GET_DATAGRAM_LENGTH(Ndp, index));
+ }
+
+ MbbRecvReturnNdp(ReceiveContext, NULL);
+ return status;
+}
+
+NTSTATUS
+MbbRecvNdpUnpackDss16(_In_ PMBB_NDIS_RECEIVE_CONTEXT ReceiveContext, _In_ PNCM_NTH16 Nth, _In_ PNCM_NDP16 Ndp)
+{
+ UNREFERENCED_PARAMETER(Nth);
+ NTSTATUS status = STATUS_SUCCESS;
+ ULONG datagramCount = MBB_NDP16_GET_DATAGRAM_COUNT(Ndp);
+ ULONG sessionId = MBB_NDP16_GET_SESSIONID(Ndp);
+ for (ULONG index = 0; index < datagramCount; index++)
+ {
+ if (MBB_NTB16_IS_END_DATAGRAM(Nth, Ndp, index))
+ break;
+
+ // Forward to the dss receive handler
+ MbbReceiveDssData(
+ ReceiveContext->WmbDeviceContext, sessionId, (PUCHAR)MBB_NDP16_GET_DATAGRAM(Nth, Ndp, index), MBB_NDP16_GET_DATAGRAM_LENGTH(Ndp, index));
+ }
+ MbbRecvReturnNdp(ReceiveContext, NULL);
+ return status;
+}
+
+NTSTATUS
+MbbRecvAddNdp(_In_ PMBB_NDIS_RECEIVE_CONTEXT ReceiveContext, _In_ PVOID Nth, _In_ PVOID Ndp, _In_ ULONG SessionId)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = ReceiveContext->WmbDeviceContext;
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = NULL;
+ WDFMEMORY ndpContextMemory;
+ PMBB_RECEIVE_NDP_CONTEXT ndpContext = NULL;
+ size_t ndpContextSize;
+ BOOLEAN returnNdp = FALSE;
+
+ WdfSpinLockAcquire(deviceContext->Sessions[SessionId].WdfRecvSpinLock);
+ do
+ {
+ netAdapterContext = deviceContext->Sessions[SessionId].NetAdapterContext;
+ if (netAdapterContext == NULL)
+ {
+ returnNdp = TRUE;
+ break;
+ }
+
+ if (!NT_SUCCESS(status = WdfMemoryCreateFromLookaside(netAdapterContext->ReceiveNdpLookasideList, &ndpContextMemory)))
+ {
+ returnNdp = TRUE;
+ break;
+ }
+
+ ndpContext = (PMBB_RECEIVE_NDP_CONTEXT)WdfMemoryGetBuffer(ndpContextMemory, &ndpContextSize);
+ RtlZeroMemory(ndpContext, ndpContextSize);
+ ndpContext->Nth = Nth;
+ ndpContext->Ndp = Ndp;
+ ndpContext->ReceiveContext = ReceiveContext;
+ ndpContext->ReceiveNdpLookasideBufferMemory = ndpContextMemory;
+ ndpContext->NetAdapterContext = netAdapterContext;
+ if (netAdapterContext->AllowRxTraffic)
+ {
+ InsertTailList(&netAdapterContext->ReceiveNdpList, &ndpContext->ReceiveNdpNode);
+ }
+ else
+ {
+ returnNdp = TRUE;
+ break;
+ }
+
+ // If RxQueueCreate hasn't completed yet, we only queue the received Ndp and don't need notify RxReady
+ if (netAdapterContext->RxQueue)
+ {
+ MbbNotifyRxReady(netAdapterContext->RxQueue);
+ }
+ } while (FALSE);
+ WdfSpinLockRelease(deviceContext->Sessions[SessionId].WdfRecvSpinLock);
+
+ if (returnNdp)
+ {
+ MbbRecvReturnNdp(ReceiveContext, ndpContext);
+ }
+ return status;
+}
+
+VOID MbbRecvNtbParse(_In_ PMBB_NDIS_RECEIVE_CONTEXT ReceiveContext)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PNCM_NTH32 nth32;
+ PNCM_NTH16 nth16;
+ PNCM_NDP32 ndp32;
+ PNCM_NDP16 ndp16;
+ PVOID nth = ReceiveContext->ReceiveNtbBuffer;
+
+ if (MBB_NTB_IS_32BIT(nth))
+ {
+ nth32 = (PNCM_NTH32)nth;
+ for (ndp32 = MBB_NTH32_GET_FIRST_NDP(nth32); ndp32 != NULL; ndp32 = MBB_NDP32_GET_NEXT_NDP(nth32, ndp32))
+ {
+ if (MBB_NDP32_GET_SIGNATURE_TYPE(ndp32) == NCM_NDP32_VENDOR)
+ {
+ status = MbbRecvNdpUnpackDss32(ReceiveContext, nth32, ndp32);
+ if (!NT_SUCCESS(status))
+ {
+ }
+ }
+ else if (MBB_NDP32_GET_SIGNATURE_TYPE(ndp32) == NCM_NDP32_IPS)
+ {
+ status = MbbRecvAddNdp(ReceiveContext, nth32, ndp32, MBB_NDP32_GET_SESSIONID(ndp32));
+ if (!NT_SUCCESS(status))
+ {
+ }
+ }
+ else
+ {
+ MbbRecvReturnNdp(ReceiveContext, NULL);
+ }
+ }
+ }
+ else if (MBB_NTB_IS_16BIT(nth))
+ {
+ nth16 = (PNCM_NTH16)nth;
+ for (ndp16 = MBB_NTH16_GET_FIRST_NDP(nth16); ndp16 != NULL; ndp16 = MBB_NDP16_GET_NEXT_NDP(nth16, ndp16))
+ {
+ if (MBB_NDP16_GET_SIGNATURE_TYPE(ndp16) == NCM_NDP16_VENDOR)
+ {
+ status = MbbRecvNdpUnpackDss16(ReceiveContext, nth16, ndp16);
+ if (!NT_SUCCESS(status))
+ {
+ }
+ }
+ else if (MBB_NDP16_GET_SIGNATURE_TYPE(ndp16) == NCM_NDP16_IPS)
+ {
+ status = MbbRecvAddNdp(ReceiveContext, nth16, ndp16, MBB_NDP32_GET_SESSIONID(ndp16));
+ if (!NT_SUCCESS(status))
+ {
+ }
+ }
+ else
+ {
+ MbbRecvReturnNdp(ReceiveContext, NULL);
+ }
+ }
+ }
+}
+
+NTSTATUS
+MbbRecvNtbUnpackIpNdp32(_In_ PMBB_RECEIVE_NDP_CONTEXT ReceiveNdpContext, _In_ PNCM_NTH32 Nth32, _In_ PNCM_NDP32 Ndp32, _Inout_ ULONG* IncompletedDatagramIndex, _In_ PMBB_RXQUEUE_CONTEXT RxQueueContext)
+{
+ PCHAR incompletedDatagram;
+ ULONG incompletedDatagramLength;
+ NET_PACKET* packet;
+ NET_FRAGMENT* fragment;
+ NET_FRAGMENT_RETURN_CONTEXT* returnContext;
+ NET_FRAGMENT_VIRTUAL_ADDRESS* virtualAddress;
+ NTSTATUS status = STATUS_SUCCESS;
+ ULONG datagramCount = MBB_NDP32_GET_DATAGRAM_COUNT(Ndp32);
+
+ NET_RING * pr = NetRingCollectionGetPacketRing(RxQueueContext->DatapathDescriptor);
+ NET_RING * fr = NetRingCollectionGetFragmentRing(RxQueueContext->DatapathDescriptor);
+
+ while ((incompletedDatagram = MBB_NDP32_GET_DATAGRAM(Nth32, Ndp32, *IncompletedDatagramIndex)) != NULL)
+ {
+ if (*IncompletedDatagramIndex >= datagramCount)
+ {
+ break;
+ }
+
+ if (fr->BeginIndex == fr->EndIndex)
+ {
+ status = STATUS_BUFFER_OVERFLOW;
+ break;
+ }
+
+ incompletedDatagramLength = MBB_NDP32_GET_DATAGRAM_LENGTH(Ndp32, *IncompletedDatagramIndex);
+
+ UINT32 const fragmentIndex = fr->BeginIndex;
+ fragment = NetRingGetFragmentAtIndex(fr, fragmentIndex);
+ fragment->Capacity = incompletedDatagramLength;
+ fragment->ValidLength = incompletedDatagramLength;
+ fragment->Offset = 0;
+
+ returnContext = NetExtensionGetFragmentReturnContext(&RxQueueContext->ReturnContextExtension, fragmentIndex);
+ virtualAddress =
+ NetExtensionGetFragmentVirtualAddress(&RxQueueContext->VirtualAddressExtension, fragmentIndex);
+
+
+ returnContext->Handle = (NET_FRAGMENT_RETURN_CONTEXT_HANDLE)ReceiveNdpContext;
+ virtualAddress->VirtualAddress = incompletedDatagram;
+
+ (ReceiveNdpContext->IndicatedPackets)++;
+ (*IncompletedDatagramIndex)++;
+
+ UINT32 const packetIndex = pr->BeginIndex;
+ packet = NetRingGetPacketAtIndex(pr, packetIndex);
+ packet->FragmentIndex = fragmentIndex;
+ packet->FragmentCount = 1;
+ packet->Layout = {};
+
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+ fr->BeginIndex = NetRingIncrementIndex(fr, fr->BeginIndex);
+ }
+ return status;
+}
+
+NTSTATUS
+MbbRecvNtbUnpackIpNdp16(_In_ PMBB_RECEIVE_NDP_CONTEXT ReceiveNdpContext, _In_ PNCM_NTH16 Nth16, _In_ PNCM_NDP16 Ndp16, _Inout_ ULONG* IncompletedDatagramIndex, _In_ PMBB_RXQUEUE_CONTEXT RxQueueContext)
+{
+ PCHAR incompletedDatagram;
+ ULONG incompletedDatagramLength;
+ NET_PACKET* packet;
+ NET_FRAGMENT* fragment;
+ NET_FRAGMENT_RETURN_CONTEXT* returnContext;
+ NET_FRAGMENT_VIRTUAL_ADDRESS* virtualAddress;
+ NTSTATUS status = STATUS_SUCCESS;
+ ULONG datagramCount = MBB_NDP16_GET_DATAGRAM_COUNT(Ndp16);
+
+ NET_RING * pr = NetRingCollectionGetPacketRing(RxQueueContext->DatapathDescriptor);
+ NET_RING * fr = NetRingCollectionGetFragmentRing(RxQueueContext->DatapathDescriptor);
+
+ while ((incompletedDatagram = MBB_NDP16_GET_DATAGRAM(Nth16, Ndp16, *IncompletedDatagramIndex)) != NULL)
+ {
+ if (*IncompletedDatagramIndex >= datagramCount)
+ {
+ break;
+ }
+
+ if (fr->BeginIndex == fr->EndIndex)
+ {
+ status = STATUS_BUFFER_OVERFLOW;
+ break;
+ }
+
+ incompletedDatagramLength = MBB_NDP16_GET_DATAGRAM_LENGTH(Ndp16, *IncompletedDatagramIndex);
+
+ UINT32 const fragmentIndex = fr->BeginIndex;
+ fragment = NetRingGetFragmentAtIndex(fr, fragmentIndex);
+ fragment->Capacity = incompletedDatagramLength;
+ fragment->ValidLength = incompletedDatagramLength;
+ fragment->Offset = 0;
+
+ returnContext = NetExtensionGetFragmentReturnContext(&RxQueueContext->ReturnContextExtension, fragmentIndex);
+ virtualAddress =
+ NetExtensionGetFragmentVirtualAddress(&RxQueueContext->VirtualAddressExtension, fragmentIndex);
+
+ returnContext->Handle = (NET_FRAGMENT_RETURN_CONTEXT_HANDLE)ReceiveNdpContext;
+ virtualAddress->VirtualAddress = incompletedDatagram;
+
+ (ReceiveNdpContext->IndicatedPackets)++;
+ (*IncompletedDatagramIndex)++;
+
+ UINT32 const packetIndex = pr->BeginIndex;
+ packet = NetRingGetPacketAtIndex(pr, packetIndex);
+ packet->FragmentIndex = fragmentIndex;
+ packet->FragmentCount = 1;
+ packet->Layout = {};
+
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+ fr->BeginIndex = NetRingIncrementIndex(fr, fr->BeginIndex);
+ }
+
+ return status;
+}
+
+NTSTATUS
+MbbRecvNdpUnpackIps(_In_ PMBB_RECEIVE_NDP_CONTEXT ReceiveNdpContext, _In_ PMBB_RXQUEUE_CONTEXT RxQueueContext)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PNCM_NTH32 nth32;
+ PNCM_NTH16 nth16;
+ PNCM_NDP32 ndp32;
+ PNCM_NDP16 ndp16;
+ PMBB_NDIS_RECEIVE_CONTEXT receiveContext = ReceiveNdpContext->ReceiveContext;
+ PVOID nth = receiveContext->ReceiveNtbBuffer;
+
+ if (MBB_NTB_IS_32BIT(nth))
+ {
+ nth32 = (PNCM_NTH32)nth;
+ ndp32 = (PNCM_NDP32)ReceiveNdpContext->Ndp;
+ status = MbbRecvNtbUnpackIpNdp32(ReceiveNdpContext, nth32, ndp32, &ReceiveNdpContext->CurrentDatagramIndex, RxQueueContext);
+ }
+ else if (MBB_NTB_IS_16BIT(nth))
+ {
+ nth16 = (PNCM_NTH16)nth;
+ ndp16 = (PNCM_NDP16)ReceiveNdpContext->Ndp;
+ status = MbbRecvNtbUnpackIpNdp16(ReceiveNdpContext, nth16, ndp16, &ReceiveNdpContext->CurrentDatagramIndex, RxQueueContext);
+ }
+
+ return status;
+}
+
+PMBB_NDIS_RECEIVE_CONTEXT
+MbbRecvQQueueReceive(_In_ PWMBCLASS_DEVICE_CONTEXT DeviceContext, _In_ MBB_RECEIVE_CONTEXT BusContext, _In_ PMDL Mdl, _In_reads_(sizeof(NCM_NTH32)) PUCHAR ReceiveNtbBuffer)
+{
+ PMBB_NDIS_RECEIVE_CONTEXT receiveContext = NULL;
+ WDFMEMORY receiveContextMemory;
+ size_t receiveContextSize;
+ NTSTATUS status = STATUS_SUCCESS;
+
+ do
+ {
+ if (!NT_SUCCESS(status = WdfMemoryCreateFromLookaside(DeviceContext->ReceiveLookasideList, &receiveContextMemory)))
+ {
+ break;
+ }
+
+ receiveContext = (PMBB_NDIS_RECEIVE_CONTEXT)WdfMemoryGetBuffer(receiveContextMemory, &receiveContextSize);
+ RtlZeroMemory(receiveContext, receiveContextSize);
+
+ receiveContext->Mdl = Mdl;
+ receiveContext->WmbDeviceContext = DeviceContext;
+ receiveContext->BusHandle = DeviceContext->BusHandle;
+ receiveContext->BusContext = BusContext;
+ receiveContext->ReceiveLookasideList = DeviceContext->ReceiveLookasideList;
+ receiveContext->ReceiveLookasideBufferMemory = receiveContextMemory;
+ receiveContext->ReceiveNtbBuffer = ReceiveNtbBuffer;
+ receiveContext->NtbSequence = MBB_NTB_GET_SEQUENCE(ReceiveNtbBuffer);
+ } while (FALSE);
+
+ return receiveContext;
+}
+
+VOID MbbNdisReceiveCallback(_In_ MBB_PROTOCOL_HANDLE ProtocolHandle, _In_ MBB_RECEIVE_CONTEXT ReceiveContext, _In_ PMDL Mdl)
+{
+ PUCHAR dataBuffer;
+ ULONG dataLength;
+ PVOID nth;
+ BOOLEAN returnBuffer = TRUE;
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = (PWMBCLASS_DEVICE_CONTEXT)ProtocolHandle;
+ PMBB_NDIS_RECEIVE_CONTEXT receive = NULL;
+ ULONG ndpCount = 1;
+ NTSTATUS status = STATUS_SUCCESS;
+ do
+ {
+ if ((dataBuffer = (PUCHAR)MmGetSystemAddressForMdlSafe(Mdl, NormalPagePriority | MdlMappingNoExecute)) == NULL)
+ {
+ status = STATUS_RESOURCE_DATA_NOT_FOUND;
+ break;
+ }
+ dataLength = MmGetMdlByteCount(Mdl);
+
+ nth = dataBuffer;
+
+ if (!NT_SUCCESS(status = MbbNtbValidate(nth, dataLength, deviceContext->BusParams.CurrentMode32Bit, &ndpCount)))
+ {
+ {
+ ULONG i;
+ ULONG j;
+
+ PUCHAR buffer = (PUCHAR)nth;
+
+ for (i = 0; i < dataLength; i += 16)
+ {
+ UCHAR numString[16 * 3 + 1];
+ UCHAR asciiBuffer[40];
+ UCHAR value = 0;
+ const char translateTable[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+
+ RtlZeroMemory(numString, sizeof(numString));
+ RtlZeroMemory(asciiBuffer, sizeof(asciiBuffer));
+
+ for (j = 0; j < 16; j++)
+ {
+ if (i + j >= dataLength)
+ {
+ //
+ // past the end, just put spaces
+ //
+ numString[j * 3] = ' ';
+ numString[j * 3 + 1] = ' ';
+ numString[j * 3 + 2] = ' ';
+ }
+ else
+ {
+ value = buffer[i + j];
+
+ numString[j * 3] = translateTable[value >> 4];
+ numString[j * 3 + 1] = translateTable[value & 0xf];
+ numString[j * 3 + 2] = ' ';
+
+ if ((buffer[i + j] >= 32) && (buffer[i + j] < 128))
+ {
+ asciiBuffer[j] = value;
+ }
+ else
+ {
+ asciiBuffer[j] = '.';
+ }
+ }
+ }
+ }
+ }
+ break;
+ }
+
+ if ((receive = MbbRecvQQueueReceive(deviceContext, ReceiveContext, Mdl, (PUCHAR)nth)) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+
+ returnBuffer = FALSE;
+ receive->TotalNdpCount = ndpCount;
+
+ // Receive DSS, IPs will be received in EvtRxQueueAdvance
+ MbbRecvNtbParse(receive);
+ } while (FALSE);
+
+ if (returnBuffer)
+ {
+ if (receive != NULL)
+ {
+ MbbRecvCleanup(receive);
+ }
+ else
+ {
+ MbbBusReturnReceiveBuffer(deviceContext->BusHandle, ReceiveContext, Mdl);
+ }
+ }
+}
+
+void EvtRxQueueDestroy(_In_ WDFOBJECT RxQueue)
+{
+ PMBB_RXQUEUE_CONTEXT rxQueueContext = MbbGetRxQueueContext(RxQueue);
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = rxQueueContext->NetAdapterContext;
+ netAdapterContext->RxQueue = NULL;
+}
+
+VOID EvtRxQueueSetNotificationEnabled(_In_ NETPACKETQUEUE RxQueue, _In_ BOOLEAN NotificationEnabled)
+{
+ PMBB_RXQUEUE_CONTEXT txQueueContext = MbbGetRxQueueContext(RxQueue);
+ InterlockedExchange(&txQueueContext->NotificationEnabled, NotificationEnabled);
+}
+
+void EvtRxQueueAdvance(_In_ NETPACKETQUEUE RxQueue)
+{
+ PMBB_RXQUEUE_CONTEXT rxQueueContext = MbbGetRxQueueContext(RxQueue);
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = rxQueueContext->NetAdapterContext;
+ WDFSPINLOCK wdfRecvSpinLock = netAdapterContext->WmbDeviceContext->Sessions[netAdapterContext->SessionId].WdfRecvSpinLock;
+ PMBB_RECEIVE_NDP_CONTEXT receiveNdpContext;
+ NTSTATUS status = STATUS_SUCCESS;
+
+ WdfSpinLockAcquire(wdfRecvSpinLock);
+ while (!IsListEmpty(&netAdapterContext->ReceiveNdpList))
+ {
+ receiveNdpContext = CONTAINING_RECORD(RemoveHeadList(&netAdapterContext->ReceiveNdpList), MBB_RECEIVE_NDP_CONTEXT, ReceiveNdpNode);
+ receiveNdpContext->ReceiveNdpNode.Flink = receiveNdpContext->ReceiveNdpNode.Blink = NULL;
+ WdfSpinLockRelease(wdfRecvSpinLock);
+
+ status = MbbRecvNdpUnpackIps(receiveNdpContext, rxQueueContext);
+ if (status == STATUS_BUFFER_OVERFLOW)
+ {
+ WdfSpinLockAcquire(wdfRecvSpinLock);
+ InsertHeadList(&netAdapterContext->ReceiveNdpList, &receiveNdpContext->ReceiveNdpNode);
+ break;
+ }
+ else
+ {
+ if (!NT_SUCCESS(status))
+ {
+ }
+ }
+
+ WdfSpinLockAcquire(wdfRecvSpinLock);
+ }
+ WdfSpinLockRelease(wdfRecvSpinLock);
+}
+
+void EvtRxQueueCancel(_In_ NETPACKETQUEUE RxQueue)
+{
+ PMBB_RXQUEUE_CONTEXT rxQueueContext = MbbGetRxQueueContext(RxQueue);
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = rxQueueContext->NetAdapterContext;
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = netAdapterContext->WmbDeviceContext;
+ NET_RING_COLLECTION const* rings = rxQueueContext->DatapathDescriptor;
+
+ NET_RING * pr = NetRingCollectionGetPacketRing(rings);
+
+ while (pr->BeginIndex != pr->EndIndex)
+ {
+ NET_PACKET * packet = NetRingGetPacketAtIndex(pr, pr->BeginIndex);
+ packet->Ignore = 1;
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+ }
+
+ NET_RING * fr = NetRingCollectionGetFragmentRing(rings);
+ fr->BeginIndex = fr->EndIndex;
+
+ // Cancel received Ndps which may be received after EvtRxQueueCancel started, these Ndps may never be processed by EvtRxQueueAdvance
+ MbbRecvCancelNdps(deviceContext, netAdapterContext->SessionId);
+}
+
+VOID EvtAdapterReturnRxBuffer(_In_ NETADAPTER Adapter, _In_ NET_FRAGMENT_RETURN_CONTEXT_HANDLE RxBufferReturnContext)
+{
+ PMBB_RECEIVE_NDP_CONTEXT receiveNdpContext = (PMBB_RECEIVE_NDP_CONTEXT)RxBufferReturnContext;
+ UNREFERENCED_PARAMETER(Adapter);
+ NT_ASSERT(receiveNdpContext->IndicatedPackets);
+
+ receiveNdpContext->IndicatedPackets--;
+ if ((receiveNdpContext->IndicatedPackets == 0) && (receiveNdpContext->ReceiveNdpNode.Blink == NULL) &&
+ (receiveNdpContext->ReceiveNdpNode.Flink == NULL))
+ {
+ MbbRecvReturnNdp(receiveNdpContext->ReceiveContext, receiveNdpContext);
+ }
+}
diff --git a/network/wwan/cxwmbclass/txqueue.cpp b/network/wwan/cxwmbclass/txqueue.cpp
new file mode 100644
index 00000000..9708b8b2
--- /dev/null
+++ b/network/wwan/cxwmbclass/txqueue.cpp
@@ -0,0 +1,988 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+
+#include "precomp.h"
+
+#include "device.h"
+#include "txqueue.h"
+
+void MbbNotifyTxReady(_In_ NETPACKETQUEUE TxQueue)
+{
+ PMBB_TXQUEUE_CONTEXT txQueueContext = MbbGetTxQueueContext(TxQueue);
+
+ if (InterlockedExchange(&txQueueContext->NotificationEnabled, FALSE) == TRUE)
+ {
+ NetTxQueueNotifyMoreCompletedPacketsAvailable(TxQueue);
+ }
+}
+
+ULONG
+MbbGetNetPacketDataLength(_In_ NET_PACKET* NetPacket, _In_ NET_RING_COLLECTION const* Rings)
+{
+ ULONG length = 0;
+ auto fr = NetRingCollectionGetFragmentRing(Rings);
+ for (UINT32 i = 0; i < NetPacket->FragmentCount; i++)
+ {
+ auto fragment = NetRingGetFragmentAtIndex(fr, (NetPacket->FragmentIndex + i) & fr->ElementIndexMask);
+ length += static_cast<ULONG>(fragment->ValidLength);
+ }
+
+ return length;
+}
+
+VOID MbbPacketRestoreMdl(_In_ PMBB_PACKET_CONTEXT PacketContext)
+{
+ if (PacketContext->ModifiedMdl != NULL)
+ {
+ *PacketContext->ModifiedMdl = PacketContext->OriginalMdl;
+ PacketContext->ModifiedMdl = NULL;
+ }
+}
+
+VOID MbbPacketCleanupContext(_In_ PMBB_PACKET_CONTEXT PacketContext)
+{
+ MbbPacketRestoreMdl(PacketContext);
+ if (PacketContext->PaddingMdl != NULL)
+ {
+ IoFreeMdl(PacketContext->PaddingMdl);
+ PacketContext->PaddingMdl = NULL;
+ }
+ if (PacketContext->DataEndMdl != NULL)
+ {
+ IoFreeMdl(PacketContext->DataEndMdl);
+ PacketContext->DataEndMdl = NULL;
+ }
+ if (PacketContext->DataStartMdl != NULL)
+ {
+ IoFreeMdl(PacketContext->DataStartMdl);
+ PacketContext->DataStartMdl = NULL;
+ }
+}
+
+FORCEINLINE
+PMDL MbbPacketGetFirstMdl(_In_ PMBB_PACKET_CONTEXT PacketContext)
+{
+ if (PacketContext->PaddingMdl != NULL)
+ return PacketContext->PaddingMdl;
+ else
+ return PacketContext->DataStartMdl;
+}
+
+FORCEINLINE
+PMDL MbbPacketGetLastMdl(_In_ PMBB_PACKET_CONTEXT PacketContext)
+{
+ if (PacketContext->DataEndMdl != NULL)
+ return PacketContext->DataEndMdl;
+ else
+ return PacketContext->DataStartMdl;
+}
+
+VOID MbbPacketSaveAndSetMdl(_In_ PMBB_PACKET_CONTEXT PacketContext, _In_ PMDL MdlToSave, _In_ PMDL MdlToSet)
+{
+ if (PacketContext->ModifiedMdl == NULL)
+ {
+ PacketContext->ModifiedMdl = MdlToSave;
+ PacketContext->OriginalMdl = *MdlToSave;
+ }
+ *MdlToSave = *MdlToSet;
+}
+
+VOID MbbCleanupDssPacket(_In_ PDSS_PACKET Packet)
+{
+ if (Packet->Mdl != NULL)
+ {
+ IoFreeMdl(Packet->Mdl);
+ }
+ if (Packet != NULL)
+ {
+ FREE_POOL(Packet);
+ }
+}
+
+VOID MbbNtbCleanupContext(_In_ PMBB_NTB_BUILD_CONTEXT NtbContext, _In_ NTSTATUS NtStatus)
+{
+ ULONG DatagramIndex;
+ BOOLEAN NeedReturnCompletedPackets = FALSE;
+
+ for (DatagramIndex = 0; DatagramIndex < NtbContext->DatagramCount; DatagramIndex++)
+ {
+ MbbPacketCleanupContext(&NtbContext->NdpDatagramEntries[DatagramIndex].NetPacketContext);
+ if (NtbContext->NdpDatagramEntries[DatagramIndex].NdpType == MbbNdpTypeIps)
+ {
+ NtbContext->NdpDatagramEntries[DatagramIndex].NetPacket->Scratch = 1;
+ NeedReturnCompletedPackets = TRUE;
+ }
+ else if (NtbContext->NdpDatagramEntries[DatagramIndex].NdpType == MbbNdpTypeVendor_1)
+ {
+ MbbDeviceSendDeviceServiceSessionDataComplete(NtbContext->NdpDatagramEntries[DatagramIndex].DssPacket->Data, NtStatus);
+
+ MbbCleanupDssPacket(NtbContext->NdpDatagramEntries[DatagramIndex].DssPacket);
+ }
+ }
+ if (NtbContext->NdpMdl != NULL)
+ {
+ IoFreeMdl(NtbContext->NdpMdl);
+ }
+ if (NtbContext->NthMdl != NULL)
+ {
+ IoFreeMdl(NtbContext->NthMdl);
+ }
+ if (NtbContext->NdpBufferMemory != NULL)
+ {
+ WdfObjectDelete(NtbContext->NdpBufferMemory);
+ }
+#if DBG
+ if (NtbContext->ScratchBuffer != NULL)
+ {
+ FREE_POOL(NtbContext->ScratchBuffer);
+ }
+#endif
+ if (NeedReturnCompletedPackets)
+ {
+ MbbNotifyTxReady(NtbContext->NetTxQueue);
+ }
+ WdfObjectDelete(NtbContext->NtbLookasideBufferMemory);
+}
+
+FORCEINLINE
+ULONG
+MbbSendQGetNtbSequence(_In_ PWMBCLASS_DEVICE_CONTEXT DeviceContext)
+{
+ return InterlockedIncrement(&DeviceContext->NtbSequenceNumber);
+}
+
+PMBB_NTB_BUILD_CONTEXT
+MbbNtbAllocateContext(_In_ WDFLOOKASIDE NtbLookasideList, _In_ PMBB_BUS_PARAMETERS BusParams, _In_ PVOID PaddingBuffer, _In_ ULONG NtbSequence)
+{
+ NTSTATUS status = NDIS_STATUS_SUCCESS;
+ size_t ntbSize;
+ PMBB_NTB_BUILD_CONTEXT ntbContext = NULL;
+ WDFMEMORY ntbContextMemory;
+
+ do
+ {
+#pragma prefast(suppress \
+ : __WARNING_MEMORY_LEAK, "By Design: Allocate ntb context from lookaside pool, released when send completes.")
+ if (!NT_SUCCESS(status = WdfMemoryCreateFromLookaside(NtbLookasideList, &ntbContextMemory)))
+ {
+ break;
+ }
+
+ ntbContext = (PMBB_NTB_BUILD_CONTEXT)WdfMemoryGetBuffer(ntbContextMemory, &ntbSize);
+ RtlZeroMemory(ntbContext, ntbSize);
+ ntbContext->PaddingBuffer = PaddingBuffer;
+ ntbContext->NtbLookasideList = NtbLookasideList;
+ ntbContext->NtbLookasideBufferMemory = ntbContextMemory;
+
+#if DBG
+ ntbContext->ScratchLength = BusParams->MaxOutNtb;
+ if ((ntbContext->ScratchBuffer = (PCHAR)ALLOCATE_NONPAGED_POOL(ntbContext->ScratchLength)) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+#endif
+ //
+ // Initialize the NTH and the NTH MDL.
+ //
+ if ((ntbContext->IsNtb32Bit = BusParams->CurrentMode32Bit) == TRUE)
+ {
+ if ((ntbContext->NthMdl = AllocateNonPagedMdl(&ntbContext->Nth32, sizeof(ntbContext->Nth32))) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+ ntbContext->Nth32.dwSignature = NCM_NTH32_SIG;
+ ntbContext->Nth32.wHeaderLength = sizeof(NCM_NTH32);
+ ntbContext->Nth32.wSequence = (USHORT)NtbSequence;
+
+ ntbContext->NtbHeaderSize = sizeof(NCM_NTH32);
+ ntbContext->NdpHeaderFixedSize = sizeof(NCM_NDP32);
+ ntbContext->NdpDatagramEntrySize = sizeof(NCM_NDP32_DATAGRAM);
+ }
+ else
+ {
+ if ((ntbContext->NthMdl = AllocateNonPagedMdl(&ntbContext->Nth16, sizeof(ntbContext->Nth16))) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+ ntbContext->Nth16.dwSignature = NCM_NTH16_SIG;
+ ntbContext->Nth16.wHeaderLength = sizeof(NCM_NTH16);
+ ntbContext->Nth16.wSequence = (USHORT)NtbSequence;
+
+ ntbContext->NtbHeaderSize = sizeof(NCM_NTH16);
+ ntbContext->NdpHeaderFixedSize = sizeof(NCM_NDP16);
+ ntbContext->NdpDatagramEntrySize = sizeof(NCM_NDP16_DATAGRAM);
+ }
+
+ ntbContext->NtbOutMaxSize = BusParams->MaxOutNtb;
+ ntbContext->NtbOutMaxDatagrams = BusParams->MaxOutDatagrams;
+ ntbContext->NdpOutDivisor = BusParams->NdpOutDivisor;
+ ntbContext->NdpOutPayloadRemainder = BusParams->NdpOutRemainder;
+ ntbContext->NdpOutAlignment = BusParams->NdpOutAlignment;
+ } while (FALSE);
+
+ if (!NT_SUCCESS(status))
+ {
+ if (ntbContext != NULL)
+ {
+ MbbNtbCleanupContext(ntbContext, status);
+ }
+ ntbContext = NULL;
+ }
+ return ntbContext;
+}
+
+NTSTATUS
+MbbFillPacketContext(
+ _In_ PMBB_PACKET_CONTEXT PacketContext,
+ _In_ PMDL PacketDataStartMdl,
+ _In_ ULONG PacketDataStartMdlDataOffset,
+ _In_ ULONG DatagramLength,
+ _In_ PVOID PaddingBuffer,
+ _In_ ULONG PaddingLength)
+{
+ ULONG packetDataStartMdlDataLength;
+ PCHAR packetDataStartBuffer;
+ PMDL packetDataEndMdl;
+ ULONG packetDataEndMdlDataLength;
+ PCHAR packetDataEndBuffer;
+ PMDL packetMdl;
+ ULONG packetMdlOffset;
+ ULONG packetMdlLength;
+ PMDL packetPenultimateMdl;
+ NTSTATUS status = STATUS_SUCCESS;
+
+ do
+ {
+ if ((packetDataStartBuffer = (PCHAR)MmGetSystemAddressForMdlSafe(PacketDataStartMdl, NormalPagePriority | MdlMappingNoExecute)) == NULL)
+ {
+ status = STATUS_RESOURCE_DATA_NOT_FOUND;
+ break;
+ }
+ packetDataStartBuffer += PacketDataStartMdlDataOffset;
+ //
+ // Create new DataStart and DataEnd Mdls
+ // to remove the unused data space.
+ //
+ packetDataStartMdlDataLength = MmGetMdlByteCount(PacketDataStartMdl);
+ packetDataStartMdlDataLength -= PacketDataStartMdlDataOffset;
+
+ if ((PacketContext->DataStartMdl =
+ AllocateNonPagedMdl(packetDataStartBuffer, (ULONG)(MIN(DatagramLength, packetDataStartMdlDataLength)))) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+
+ PacketContext->DataStartMdl->Next = PacketDataStartMdl->Next;
+ //
+ // Find the end MDL and the amount of data in the end MDL
+ //
+ packetMdl = PacketDataStartMdl;
+ packetMdlOffset = PacketDataStartMdlDataOffset;
+ packetPenultimateMdl = NULL;
+
+ for (packetDataEndMdlDataLength = (ULONG)DatagramLength; packetDataEndMdlDataLength > (MmGetMdlByteCount(packetMdl) - packetMdlOffset);
+ packetDataEndMdlDataLength -= packetMdlLength)
+ {
+ packetPenultimateMdl = packetMdl;
+ packetMdlLength = MmGetMdlByteCount(packetMdl) - packetMdlOffset;
+ packetMdlOffset = 0;
+ packetMdl = packetMdl->Next;
+ }
+ packetDataEndMdl = packetMdl;
+ //
+ // If the starting and ending MDLs are not the same
+ // then build another partial MDL removing any unused
+ // data space.
+ //
+ if (packetDataEndMdl != PacketDataStartMdl)
+ {
+ if ((packetDataEndBuffer = (PCHAR)MmGetSystemAddressForMdlSafe(packetDataEndMdl, NormalPagePriority | MdlMappingNoExecute)) == NULL)
+ {
+ status = STATUS_RESOURCE_DATA_NOT_FOUND;
+ break;
+ }
+
+ if ((PacketContext->DataEndMdl = AllocateNonPagedMdl(packetDataEndBuffer, packetDataEndMdlDataLength)) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+ PacketContext->DataEndMdl->Next = NULL;
+
+ if (packetPenultimateMdl != PacketDataStartMdl)
+ {
+ MDL TempMdl = *packetPenultimateMdl;
+ TempMdl.Next = PacketContext->DataEndMdl;
+
+ MbbPacketSaveAndSetMdl(PacketContext, packetPenultimateMdl, &TempMdl);
+ }
+
+ if (PacketContext->DataStartMdl->Next == packetDataEndMdl)
+ {
+ PacketContext->DataStartMdl->Next = PacketContext->DataEndMdl;
+ }
+ }
+ //
+ // Allocate padding, if needed. The padding buffer is a share buffer.
+ // Every padding MDL points to this same buffer. The buffer contains
+ // all 0s.
+ //
+ if (PaddingLength != 0)
+ {
+ if ((PacketContext->PaddingMdl = AllocateNonPagedMdl(PaddingBuffer, PaddingLength)) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+ PacketContext->PaddingMdl->Next = PacketContext->DataStartMdl;
+ }
+ } while (FALSE);
+
+ return status;
+}
+
+VOID MbbNtbChainNb(_In_ PMBB_NTB_BUILD_CONTEXT NtbContext, _In_ PMBB_PACKET_CONTEXT PacketContext)
+{
+ if (NtbContext->DatagramLastMdl != NULL)
+ {
+ NtbContext->DatagramLastMdl->Next = MbbPacketGetFirstMdl(PacketContext);
+ }
+ else
+ {
+ NtbContext->NthMdl->Next = MbbPacketGetFirstMdl(PacketContext);
+ }
+
+ NtbContext->DatagramLastMdl = MbbPacketGetLastMdl(PacketContext);
+}
+
+NTSTATUS
+MbbNtbAddPacket(
+ _In_ PMBB_NTB_BUILD_CONTEXT NtbContext,
+ _In_ PVOID PacketContext,
+ _In_ ULONG DatagramLength,
+ _In_ PMDL PacketDataStartMdl,
+ _In_ ULONG PacketDataStartMdlDataOffset,
+ _In_ MBB_NDP_TYPE CurrentNdpType,
+ _In_ ULONG SessionId)
+{
+ ULONG datagramOffset;
+ ULONG paddingLength;
+ ULONG ndpSize;
+ NTSTATUS status = STATUS_SUCCESS;
+ ULONG totalLength;
+ PMBB_PACKET_CONTEXT packetContext = NULL;
+
+ do
+ {
+ if ((NtbContext->DatagramCount + 1) > NtbContext->NtbOutMaxDatagrams)
+ {
+ status = STATUS_BUFFER_OVERFLOW;
+ break;
+ }
+
+ //
+ // Size of passed in NET_BUFFER, to be updated later in the NDP Context.
+ //
+ totalLength = NtbContext->NtbHeaderSize + NtbContext->DatagramLength;
+ paddingLength = ALIGN_AT_OFFSET(totalLength, NtbContext->NdpOutDivisor, NtbContext->NdpOutPayloadRemainder) - totalLength;
+ //
+ // Calculate the new NTB size based on the passed in MBB_PACKET
+ //
+
+ //
+ // Fixed size NTH & DatagramSize along with Padding for all NDPs
+ //
+ datagramOffset = totalLength + paddingLength;
+ totalLength += DatagramLength + paddingLength;
+
+ //
+ // Calculate NDP HeaderSize for all NDPs
+ //
+ ndpSize = totalLength;
+ totalLength = ALIGN(totalLength, NtbContext->NdpOutAlignment);
+ totalLength += NtbContext->NdpHeaderFixedSize;
+ totalLength += ((NtbContext->DatagramCount + 1) * NtbContext->NdpDatagramEntrySize);
+ ndpSize = totalLength - ndpSize;
+ //
+ // Can everything fit?
+ //
+ if (totalLength > NtbContext->NtbOutMaxSize)
+ {
+ status = STATUS_BUFFER_OVERFLOW;
+ break;
+ }
+ packetContext = &NtbContext->NdpDatagramEntries[NtbContext->DatagramCount].NetPacketContext;
+ if (!NT_SUCCESS(
+ status = MbbFillPacketContext(
+ packetContext, PacketDataStartMdl, PacketDataStartMdlDataOffset, DatagramLength, NtbContext->PaddingBuffer, paddingLength)))
+ {
+ break;
+ }
+ //
+ // Update the NTB Context for the new NET_BUFFER.
+ //
+ NtbContext->NdpDatagramEntries[NtbContext->DatagramCount].DatagramOffset = datagramOffset;
+ NtbContext->NdpDatagramEntries[NtbContext->DatagramCount].DatagramLength = DatagramLength;
+ NtbContext->NdpDatagramEntries[NtbContext->DatagramCount].NdpType = CurrentNdpType;
+ NtbContext->NdpDatagramEntries[NtbContext->DatagramCount].SessionId = SessionId;
+ if (CurrentNdpType == MbbNdpTypeIps)
+ {
+ NtbContext->NdpDatagramEntries[NtbContext->DatagramCount].NetPacket = (NET_PACKET*)PacketContext;
+ }
+ else if (CurrentNdpType == MbbNdpTypeVendor_1)
+ {
+ NtbContext->NdpDatagramEntries[NtbContext->DatagramCount].DssPacket = (PDSS_PACKET)PacketContext;
+ }
+
+ NtbContext->NdpSize = ndpSize;
+ NtbContext->DatagramCount += 1;
+ NtbContext->DatagramLength += (DatagramLength + paddingLength);
+
+ MbbNtbChainNb(NtbContext, packetContext);
+ } while (FALSE);
+
+ if (!NT_SUCCESS(status))
+ {
+ if (packetContext != NULL)
+ {
+ MbbPacketCleanupContext(packetContext);
+ }
+ }
+ return status;
+}
+
+FORCEINLINE
+PMDL MbbNtbGetMdlChainHead(_In_ PMBB_NTB_BUILD_CONTEXT NtbContext)
+{
+ return NtbContext->NthMdl;
+}
+
+VOID MbbSendQCompleteNtb(_In_ MBB_PROTOCOL_HANDLE ProtocolHandle, _In_ MBB_REQUEST_HANDLE RequestHandle, _In_ NTSTATUS NtStatus, _In_ PMDL Mdl)
+{
+ UNREFERENCED_PARAMETER(ProtocolHandle);
+ PMBB_NTB_BUILD_CONTEXT ntbContext = (PMBB_NTB_BUILD_CONTEXT)RequestHandle;
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetNetAdapterContext(ntbContext->NetAdapter)->WmbDeviceContext;
+ UNREFERENCED_PARAMETER(Mdl);
+
+ if (!NT_SUCCESS(NtStatus))
+ {
+ if (NtStatus == STATUS_NDIS_ADAPTER_NOT_READY)
+ {
+ }
+ else if (NtStatus == STATUS_CANCELLED)
+ {
+ }
+ else if (NtStatus == STATUS_NO_SUCH_DEVICE)
+ {
+ }
+ else
+ {
+ MbbBusResetDataPipes(deviceContext->BusHandle);
+ }
+ }
+
+ MbbNtbCleanupContext(ntbContext, NtStatus);
+}
+
+ULONG
+MbbNtbMapNdpTypeToSignature(_In_ MBB_NDP_TYPE MbbNdpType, _In_ BOOLEAN Is32Bit, _In_ ULONG SessionId)
+{
+ ULONG SessionMask = (SessionId << NCM_NDP_SESSION_SHIFT);
+
+ switch (MbbNdpType)
+ {
+ case MbbNdpTypeIps: return ((Is32Bit == TRUE) ? NCM_NDP32_IPS | SessionMask : NCM_NDP16_IPS | SessionMask);
+ default:
+ if ((MbbNdpType >= MbbNdpTypeVendor_1) && (MbbNdpType <= MbbNdpTypeVendor_Max))
+ {
+ return ((Is32Bit == TRUE) ? NCM_NDP32_VENDOR | SessionMask : NCM_NDP16_VENDOR | SessionMask);
+ }
+ }
+ return 0;
+}
+
+VOID MbbNtbFillNdp32Header(_In_ PNCM_NDP32 Ndp, _In_ MBB_NDP_TYPE NdpType, _In_ PMBB_NTB_BUILD_CONTEXT NtbContext)
+{
+ ULONG datagramIndex = 0;
+ ULONG ndpDatagramIndex = 0;
+ PNCM_NDP32_DATAGRAM ndpDatagramEntries;
+
+ Ndp->dwSignature = MbbNtbMapNdpTypeToSignature(NdpType, TRUE, NtbContext->NdpDatagramEntries[datagramIndex].SessionId);
+ Ndp->dwNextFpIndex = 0;
+ ndpDatagramEntries = Ndp->Datagram;
+ //
+ // Add datagram entries to the NDP Table
+ //
+
+ for (datagramIndex = 0; datagramIndex < NtbContext->DatagramCount; datagramIndex++)
+ {
+ ndpDatagramEntries[ndpDatagramIndex].dwDatagramIndex = NtbContext->NdpDatagramEntries[datagramIndex].DatagramOffset;
+ ndpDatagramEntries[ndpDatagramIndex].dwDatagramLength = NtbContext->NdpDatagramEntries[datagramIndex].DatagramLength;
+ ndpDatagramIndex++;
+ }
+ //
+ // Terminating entry is taken in to account
+ // in the fixed size NDP Header.
+ //
+ ndpDatagramEntries[ndpDatagramIndex].dwDatagramIndex = 0;
+ ndpDatagramEntries[ndpDatagramIndex].dwDatagramLength = 0;
+
+ Ndp->wLength = (USHORT)(NtbContext->NdpHeaderFixedSize + (ndpDatagramIndex * NtbContext->NdpDatagramEntrySize));
+}
+
+VOID MbbNtbFillNdp16Header(__in PNCM_NDP16 Ndp, __in MBB_NDP_TYPE NdpType, __in PMBB_NTB_BUILD_CONTEXT NtbContext)
+{
+ ULONG datagramIndex = 0;
+ ULONG ndpDatagramIndex = 0;
+ PNCM_NDP16_DATAGRAM ndpDatagramEntries;
+
+ Ndp->dwSignature = MbbNtbMapNdpTypeToSignature(NdpType, FALSE, NtbContext->NdpDatagramEntries[datagramIndex].SessionId);
+
+ Ndp->wNextFpIndex = 0;
+ ndpDatagramEntries = Ndp->Datagram;
+ //
+ // Add datagram entries to the NDP Table
+ //
+ for (datagramIndex = 0; datagramIndex < NtbContext->DatagramCount; datagramIndex++)
+ {
+ ndpDatagramEntries[ndpDatagramIndex].wDatagramIndex = (USHORT)NtbContext->NdpDatagramEntries[datagramIndex].DatagramOffset;
+ ndpDatagramEntries[ndpDatagramIndex].wDatagramLength = (USHORT)NtbContext->NdpDatagramEntries[datagramIndex].DatagramLength;
+ ndpDatagramIndex++;
+ }
+ //
+ // Terminating entry is taken in to account
+ // in the fixed size NDP Header.
+ //
+ ndpDatagramEntries[ndpDatagramIndex].wDatagramIndex = 0;
+ ndpDatagramEntries[ndpDatagramIndex].wDatagramLength = 0;
+
+ Ndp->wLength = (USHORT)(NtbContext->NdpHeaderFixedSize + (ndpDatagramIndex * NtbContext->NdpDatagramEntrySize));
+}
+
+NTSTATUS
+MbbNtbAddNdpHeaders(_In_ PMBB_NTB_BUILD_CONTEXT NtbContext)
+{
+ // Offset from the start of the NTB buffer to the start of NDP headers
+ ULONG ndpStartOffset;
+ // Offset from the start of the NTB Buffer to the current position.
+ ULONG ntbOffset;
+ PCHAR ndpBuffer;
+ MBB_NDP_TYPE ndpType;
+ PNCM_NDP16 ndp16;
+ PNCM_NDP32 ndp32;
+ NTSTATUS status = STATUS_SUCCESS;
+
+ do
+ {
+ //
+ // Allocate buffer for all NDP headers.
+ // This includes padding for NDP Header alignment.
+ //
+ status = CreateNonPagedWdfMemory(
+ NtbContext->NdpSize,
+ &NtbContext->NdpBufferMemory,
+ &NtbContext->NdpBuffer,
+ NtbContext->NetTxQueue == NULL ? (WDFOBJECT)NtbContext->NetAdapter : NtbContext->NetTxQueue,
+ MbbPoolTagNtbSend);
+ if (!NT_SUCCESS(status))
+ {
+ break;
+ }
+ RtlZeroMemory(NtbContext->NdpBuffer, NtbContext->NdpSize);
+ ndpBuffer = (PCHAR)(NtbContext->NdpBuffer);
+ //
+ // Chain the NDP Header through its MDL to datagram MDL
+ //
+ if ((NtbContext->NdpMdl = AllocateNonPagedMdl(NtbContext->NdpBuffer, NtbContext->NdpSize)) == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+ NtbContext->DatagramLastMdl->Next = NtbContext->NdpMdl;
+ ndpStartOffset = NtbContext->NtbHeaderSize + NtbContext->DatagramLength;
+
+ if (NtbContext->IsNtb32Bit)
+ NtbContext->Nth32.dwFpIndex = ALIGN(ndpStartOffset, NtbContext->NdpOutAlignment);
+ else
+ NtbContext->Nth16.wFpIndex = (USHORT)ALIGN(ndpStartOffset, NtbContext->NdpOutAlignment);
+
+ ntbOffset = ALIGN(ndpStartOffset, NtbContext->NdpOutAlignment);
+ ndpType = NtbContext->NdpDatagramEntries[0].NdpType;
+
+ if (NtbContext->IsNtb32Bit == TRUE)
+ {
+ ndp32 = (PNCM_NDP32)(ndpBuffer + (ntbOffset - ndpStartOffset));
+
+ MbbNtbFillNdp32Header(ndp32, ndpType, NtbContext);
+ }
+ else
+ {
+ ndp16 = (PNCM_NDP16)(ndpBuffer + (ntbOffset - ndpStartOffset));
+
+ MbbNtbFillNdp16Header(ndp16, ndpType, NtbContext);
+ }
+
+ if (NtbContext->IsNtb32Bit == TRUE)
+ {
+ NtbContext->Nth32.dwBlockLength = NtbContext->NtbHeaderSize;
+ NtbContext->Nth32.dwBlockLength += NtbContext->DatagramLength;
+ NtbContext->Nth32.dwBlockLength += NtbContext->NdpSize;
+ }
+ else
+ {
+ NtbContext->Nth16.wBlockLength = (USHORT)(NtbContext->NtbHeaderSize);
+ NtbContext->Nth16.wBlockLength += (USHORT)(NtbContext->DatagramLength);
+ NtbContext->Nth16.wBlockLength += (USHORT)(NtbContext->NdpSize);
+ }
+ } while (FALSE);
+ //
+ // No cleanup. Cleanup done by caller.
+ //
+ return status;
+}
+
+NTSTATUS
+MbbTestValidateNtb(_In_ PMBB_NTB_BUILD_CONTEXT NtbContext, _In_reads_bytes_(ScratchLength) PCHAR ScratchBuffer, _In_ ULONG ScratchLength)
+{
+ PMDL currentMdl;
+ ULONGLONG ntbLength;
+ ULONG mdlLength;
+ PVOID mdlVa;
+ PVOID nth;
+
+ nth = ScratchBuffer;
+ ntbLength = 0;
+
+ for (currentMdl = MbbNtbGetMdlChainHead(NtbContext); currentMdl != NULL; currentMdl = currentMdl->Next)
+ {
+ mdlLength = MmGetMdlByteCount(currentMdl);
+
+ if ((mdlVa = MmGetSystemAddressForMdlSafe(currentMdl, NormalPagePriority | MdlMappingNoExecute)) == NULL)
+ {
+ return STATUS_RESOURCE_DATA_NOT_FOUND;
+ }
+
+ if ((ntbLength + mdlLength) > ScratchLength)
+ {
+ return STATUS_BUFFER_OVERFLOW;
+ }
+
+ RtlCopyMemory(ScratchBuffer, mdlVa, mdlLength);
+
+ ScratchBuffer += mdlLength;
+ ntbLength += mdlLength;
+ }
+
+ return MbbNtbValidate(nth, (ULONG)ntbLength, NtbContext->IsNtb32Bit, NULL);
+}
+
+void EvtTxQueueDestroy(_In_ WDFOBJECT TxQueue)
+{
+ PMBB_TXQUEUE_CONTEXT txQueueContext = MbbGetTxQueueContext(TxQueue);
+
+ txQueueContext->NetAdapterContext->TxQueue = NULL;
+}
+
+VOID EvtTxQueueSetNotificationEnabled(_In_ NETPACKETQUEUE TxQueue, _In_ BOOLEAN NotificationEnabled)
+{
+ PMBB_TXQUEUE_CONTEXT txQueueContext = MbbGetTxQueueContext(TxQueue);
+
+ InterlockedExchange(&txQueueContext->NotificationEnabled, NotificationEnabled);
+}
+
+void EvtTxQueueCancel(_In_ NETPACKETQUEUE TxQueue)
+{
+ NET_RING_COLLECTION const* rings = MbbGetTxQueueContext(TxQueue)->DatapathDescriptor;
+
+ NET_RING * pr = NetRingCollectionGetPacketRing(rings);
+ while (pr->BeginIndex != pr->EndIndex)
+ {
+ UINT32 const packetIndex = pr->BeginIndex;
+ NetRingGetPacketAtIndex(pr, packetIndex)->Scratch = 1;
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+ }
+}
+
+bool MbbEnableTxBatching(_In_ NET_RING_COLLECTION const* Rings)
+{
+ NET_RING * ring = Rings->Rings[NetRingTypeFragment];
+ return ((ring->EndIndex - ring->BeginIndex) & ring->ElementIndexMask) > (NetRingCollectionGetPacketRing(Rings)->NumberOfElements / 2);
+}
+
+inline
+VOID
+CompleteTxPacketsBatch(
+ _In_ NET_RING_COLLECTION const * Rings,
+ _In_ UINT32 BatchSize
+)
+{
+ UINT32 packetCount = 0;
+
+ NET_RING * pr = NetRingCollectionGetPacketRing(Rings);
+
+ while (pr->BeginIndex != pr->EndIndex)
+ {
+ UINT32 const packetIndex = pr->BeginIndex;
+ auto packet = NetRingGetPacketAtIndex(pr, packetIndex);
+
+ // this function uses Scratch field as the bit for testing completion
+ if (!packet->Scratch)
+ {
+ break;
+ }
+
+ packetCount++;
+
+ NET_RING * fr = NetRingCollectionGetFragmentRing(Rings);
+ fr->BeginIndex = fr->EndIndex;
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+
+ if (packetCount >= BatchSize)
+ {
+ Rings->Rings[NetRingTypeFragment]->BeginIndex = fr->BeginIndex;
+ }
+ }
+}
+
+void EvtTxQueueAdvance(_In_ NETPACKETQUEUE TxQueue)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PMBB_TXQUEUE_CONTEXT txQueueContext = MbbGetTxQueueContext(TxQueue);
+ NET_RING_COLLECTION const* rings = txQueueContext->DatapathDescriptor;
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = txQueueContext->NetAdapterContext;
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = netAdapterContext->WmbDeviceContext;
+ PMBB_NTB_BUILD_CONTEXT ntbContext = NULL;
+ ULONG sessionId = netAdapterContext->SessionId;
+ ULONG batchSize = MbbEnableTxBatching(rings) ? txQueueContext->CompletionBatchSize : 1;
+
+ NET_RING * pr = NetRingCollectionGetPacketRing(rings);
+ while (pr->BeginIndex != pr->EndIndex)
+ {
+ UINT32 packetIndex = pr->BeginIndex;
+ auto packet = NetRingGetPacketAtIndex(pr, packetIndex);
+ if (packet->Ignore)
+ {
+ packet->Scratch = 1;
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+ continue;
+ }
+
+ ntbContext = MbbNtbAllocateContext(
+ netAdapterContext->NtbLookasideList, &deviceContext->BusParams, deviceContext->sharedPaddingBuffer, MbbSendQGetNtbSequence(deviceContext));
+
+ if (ntbContext == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+
+ ntbContext->NetTxQueue = TxQueue;
+ ntbContext->NetAdapter = netAdapterContext->NetAdapter;
+ ntbContext->NetDatapathDescriptor = rings;
+
+ auto fr = NetRingCollectionGetFragmentRing(rings);
+ while (NT_SUCCESS(
+ status = MbbNtbAddPacket(
+ ntbContext,
+ packet,
+ MbbGetNetPacketDataLength(packet, rings),
+ NetExtensionGetFragmentMdl(&txQueueContext->MdlExtension, packet->FragmentIndex)->Mdl,
+ NetRingGetFragmentAtIndex(fr, packet->FragmentIndex)->Offset,
+ MbbNdpTypeIps,
+ sessionId)))
+ {
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+
+ // the ring buffer has no more net packets to send,
+ // so packing is done. break now to make USB request
+ if (pr->BeginIndex == pr->EndIndex)
+ {
+ break;
+ }
+
+ packetIndex = pr->BeginIndex;
+ packet = NetRingGetPacketAtIndex(pr, packetIndex);
+ }
+
+ if (status == STATUS_BUFFER_OVERFLOW)
+ {
+ //
+ // If the NTB was empty and this packet couldnt be added
+ // then ignore this packet to prevent retrying forever.
+ // Or send this NTB to bus then start a new NTB
+ //
+ if (ntbContext->DatagramCount == 0)
+ {
+ packet->Scratch = 1;
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+ }
+ }
+ else if (status != STATUS_SUCCESS)
+ {
+ //
+ // MbbNtbAddPacket failed, we should ignore this packet, or the loop may never complete
+ //
+ packet->Scratch = 1;
+ pr->BeginIndex = NetRingIncrementIndex(pr, pr->BeginIndex);
+ }
+
+ if (ntbContext->DatagramCount > 0)
+ {
+ status = MbbNtbAddNdpHeaders(ntbContext);
+ if (!NT_SUCCESS(status))
+ {
+ }
+ else
+ {
+#if DBG
+ if (!NT_SUCCESS(MbbTestValidateNtb(ntbContext, ntbContext->ScratchBuffer, ntbContext->ScratchLength)))
+ {
+ ASSERT(FALSE);
+ }
+#endif
+ //
+ // Send the data. On failure, cleanup.
+ //
+ status = MbbBusWriteData(deviceContext->BusHandle, ntbContext, MbbNtbGetMdlChainHead(ntbContext), MbbSendQCompleteNtb);
+ if (!NT_SUCCESS(status))
+ {
+ }
+ }
+ }
+ else
+ {
+ status = STATUS_UNSUCCESSFUL;
+ }
+
+ if (!NT_SUCCESS(status))
+ {
+ MbbSendQCompleteNtb(netAdapterContext, ntbContext, status, MbbNtbGetMdlChainHead(ntbContext));
+ }
+ }
+
+ CompleteTxPacketsBatch(rings, batchSize);
+}
+
+PDSS_PACKET MbbAllocateDssPacket(_In_ WDFMEMORY Data, _In_ PVOID DataBuffer, _In_ size_t DataSize)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+ PDSS_PACKET packet = NULL;
+ do
+ {
+// By Design: Allocate packet from NtbSend Pool, released in function MbbNtbCleanupContext called from MbbSendQCompleteNtb.
+#pragma prefast(suppress : __WARNING_MEMORY_LEAK, "Released in function MbbNtbCleanupContext")
+ packet = (PDSS_PACKET)ALLOCATE_NONPAGED_POOL_WITH_TAG(sizeof(DSS_PACKET), MbbPoolTagNtbSend);
+ if (packet == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+ RtlZeroMemory(packet, sizeof(DSS_PACKET));
+
+ packet->Data = Data;
+ packet->Mdl = AllocateNonPagedMdl(DataBuffer, (ULONG)DataSize);
+
+ if (packet->Mdl == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+ } while (FALSE);
+
+ if (!NT_SUCCESS(status))
+ {
+ if (packet != NULL)
+ {
+ MbbCleanupDssPacket(packet);
+ packet = NULL;
+ }
+ }
+
+ return packet;
+}
+
+_Use_decl_annotations_ VOID EvtMbbDeviceSendDeviceServiceSessionData(WDFDEVICE Device, DSS_SESSION_ID SessionId, WDFMEMORY Data)
+{
+ PWMBCLASS_DEVICE_CONTEXT deviceContext = WmbClassGetDeviceContext(Device);
+ NTSTATUS status = STATUS_SUCCESS;
+
+ PWMBCLASS_NETADAPTER_CONTEXT netAdapterContext = deviceContext->Sessions[MBB_DEFAULT_SESSION_ID].NetAdapterContext;
+
+ PMBB_NTB_BUILD_CONTEXT ntbContext = NULL;
+ PDSS_PACKET packet = NULL;
+ BOOLEAN completeNow = TRUE;
+
+ do
+ {
+ ntbContext = MbbNtbAllocateContext(
+ netAdapterContext->NtbLookasideList, &deviceContext->BusParams, deviceContext->sharedPaddingBuffer, MbbSendQGetNtbSequence(deviceContext));
+
+ if (ntbContext == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+
+ ntbContext->NetTxQueue = NULL;
+ ntbContext->NetAdapter = netAdapterContext->NetAdapter;
+ size_t bufferSize = 0;
+ PVOID buffer = WdfMemoryGetBuffer(Data, &bufferSize);
+
+ packet = MbbAllocateDssPacket(Data, buffer, bufferSize);
+ if (packet == NULL)
+ {
+ status = STATUS_INSUFFICIENT_RESOURCES;
+ break;
+ }
+
+ status = MbbNtbAddPacket(ntbContext, packet, (ULONG)bufferSize, packet->Mdl, 0, MbbNdpTypeVendor_1, SessionId);
+ if (!NT_SUCCESS(status))
+ {
+ MbbCleanupDssPacket(packet);
+ break;
+ }
+
+ completeNow = FALSE;
+
+ status = MbbNtbAddNdpHeaders(ntbContext);
+ if (!NT_SUCCESS(status))
+ {
+ break;
+ }
+
+#if DBG
+ if (!NT_SUCCESS(MbbTestValidateNtb(ntbContext, ntbContext->ScratchBuffer, ntbContext->ScratchLength)))
+ {
+ ASSERT(FALSE);
+ }
+#endif
+
+ //
+ // Send the data. On failure, cleanup. It will return STATUS_PENDING when success
+ //
+ status = MbbBusWriteData(deviceContext->BusHandle, ntbContext, MbbNtbGetMdlChainHead(ntbContext), MbbSendQCompleteNtb);
+ if (!NT_SUCCESS(status))
+ {
+ break;
+ }
+
+ deviceContext->DSSPacketsSentCount++;
+ } while (FALSE);
+
+ if (!NT_SUCCESS(status))
+ {
+ if (ntbContext != NULL)
+ {
+ MbbSendQCompleteNtb(deviceContext, ntbContext, status, MbbNtbGetMdlChainHead(ntbContext));
+ }
+ if (completeNow)
+ {
+ MbbDeviceSendDeviceServiceSessionDataComplete(Data, status);
+ }
+ }
+}
diff --git a/network/wwan/cxwmbclass/util.cpp b/network/wwan/cxwmbclass/util.cpp
new file mode 100644
index 00000000..2e2e5f34
--- /dev/null
+++ b/network/wwan/cxwmbclass/util.cpp
@@ -0,0 +1,326 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+// INCLUDES
+//
+////////////////////////////////////////////////////////////////////////////////
+#include "precomp.h"
+
+NTSTATUS
+MbbNtbDetectNdp32Loop(_In_ PNCM_NTH32 Nth)
+{
+ PNCM_NDP32 FirstNdp;
+ PNCM_NDP32 Ndp;
+ PNCM_NDP32 LoopNdp;
+
+ if ((FirstNdp = MBB_NTH32_GET_FIRST_NDP(Nth)) == NULL)
+ return STATUS_SUCCESS;
+
+ if (!MBB_NTB32_IS_VALID_NDP_LENGTH(Nth, FirstNdp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ LoopNdp = MBB_NDP32_GET_NEXT_NDP(Nth, FirstNdp);
+
+ for (Ndp = FirstNdp; Ndp != NULL && LoopNdp != NULL; Ndp = MBB_NDP32_GET_NEXT_NDP(Nth, Ndp))
+ {
+ if (!MBB_NTB32_IS_VALID_NDP_LENGTH(Nth, LoopNdp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTB32_IS_VALID_NDP_LENGTH(Nth, Ndp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (LoopNdp == Ndp)
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if ((LoopNdp = MBB_NDP32_GET_NEXT_NDP(Nth, LoopNdp)) != NULL)
+ {
+ if (!MBB_NTB32_IS_VALID_NDP_LENGTH(Nth, LoopNdp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ LoopNdp = MBB_NDP32_GET_NEXT_NDP(Nth, LoopNdp);
+ }
+ }
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+MbbNtbValidateNdp32(_In_ PNCM_NTH32 Nth, _In_ PNCM_NDP32 Ndp)
+{
+ ULONG Index;
+ ULONG DatagramCount = MBB_NDP32_GET_DATAGRAM_COUNT(Ndp);
+
+ if (!MBB_NTB32_IS_VALID_NDP_SIGNATURE(Ndp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (MBB_NDP32_GET_SIGNATURE_TYPE(Ndp) == NCM_NDP32_IPS)
+ {
+ //
+ // Check if the session id is valid, else discard
+ //
+
+ // Check if session Id is greater than maximum supported. Here
+ // we can also check against MaxActivatedContexts, but this would
+ // mean we need to take a lock for getting the value of maxactivatedcontexts
+ // The lock can be avoided by checking against the maximum number of ports
+ // supported by the class driver. SESSION_PORT_TABLE.InUse can be used
+ // to check whether the session id is in use.
+
+ if (MBB_NDP32_GET_SESSIONID(Ndp) >= MBB_MAX_NUMBER_OF_SESSIONS)
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ }
+
+ if (!MBB_NTB32_IS_VALID_NDP_LENGTH(Nth, Ndp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ for (Index = 0; Index < DatagramCount; Index++)
+ {
+ if (MBB_NTB32_IS_END_DATAGRAM(Nth, Ndp, Index))
+ return STATUS_SUCCESS;
+
+ if (!MBB_NTB32_IS_VALID_DATAGRAM(Nth, Ndp, Index))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ }
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+MbbNtbValidateNth32(_In_ PNCM_NTH32 Nth, _In_ ULONG BufferLength, _Out_opt_ ULONG* NdpCount)
+{
+ PNCM_NDP32 Ndp;
+ ULONG ndpCount = 0;
+ if (BufferLength < sizeof(NCM_NTH32))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH32_IS_VALID_SIGNATURE(Nth))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH32_IS_VALID_HEADER_LENGTH(Nth))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH32_IS_VALID_BLOCK_LENGTH(Nth, BufferLength))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH32_IS_VALID_FIRST_NDP(Nth))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (MbbNtbDetectNdp32Loop(Nth) != STATUS_SUCCESS)
+ return STATUS_UNSUCCESSFUL;
+
+ for (Ndp = MBB_NTH32_GET_FIRST_NDP(Nth); Ndp != NULL; Ndp = MBB_NDP32_GET_NEXT_NDP(Nth, Ndp))
+ {
+ if (MbbNtbValidateNdp32(Nth, Ndp) != STATUS_SUCCESS)
+ return STATUS_UNSUCCESSFUL;
+ ndpCount++;
+ }
+ if (NdpCount != NULL)
+ {
+ *NdpCount = ndpCount;
+ }
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+MbbNtbDetectNdp16Loop(_In_ PNCM_NTH16 Nth)
+{
+ PNCM_NDP16 FirstNdp;
+ PNCM_NDP16 Ndp;
+ PNCM_NDP16 LoopNdp;
+
+ if ((FirstNdp = MBB_NTH16_GET_FIRST_NDP(Nth)) == NULL)
+ return STATUS_SUCCESS;
+
+ if (!MBB_NTB16_IS_VALID_NDP_LENGTH(Nth, FirstNdp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ LoopNdp = MBB_NDP16_GET_NEXT_NDP(Nth, FirstNdp);
+
+ for (Ndp = FirstNdp; Ndp != NULL && LoopNdp != NULL; Ndp = MBB_NDP16_GET_NEXT_NDP(Nth, Ndp))
+ {
+ if (!MBB_NTB16_IS_VALID_NDP_LENGTH(Nth, LoopNdp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTB16_IS_VALID_NDP_LENGTH(Nth, Ndp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (LoopNdp == Ndp)
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if ((LoopNdp = MBB_NDP16_GET_NEXT_NDP(Nth, LoopNdp)) != NULL)
+ {
+ if (!MBB_NTB16_IS_VALID_NDP_LENGTH(Nth, LoopNdp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ LoopNdp = MBB_NDP16_GET_NEXT_NDP(Nth, LoopNdp);
+ }
+ }
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+MbbNtbValidateNdp16(_In_ PNCM_NTH16 Nth, _In_ PNCM_NDP16 Ndp)
+{
+ ULONG Index;
+ ULONG DatagramCount = MBB_NDP16_GET_DATAGRAM_COUNT(Ndp);
+
+ if (!MBB_NTB16_IS_VALID_NDP_SIGNATURE(Ndp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (MBB_NDP16_GET_SIGNATURE_TYPE(Ndp) == NCM_NDP16_IPS)
+ {
+ //
+ // Check if the session id is valid, else discard
+ //
+
+ // Check if session Id is greater than maximum supported. Here
+ // we can also check against MaxActivatedContexts, but this would
+ // mean we need to take a lock for getting the value of maxactivatedcontexts
+ // The lock can be avoided by checking against the maximum number of ports
+ // supported by the class driver. SESSION_PORT_TABLE.InUse can be used
+ // to check whether the session id is in use.
+
+ if (MBB_NDP16_GET_SESSIONID(Ndp) >= MBB_MAX_NUMBER_OF_SESSIONS)
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ }
+
+ if (!MBB_NTB16_IS_VALID_NDP_LENGTH(Nth, Ndp))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ for (Index = 0; Index < DatagramCount; Index++)
+ {
+ if (MBB_NTB16_IS_END_DATAGRAM(Nth, Ndp, Index))
+ return STATUS_SUCCESS;
+
+ if (!MBB_NTB16_IS_VALID_DATAGRAM(Nth, Ndp, Index))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+ }
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+MbbNtbValidateNth16(_In_ PNCM_NTH16 Nth, _In_ ULONG BufferLength, _Out_opt_ ULONG* NdpCount)
+{
+ PNCM_NDP16 Ndp;
+ ULONG ndpCount = 0;
+ if (BufferLength < sizeof(NCM_NTH16))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH16_IS_VALID_SIGNATURE(Nth))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH16_IS_VALID_HEADER_LENGTH(Nth))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH16_IS_VALID_BLOCK_LENGTH(Nth, BufferLength))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (!MBB_NTH16_IS_VALID_FIRST_NDP(Nth))
+ {
+ return STATUS_UNSUCCESSFUL;
+ }
+
+ if (MbbNtbDetectNdp16Loop(Nth) != STATUS_SUCCESS)
+ return STATUS_UNSUCCESSFUL;
+
+ for (Ndp = MBB_NTH16_GET_FIRST_NDP(Nth); Ndp != NULL; Ndp = MBB_NDP16_GET_NEXT_NDP(Nth, Ndp))
+ {
+ if (MbbNtbValidateNdp16(Nth, Ndp) != STATUS_SUCCESS)
+ return STATUS_UNSUCCESSFUL;
+ ndpCount++;
+ }
+
+ if (NdpCount != NULL)
+ {
+ *NdpCount = ndpCount;
+ }
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+MbbNtbValidate(_In_ PVOID Nth, _In_ ULONG BufferLength, _In_ BOOLEAN Is32Bit, _Out_opt_ ULONG* NdpCount)
+{
+ if (Is32Bit == TRUE)
+ return MbbNtbValidateNth32((PNCM_NTH32)Nth, BufferLength, NdpCount);
+ else
+ return MbbNtbValidateNth16((PNCM_NTH16)Nth, BufferLength, NdpCount);
+}
+
+NTSTATUS
+CreateNonPagedWdfMemory(_In_ ULONG ObjectSize, _Out_ WDFMEMORY* WdfMemory, _Out_opt_ PVOID* ObjectMemory, _In_ WDFOBJECT Parent, _In_ ULONG PoolTag = 0)
+{
+ NTSTATUS status;
+ WDF_OBJECT_ATTRIBUTES objectAttribs;
+
+ WDF_OBJECT_ATTRIBUTES_INIT(&objectAttribs);
+ objectAttribs.ParentObject = Parent;
+
+ status = WdfMemoryCreate(&objectAttribs, NonPagedPoolNx, PoolTag, ObjectSize, WdfMemory, ObjectMemory);
+
+ return status;
+}
+
+PMDL AllocateNonPagedMdl(_In_reads_bytes_(Length) PVOID VirtualAddress, _In_ ULONG Length)
+{
+ PMDL Mdl;
+
+ Mdl = IoAllocateMdl(VirtualAddress, Length, FALSE, FALSE, NULL);
+
+ if (Mdl)
+ {
+ MmBuildMdlForNonPagedPool(Mdl);
+ Mdl->Next = NULL;
+ }
+
+ return Mdl;
+}
diff --git a/network/wwan/cxwmbclass/utils.cpp b/network/wwan/cxwmbclass/utils.cpp
new file mode 100644
index 00000000..ec791ab4
--- /dev/null
+++ b/network/wwan/cxwmbclass/utils.cpp
@@ -0,0 +1,588 @@
+//
+// Copyright (C) Microsoft. All rights reserved.
+//
+#include <precomp.h>
+#include "util.h"
+NTSTATUS
+SendSyncControlCommand(
+ __in WDFUSBDEVICE WdfUsbDevice,
+ __in WDF_USB_BMREQUEST_DIRECTION Direction,
+ __in WDF_USB_BMREQUEST_RECIPIENT Recipient,
+ __in BYTE Request,
+ __in USHORT Value,
+ __inout_bcount_opt(BufferLength) PUCHAR Buffer,
+ __in ULONG BufferLength,
+ __out_opt PULONG BytesTransfered)
+
+{
+
+ NTSTATUS Status;
+ WDF_USB_CONTROL_SETUP_PACKET controlSetupPacket;
+ WDF_MEMORY_DESCRIPTOR memoryDescriptor;
+ WDF_REQUEST_SEND_OPTIONS SendOptions;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+
+ usbDeviceContext = GetUsbDeviceContext(WdfUsbDevice);
+
+ if (Buffer != NULL)
+ {
+
+ WDF_MEMORY_DESCRIPTOR_INIT_BUFFER(&memoryDescriptor, (PVOID)Buffer, BufferLength);
+ }
+
+ WDF_USB_CONTROL_SETUP_PACKET_INIT_CLASS(&controlSetupPacket, Direction, Recipient, Request, Value, usbDeviceContext->UsbCommunicationInterfaceIndex);
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, 0);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(10));
+
+ Status = WdfUsbTargetDeviceSendControlTransferSynchronously(
+ WdfUsbDevice, WDF_NO_HANDLE, &SendOptions, &controlSetupPacket, (Buffer != NULL) ? &memoryDescriptor : NULL, BytesTransfered);
+
+ if (!NT_SUCCESS(Status))
+ {
+ BOOLEAN ToHost = Direction == BmRequestDeviceToHost;
+ }
+
+ return Status;
+}
+
+NTSTATUS
+TransactControlChannel(
+ __in PBUS_OBJECT BusObject,
+ __in ULONG TimeOut,
+ __in_bcount_opt(InBufferLength) PUCHAR InBuffer,
+ __in ULONG InBufferLength,
+ __out_bcount_opt(OutBufferLength) PUCHAR OutBuffer,
+ __in ULONG OutBufferLength,
+ __out PULONG BytesRead)
+
+{
+ ULONG BytesTransfered = 0;
+ NTSTATUS Status;
+
+ *BytesRead = 0;
+
+ Status = SendSyncControlCommand(
+ BusObject->WdfUsbDevice, BmRequestHostToDevice, BmRequestToInterface, SEND_ENCAPSULATE_COMMAND, 0, InBuffer, InBufferLength, &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ if (BytesTransfered < InBufferLength)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ }
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ Status = WaitForResponseAvailible(BusObject, TimeOut);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ Status = SendSyncControlCommand(
+ BusObject->WdfUsbDevice, BmRequestDeviceToHost, BmRequestToInterface, GET_ENCAPSULATE_RESPONSE, 0, OutBuffer, OutBufferLength, &BytesTransfered);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ *BytesRead = BytesTransfered;
+
+Cleanup:
+
+ return Status;
+}
+
+NTSTATUS
+ReadInterrupt(_In_ PBUS_OBJECT BusObject, _Inout_updates_bytes_(BufferLength) PUCHAR Buffer, _In_ ULONG BufferLength, _In_ ULONG Timeout, _Out_ PULONG BytesRead)
+
+{
+
+ NTSTATUS status;
+ WDFMEMORY memHandle = NULL;
+
+ WDFREQUEST request = NULL;
+ BOOLEAN SentToDevice = FALSE;
+ WDF_REQUEST_SEND_OPTIONS SendOptions;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ WDF_MEMORY_DESCRIPTOR MemoryDescriptor;
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ WDF_MEMORY_DESCRIPTOR_INIT_BUFFER(&MemoryDescriptor, (PVOID)Buffer, BufferLength);
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(Timeout));
+
+ status = WdfUsbTargetPipeReadSynchronously(usbDeviceContext->InterruptPipe, NULL, &SendOptions, &MemoryDescriptor, BytesRead);
+
+ return status;
+}
+
+NTSTATUS
+GetDeviceString(__in WDFUSBDEVICE UsbDevice, __in UCHAR Index, __out PWSTR* String)
+
+{
+ NTSTATUS Status;
+ WDF_REQUEST_SEND_OPTIONS SendOptions;
+ USHORT CharacterCount = 0;
+ ULONG AllocationSize = 0;
+ PWSTR AllocatedString = NULL;
+
+ WDF_REQUEST_SEND_OPTIONS_INIT(&SendOptions, 0);
+
+ WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&SendOptions, WDF_REL_TIMEOUT_IN_SEC(DEFAULT_IO_TIMEOUT));
+
+ *String = NULL;
+
+ Status = WdfUsbTargetDeviceQueryString(UsbDevice, NULL, &SendOptions, NULL, &CharacterCount, Index, 0);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ //
+ // allocate one more char to make sure sting is null terminated
+ //
+ AllocationSize = (CharacterCount + 1) * sizeof(WCHAR);
+
+ AllocatedString = (PWSTR)ALLOCATE_PAGED_POOL(AllocationSize);
+
+ if (AllocatedString == NULL)
+ {
+ Status = STATUS_INSUFFICIENT_RESOURCES;
+ goto Cleanup;
+ }
+
+ RtlZeroMemory(AllocatedString, AllocationSize);
+
+ Status = WdfUsbTargetDeviceQueryString(UsbDevice, NULL, &SendOptions, AllocatedString, &CharacterCount, Index, 0);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ *String = AllocatedString;
+ AllocatedString = NULL;
+
+Cleanup:
+
+ if (AllocatedString != NULL)
+ {
+ FREE_POOL(AllocatedString);
+ AllocatedString = NULL;
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusSetPacketFilter(__in MBB_BUS_HANDLE BusHandle, __in ULONG PacketFilter)
+
+{
+
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ ULONG BytesTransfered = 0;
+ UCHAR ReadBuffer[256];
+
+ Status = SendSyncControlCommand(
+ BusObject->WdfUsbDevice, BmRequestHostToDevice, BmRequestToInterface, SET_PACKET_FILTER, 0, (PUCHAR)&PacketFilter, sizeof(PacketFilter), &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ if (BytesTransfered < sizeof(PacketFilter))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusSetNtbInSize(__in MBB_BUS_HANDLE BusHandle, __in ULONG InSize)
+
+{
+
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ ULONG BytesTransfered = 0;
+
+ Status = SendSyncControlCommand(
+ BusObject->WdfUsbDevice, BmRequestHostToDevice, BmRequestToInterface, SET_NTB_INPUT_SIZE, 0, (PUCHAR)&InSize, sizeof(InSize), &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ if (BytesTransfered < sizeof(InSize))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusGetStat(__in MBB_BUS_HANDLE BusHandle, __in USHORT StatIndex, __out ULONGLONG* Value)
+
+{
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ ULONG BytesTransfered = 0;
+
+#pragma warning(suppress : 6001)
+ Status = SendSyncControlCommand(
+ BusObject->WdfUsbDevice, BmRequestDeviceToHost, BmRequestToInterface, GET_STATISTIC, StatIndex, (PUCHAR)Value, sizeof(*Value), &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ if (BytesTransfered < sizeof(Value))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ }
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusSetNtbFormat(__in MBB_BUS_HANDLE BusHandle, __in USHORT Format)
+
+{
+
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ ULONG BytesTransfered = 0;
+
+ Status = SendSyncControlCommand(
+ BusObject->WdfUsbDevice, BmRequestHostToDevice, BmRequestToInterface, SET_NBT_FORMAT, Format, (PUCHAR)NULL, 0, &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusResetFunction(__in MBB_BUS_HANDLE BusHandle)
+
+{
+
+ PBUS_OBJECT BusObject = (PBUS_OBJECT)BusHandle;
+ NTSTATUS Status;
+ ULONG BytesTransfered = 0;
+
+ Status = SendSyncControlCommand(
+ BusObject->WdfUsbDevice, BmRequestHostToDevice, BmRequestToInterface, RESET_FUNCTION, 0, (PUCHAR)NULL, 0, &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+ }
+
+ return Status;
+}
+
+NTSTATUS
+MbbBusResetDeviceAndSetParms(__in PBUS_OBJECT BusObject)
+
+{
+ NTSTATUS Status;
+ USHORT NtbFormat = NCM_SET_NTB_FORMAT_16_BIT;
+
+ //
+ // put the device back into a known state
+ //
+ Status = MbbBusResetFunction(BusObject);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ Status = MbbBusSetNtbInSize(BusObject, BusObject->MaxBulkInTransfer);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+
+ if ((BusObject->NtbParam.bmNtbFormatSupported & NCM_NTB_FORMAT_32_BIT) == NCM_NTB_FORMAT_32_BIT)
+ {
+ //
+ // device supports 32 bit mode
+ //
+ if (BusObject->NtbFormat32Bit)
+ {
+ //
+ // the device can actually handle a transfer larger than 16bit, change to 32 bit
+ //
+ NtbFormat = NCM_SET_NTB_FORMAT_32_BIT;
+ }
+
+ //
+ // set the format
+ //
+ Status = MbbBusSetNtbFormat(BusObject, NtbFormat);
+
+ if (!NT_SUCCESS(Status))
+ {
+ goto Cleanup;
+ }
+ }
+
+Cleanup:
+
+ return Status;
+}
+
+ULONG
+ProcessInterruptPipeRead(
+ PBUS_OBJECT BusObject,
+ __in_ecount(NewFragmentLength) PCUCHAR NewFragment,
+ ULONG NewFragmentLength,
+ __out_ecount(MessageBufferSize) PUCHAR CompleteMessageBuffer,
+ ULONG MessageBufferSize)
+
+{
+
+ ULONG CompleteMessageLength = 0;
+ PUSB_CDC_NOTIFICATION CdcNotification = NULL;
+
+ ASSERT(MessageBufferSize == sizeof(BusObject->InterruptReassemnblyBuffer));
+
+ if (BusObject->CurrentOffset == 0)
+ {
+ //
+ // beggining of interrupt transfer
+ //
+ if ((NewFragmentLength >= sizeof(*CdcNotification)) && (NewFragmentLength <= sizeof(BusObject->InterruptReassemnblyBuffer)))
+ {
+ //
+ // big enough for a notification
+ //
+ CdcNotification = (PUSB_CDC_NOTIFICATION)NewFragment;
+
+ if ((CdcNotification->bmRequestType == 0xa1))
+ {
+ BusObject->ExpectLength = sizeof(*CdcNotification) + CdcNotification->wLength;
+
+ RtlCopyMemory(&BusObject->InterruptReassemnblyBuffer[BusObject->CurrentOffset], NewFragment, NewFragmentLength);
+
+ BusObject->CurrentOffset += NewFragmentLength;
+ }
+ else
+ {
+ //
+ // wrong request type, drop
+ //
+ }
+ }
+ else
+ {
+ //
+ // not big enough to be a cdc notification, drop
+ //
+ }
+ }
+ else
+ {
+ //
+ // we already have some of the data
+ //
+ if ((NewFragmentLength + BusObject->CurrentOffset) <= sizeof(BusObject->InterruptReassemnblyBuffer))
+ {
+ //
+ // still room in the NewFragment
+ //
+ RtlCopyMemory(&BusObject->InterruptReassemnblyBuffer[BusObject->CurrentOffset], NewFragment, NewFragmentLength);
+ }
+ else
+ {
+ //
+ // over flow, Keep procssing until we get the whole thing so we don't get out of sync
+ //
+ }
+ BusObject->CurrentOffset += NewFragmentLength;
+ }
+
+ if (BusObject->CurrentOffset < BusObject->ExpectLength)
+ {
+ //
+ // we don't have the whole thing yet, keep going
+ //
+ if (NewFragmentLength == 0)
+ {
+ //
+ // got a zero length transfer, reset the re-assembly state
+ BusObject->ExpectLength = 0;
+ BusObject->CurrentOffset = 0;
+ }
+ }
+ else
+ {
+ if (BusObject->CurrentOffset == BusObject->ExpectLength)
+ {
+ //
+ // got it all
+ //
+ if ((BusObject->CurrentOffset <= sizeof(BusObject->InterruptReassemnblyBuffer)) && (BusObject->CurrentOffset <= MessageBufferSize))
+ {
+ //
+ // the whole thing fit in the NewFragment
+ //
+ RtlCopyMemory(CompleteMessageBuffer, BusObject->InterruptReassemnblyBuffer, BusObject->CurrentOffset);
+
+ CompleteMessageLength = BusObject->CurrentOffset;
+ BusObject->CurrentOffset = 0;
+ }
+ else
+ {
+ //
+ // it is bigger than the re-assembly NewFragment,
+ // drop it
+ //
+ }
+
+ //
+ // done with the current re-assembled NewFragment
+ //
+ BusObject->ExpectLength = 0;
+ BusObject->CurrentOffset = 0;
+ }
+ else
+ {
+ //
+ // current offset is beyond the what we expected
+ //
+ ASSERT(0);
+ }
+ }
+
+ return CompleteMessageLength;
+}
+
+NTSTATUS
+WaitForResponseAvailible(PBUS_OBJECT BusObject, ULONG TimeOut)
+
+{
+ NTSTATUS Status;
+ UCHAR IndicateBuffer[INTERRUPT_REASSEMBLY_BUFFER_SIZE];
+ ULONG BufferLength = 0;
+ ULONG BytesTransfered = 0;
+ BOOLEAN ExitLoop = FALSE;
+ PUSB_DEVICE_CONTEXT usbDeviceContext = NULL;
+ PUSB_CDC_NOTIFICATION Notification = NULL;
+
+ usbDeviceContext = GetUsbDeviceContext(BusObject->WdfUsbDevice);
+
+ BusObject->ExpectLength = 0;
+ BusObject->CurrentOffset = 0;
+
+ while (!ExitLoop)
+ {
+
+ Status = ReadInterrupt(BusObject, BusObject->SyncInterruptReadBuffer, usbDeviceContext->InterruptPipeMaxPacket, TimeOut, &BytesTransfered);
+
+ if (NT_SUCCESS(Status))
+ {
+
+ BufferLength = ProcessInterruptPipeRead(
+ BusObject, BusObject->SyncInterruptReadBuffer, BytesTransfered, IndicateBuffer, sizeof(IndicateBuffer));
+
+ if (BufferLength == 0)
+ {
+ //
+ //
+ // don't have a complete message yet
+ //
+ continue;
+ }
+ else
+ {
+ if (BufferLength < sizeof(*Notification))
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ goto Cleanup;
+ }
+
+ Notification = (PUSB_CDC_NOTIFICATION)IndicateBuffer;
+
+ if (Notification->bNotificationCode != USB_CDC_NOTIFICATION_RESPONSE_AVAILABLE)
+ {
+ continue;
+ }
+ }
+ }
+ else
+ {
+ goto Cleanup;
+ }
+
+ ExitLoop = TRUE;
+ }
+
+ Status = STATUS_SUCCESS;
+
+Cleanup:
+
+ return Status;
+}
+
+BOOLEAN IsUsbCapDeviceInfoValid(_In_ USB_CAP_DEVICE_INFO UsbCapDeviceInfo, _In_ ULONG CapResultLength)
+{
+ if (CapResultLength < sizeof(USB_CAP_DEVICE_INFO_HEADER))
+ {
+ return FALSE;
+ }
+ switch (UsbCapDeviceInfo.DeviceInfoHeader.DeviceType)
+ {
+ case USB_CAP_DEVICE_TYPE_UDE_MBIM: __fallthrough;
+ case USB_CAP_DEVICE_TYPE_UDE_MBIM_FASTIO:
+ // Only support version 1.0 now
+ if (UsbCapDeviceInfo.DeviceInfoHeader.DeviceMajorVersion == 0x1 && UsbCapDeviceInfo.DeviceInfoHeader.DeviceMinorVersion == 0x0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ default: return FALSE;
+ }
+}
+
+/*++
+
+Routine Description:
+
+ Check if the bus type is Ude
+
+Arguments:
+
+ BusHandle - identifies the instance of the bus layer.
+
+Return Value:
+
+ TRUE - The bus type is Ude
+ FALSE - The bus type isn't Ude
+
+--*/
+BOOLEAN
+MbbBusIsUde(_In_ MBB_BUS_HANDLE BusHandle)
+{
+ USB_CAP_DEVICE_TYPE DeviceType = ((PBUS_OBJECT)BusHandle)->UsbCapDeviceInfo.DeviceInfoHeader.DeviceType;
+ return (DeviceType == USB_CAP_DEVICE_TYPE_UDE_MBIM || DeviceType == USB_CAP_DEVICE_TYPE_UDE_MBIM_FASTIO);
+}