Rather than every client reinvent the art of using the Wintun and its ring buffers, we offer helper structs and functions to unify and simplify Wintun usage. Signed-off-by: Simon Rozman <simon@rozman.si>
		
			
				
	
	
		
			240 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			240 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding="utf-8"?>
 | 
						|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
						|
  <ItemGroup Label="ProjectConfigurations">
 | 
						|
    <ProjectConfiguration Include="Debug|ARM">
 | 
						|
      <Configuration>Debug</Configuration>
 | 
						|
      <Platform>ARM</Platform>
 | 
						|
    </ProjectConfiguration>
 | 
						|
    <ProjectConfiguration Include="Debug|ARM64">
 | 
						|
      <Configuration>Debug</Configuration>
 | 
						|
      <Platform>ARM64</Platform>
 | 
						|
    </ProjectConfiguration>
 | 
						|
    <ProjectConfiguration Include="Debug|Win32">
 | 
						|
      <Configuration>Debug</Configuration>
 | 
						|
      <Platform>Win32</Platform>
 | 
						|
    </ProjectConfiguration>
 | 
						|
    <ProjectConfiguration Include="Release|ARM">
 | 
						|
      <Configuration>Release</Configuration>
 | 
						|
      <Platform>ARM</Platform>
 | 
						|
    </ProjectConfiguration>
 | 
						|
    <ProjectConfiguration Include="Release|ARM64">
 | 
						|
      <Configuration>Release</Configuration>
 | 
						|
      <Platform>ARM64</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">
 | 
						|
    <VCProjectVersion>16.0</VCProjectVersion>
 | 
						|
    <ProjectGuid>{897F02E3-3EAA-40AF-A6DC-17EB2376EDAF}</ProjectGuid>
 | 
						|
    <Keyword>Win32Proj</Keyword>
 | 
						|
    <RootNamespace>api</RootNamespace>
 | 
						|
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
 | 
						|
    <ProjectName>api</ProjectName>
 | 
						|
  </PropertyGroup>
 | 
						|
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
						|
    <SpectreMitigation>false</SpectreMitigation>
 | 
						|
  </PropertyGroup>
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
    <SpectreMitigation>false</SpectreMitigation>
 | 
						|
  </PropertyGroup>
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
						|
    <SpectreMitigation>false</SpectreMitigation>
 | 
						|
  </PropertyGroup>
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
						|
  </PropertyGroup>
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
						|
  </PropertyGroup>
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
    <SpectreMitigation>false</SpectreMitigation>
 | 
						|
  </PropertyGroup>
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
  </PropertyGroup>
 | 
						|
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
 | 
						|
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
						|
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
						|
    <CharacterSet>Unicode</CharacterSet>
 | 
						|
    <PlatformToolset>v142</PlatformToolset>
 | 
						|
  </PropertyGroup>
 | 
						|
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
						|
  <ImportGroup Label="ExtensionSettings">
 | 
						|
  </ImportGroup>
 | 
						|
  <ImportGroup Label="Shared">
 | 
						|
  </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')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.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')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.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')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.props" />
 | 
						|
  </ImportGroup>
 | 
						|
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
 | 
						|
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.props" />
 | 
						|
  </ImportGroup>
 | 
						|
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
 | 
						|
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.props" />
 | 
						|
  </ImportGroup>
 | 
						|
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
						|
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.props" />
 | 
						|
  </ImportGroup>
 | 
						|
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
 | 
						|
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.props" />
 | 
						|
  </ImportGroup>
 | 
						|
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
 | 
						|
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
						|
    <Import Project="..\wintun.props" />
 | 
						|
  </ImportGroup>
 | 
						|
  <PropertyGroup Label="UserMacros" />
 | 
						|
  <PropertyGroup>
 | 
						|
    <OutDir>..\$(Configuration)\$(WintunPlatform)\</OutDir>
 | 
						|
    <IntDir>..\$(Configuration)\$(WintunPlatform)\$(ProjectName)-intermediate\</IntDir>
 | 
						|
    <TargetName>wintun</TargetName>
 | 
						|
    <CodeAnalysisRuleSet>NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
 | 
						|
    <RunCodeAnalysis>true</RunCodeAnalysis>
 | 
						|
  </PropertyGroup>
 | 
						|
  <ItemDefinitionGroup>
 | 
						|
    <ClCompile>
 | 
						|
      <PreprocessorDefinitions>_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PreprocessorDefinitions Condition="'$(Platform)'=='Win32' Or '$(Platform)'=='x64' Or '$(Configuration)|$(Platform)'=='Debug|ARM64'">HAVE_EV;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PreprocessorDefinitions Condition="Exists('$(OutDir)whql\')">HAVE_WHQL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PrecompiledHeader>Use</PrecompiledHeader>
 | 
						|
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
 | 
						|
    </ClCompile>
 | 
						|
    <ResourceCompile>
 | 
						|
      <AdditionalIncludeDirectories>..\$(Configuration)\$(WintunPlatform);..\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
						|
      <PreprocessorDefinitions Condition="'$(Platform)'=='Win32' Or '$(Platform)'=='x64' Or '$(Configuration)|$(Platform)'=='Debug|ARM64'">HAVE_EV;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PreprocessorDefinitions Condition="Exists('$(OutDir)whql\')">HAVE_WHQL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PreprocessorDefinitions Condition="'$(Platform)'=='Win32'">_M_IX86=600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PreprocessorDefinitions Condition="'$(Platform)'=='x64'">_M_AMD64=100;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PreprocessorDefinitions Condition="'$(Platform)'=='ARM'">_M_ARM=7;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">_M_ARM64=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
    </ResourceCompile>
 | 
						|
    <Link>
 | 
						|
      <AdditionalDependencies>Bcrypt.lib;Cfgmgr32.lib;Crypt32.lib;Iphlpapi.lib;newdev.lib;ntdll.lib;Setupapi.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
						|
      <ModuleDefinitionFile>exports.def</ModuleDefinitionFile>
 | 
						|
      <SubSystem>Windows</SubSystem>
 | 
						|
    </Link>
 | 
						|
  </ItemDefinitionGroup>
 | 
						|
  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
 | 
						|
    <ClCompile>
 | 
						|
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 | 
						|
    </ClCompile>
 | 
						|
    <ResourceCompile>
 | 
						|
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
    </ResourceCompile>
 | 
						|
  </ItemDefinitionGroup>
 | 
						|
  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
 | 
						|
    <ClCompile>
 | 
						|
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
						|
    </ClCompile>
 | 
						|
    <ResourceCompile>
 | 
						|
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
						|
    </ResourceCompile>
 | 
						|
    <Link>
 | 
						|
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
						|
      <OptimizeReferences>true</OptimizeReferences>
 | 
						|
      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
 | 
						|
    </Link>
 | 
						|
  </ItemDefinitionGroup>
 | 
						|
  <ItemGroup>
 | 
						|
    <ResourceCompile Include="resources.rc" />
 | 
						|
  </ItemGroup>
 | 
						|
  <ItemGroup>
 | 
						|
    <None Include="exports.def" />
 | 
						|
  </ItemGroup>
 | 
						|
  <ItemGroup>
 | 
						|
    <ClInclude Include="api.h" />
 | 
						|
    <ClInclude Include="adapter.h" />
 | 
						|
    <ClInclude Include="atomic.h" />
 | 
						|
    <ClInclude Include="driver.h" />
 | 
						|
    <ClInclude Include="logger.h" />
 | 
						|
    <ClInclude Include="namespace.h" />
 | 
						|
    <ClInclude Include="nci.h" />
 | 
						|
    <ClInclude Include="pch.h" />
 | 
						|
    <ClInclude Include="registry.h" />
 | 
						|
    <ClInclude Include="resource.h" />
 | 
						|
    <ClInclude Include="wintun.h" />
 | 
						|
  </ItemGroup>
 | 
						|
  <ItemGroup>
 | 
						|
    <ClCompile Include="api.c" />
 | 
						|
    <ClCompile Include="adapter.c" />
 | 
						|
    <ClCompile Include="driver.c" />
 | 
						|
    <ClCompile Include="logger.c" />
 | 
						|
    <ClCompile Include="namespace.c" />
 | 
						|
    <ClCompile Include="nci.c" />
 | 
						|
    <ClCompile Include="pch.c">
 | 
						|
      <PrecompiledHeader>Create</PrecompiledHeader>
 | 
						|
    </ClCompile>
 | 
						|
    <ClCompile Include="registry.c" />
 | 
						|
    <ClCompile Include="resource.c" />
 | 
						|
    <ClCompile Include="session.c" />
 | 
						|
    <ClCompile Include="rundll32.c" />
 | 
						|
  </ItemGroup>
 | 
						|
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
						|
  <ImportGroup Label="ExtensionTargets">
 | 
						|
  </ImportGroup>
 | 
						|
  <Import Project="..\wintun.vcxproj.user" Condition="exists('..\wintun.vcxproj.user')" />
 | 
						|
  <PropertyGroup>
 | 
						|
    <BuildDependsOn>$(BuildDependsOn);SignTarget</BuildDependsOn>
 | 
						|
    <CleanDependsOn>CleanSignTarget;$(CleanDependsOn)</CleanDependsOn>
 | 
						|
    <SignTargetCommandLine Condition="$(SignMode)=='TestSign'">"$(SignToolPath)" sign /sha1 "$(TestCertificate)" /fd sha256 "$(TargetPath)"</SignTargetCommandLine>
 | 
						|
    <SignTargetCommandLine Condition="$(SignMode)=='ProductionSign'">"$(SignToolPath)" sign /sha1 "$(ProductionCertificate)" /fd sha256 /tr "$(TimeStampServer)" /td sha256 "$(TargetPath)"</SignTargetCommandLine>
 | 
						|
  </PropertyGroup>
 | 
						|
  <Target Name="SignTarget" Condition="'$(SignTargetCommandLine)'!=''" Inputs="$(TargetPath)" Outputs="$(IntermediateOutputPath)$(TargetName).sign">
 | 
						|
    <Exec Command="$(SignTargetCommandLine)" />
 | 
						|
    <Touch Files="$(IntermediateOutputPath)$(TargetName).sign" AlwaysCreate="true" />
 | 
						|
  </Target>
 | 
						|
  <Target Name="CleanSignTarget">
 | 
						|
    <Delete Files="$(IntermediateOutputPath)$(TargetName).sign" />
 | 
						|
  </Target>
 | 
						|
</Project> |