[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH xeniface 1/2] Add support for building with Visual Studio 2017



Also remove mappings for obsolete versions of VS in build.py.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 build.py                                           |  46 +++++---
 msbuild.bat                                        |  10 +-
 vs2017/configs.props                               |  45 +++++++
 vs2017/package/package.vcxproj                     |  53 +++++++++
 vs2017/package/package.vcxproj.user                |   8 ++
 vs2017/targets.props                               |  35 ++++++
 vs2017/xenagent/xenagent.vcxproj                   |  83 +++++++++++++
 vs2017/xenagent/xenagent.vcxproj.user              |   4 +
 vs2017/xeniface.sln                                | 130 +++++++++++++++++++++
 vs2017/xeniface/xeniface.vcxproj                   |  97 +++++++++++++++
 vs2017/xeniface/xeniface.vcxproj.user              |   8 ++
 vs2017/xeniface_coinst/xeniface_coinst.vcxproj     |  60 ++++++++++
 .../xeniface_coinst/xeniface_coinst.vcxproj.user   |   8 ++
 13 files changed, 567 insertions(+), 20 deletions(-)
 create mode 100644 vs2017/configs.props
 create mode 100644 vs2017/package/package.vcxproj
 create mode 100644 vs2017/package/package.vcxproj.user
 create mode 100644 vs2017/targets.props
 create mode 100644 vs2017/xenagent/xenagent.vcxproj
 create mode 100644 vs2017/xenagent/xenagent.vcxproj.user
 create mode 100644 vs2017/xeniface.sln
 create mode 100644 vs2017/xeniface/xeniface.vcxproj
 create mode 100644 vs2017/xeniface/xeniface.vcxproj.user
 create mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj
 create mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user

diff --git a/build.py b/build.py
index 3b64ac6..8c87966 100755
--- a/build.py
+++ b/build.py
@@ -191,18 +191,28 @@ def shell(command, dir):
     return sub.returncode
 
 
+def find(name, path):
+    for root, dirs, files in os.walk(path):
+        if name in files:
+            return os.path.join(root, name)
+
+
 class msbuild_failure(Exception):
     def __init__(self, value):
         self.value = value
     def __str__(self):
         return repr(self.value)
 
+
 def msbuild(platform, configuration, target, file, args, dir):
-    os.environ['PLATFORM'] = platform
-    os.environ['CONFIGURATION'] = configuration
-    os.environ['TARGET'] = target
-    os.environ['FILE'] = file
-    os.environ['EXTRA'] = args
+    vcvarsall = find('vcvarsall.bat', os.environ['VS'])
+
+    os.environ['MSBUILD_PLATFORM'] = platform
+    os.environ['MSBUILD_CONFIGURATION'] = configuration
+    os.environ['MSBUILD_TARGET'] = target
+    os.environ['MSBUILD_FILE'] = file
+    os.environ['MSBUILD_EXTRA'] = args
+    os.environ['MSBUILD_VCVARSALL'] = vcvarsall
 
     bin = os.path.join(os.getcwd(), 'msbuild.bat')
 
@@ -220,8 +230,6 @@ def build_sln(name, release, arch, debug, vs):
     elif arch == 'x64':
         platform = 'x64'
 
-    cwd = os.getcwd()
-
     msbuild(platform, configuration, 'Build', name + '.sln', '', vs)
 
 def copy_package(name, release, arch, debug, vs):
@@ -375,24 +383,25 @@ def archive(filename, files, tgz=False):
             pass
     tar.close()
 
+
 def getVsVersion():
-    vsenv ={} 
-    vars = subprocess.check_output([os.environ['VS']+'\\VC\\vcvarsall.bat', 
-                                        '&&', 'set'], 
-                                    shell=True)
+    vsenv = {}
+    vcvarsall= find('vcvarsall.bat', os.environ['VS'])
+
+    vars = subprocess.check_output([vcvarsall, 'x86_amd64', '&&', 'set'], 
shell=True)
+
     for var in vars.splitlines():
         k, _, v = map(str.strip, var.strip().decode('utf-8').partition('='))
         if k.startswith('?'):
             continue
         vsenv[k] = v
 
-    mapping = { '11.0':'vs2012',
-                '12.0':'vs2013',
-                '14.0':'vs2015' }
+    mapping = { '14.0':'vs2015',
+                '15.0':'vs2017'}
 
     return mapping[vsenv['VisualStudioVersion']]
 
-if __name__ == '__main__':
+def main():
     debug = { 'checked': True, 'free': False }
     sdv = { 'nosdv': False, None: True }
     driver = 'xeniface'
@@ -446,9 +455,8 @@ if __name__ == '__main__':
 
     symstore_del(driver, 30)
 
-    release = { 'vs2012':'Windows Vista',
-                'vs2013':'Windows 7',
-                'vs2015':'Windows 8' }
+    release = { 'vs2015':'Windows 8',
+                'vs2017':'Windows 8' }
 
     shutil.rmtree(driver, ignore_errors=True)
 
@@ -467,3 +475,5 @@ if __name__ == '__main__':
     archive(driver + '\\source.tgz', manifest().splitlines(), tgz=True)
     archive(driver + '.tar', [driver,'revision'])
 
+if __name__ == '__main__':
+    main()
diff --git a/msbuild.bat b/msbuild.bat
index f9fceec..a28f939 100755
--- a/msbuild.bat
+++ b/msbuild.bat
@@ -1,4 +1,10 @@
-call "%VS%\VC\vcvarsall.bat" x86
+set MSBUILD_ROOT=%cd%
+call "%MSBUILD_VCVARSALL%" x86_amd64
 @echo on
-msbuild.exe /p:Configuration="%CONFIGURATION%" /p:Platform="%PLATFORM%" 
/t:"%TARGET%" %EXTRA% %FILE%
+cd "%MSBUILD_ROOT%"
+msbuild.exe /m:1 /p:Configuration="%MSBUILD_CONFIGURATION%" 
/p:Platform="%MSBUILD_PLATFORM%" /t:"%MSBUILD_TARGET%" %MSBUILD_EXTRA% 
%MSBUILD_FILE%
+if errorlevel 1 goto error
+exit 0
 
+:error
+exit 1
diff --git a/vs2017/configs.props b/vs2017/configs.props
new file mode 100644
index 0000000..cdbb3c8
--- /dev/null
+++ b/vs2017/configs.props
@@ -0,0 +1,45 @@
+<?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="Windows 10 Debug|Win32">
+                       <Configuration>Windows 10 Debug</Configuration>
+                       <Platform>Win32</Platform>
+                       
<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 10 Release|Win32">
+                       <Configuration>Windows 10 Release</Configuration>
+                       <Platform>Win32</Platform>
+                       
<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 10 Debug|x64">
+                       <Configuration>Windows 10 Debug</Configuration>
+                       <Platform>x64</Platform>
+                       
<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 10 Release|x64">
+                       <Configuration>Windows 10 Release</Configuration>
+                       <Platform>x64</Platform>
+                       
<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 8 Debug|Win32">
+                       <Configuration>Windows 8 Debug</Configuration>
+                       <Platform>Win32</Platform>
+                       
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 8 Release|Win32">
+                       <Configuration>Windows 8 Release</Configuration>
+                       <Platform>Win32</Platform>
+                       
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 8 Debug|x64">
+                       <Configuration>Windows 8 Debug</Configuration>
+                       <Platform>x64</Platform>
+                       
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 8 Release|x64">
+                       <Configuration>Windows 8 Release</Configuration>
+                       <Platform>x64</Platform>
+                       
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+       </ItemGroup>
+</Project>
diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj
new file mode 100644
index 0000000..764511b
--- /dev/null
+++ b/vs2017/package/package.vcxproj
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{9B071A35-897C-477A-AEB7-95F77618A21D}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList 
Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList 
Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyDrivers />
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xeniface\xeniface.vcxproj">
+      <Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xeniface_coinst\xeniface_coinst.vcxproj">
+      <Project>{85c731ad-2ea2-4049-a542-d2d38ede938c}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenagent\xenagent.vcxproj">
+      <Project>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" 
Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" 
Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/vs2017/package/package.vcxproj.user 
b/vs2017/package/package.vcxproj.user
new file mode 100644
index 0000000..8fcc92e
--- /dev/null
+++ b/vs2017/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2017/targets.props b/vs2017/targets.props
new file mode 100644
index 0000000..64598fc
--- /dev/null
+++ b/vs2017/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+               <TargetVersion>Windows10</TargetVersion>
+               <UseDebugLibraries>true</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+               <TargetVersion>Windows10</TargetVersion>
+               <UseDebugLibraries>false</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+               <TargetVersion>Windows10</TargetVersion>
+               <UseDebugLibraries>true</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+               <TargetVersion>Windows10</TargetVersion>
+               <UseDebugLibraries>false</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+               <TargetVersion>Windows8</TargetVersion>
+               <UseDebugLibraries>true</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+               <TargetVersion>Windows8</TargetVersion>
+               <UseDebugLibraries>false</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+               <TargetVersion>Windows8</TargetVersion>
+               <UseDebugLibraries>true</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" 
Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+               <TargetVersion>Windows8</TargetVersion>
+               <UseDebugLibraries>false</UseDebugLibraries>
+       </PropertyGroup>
+</Project>
diff --git a/vs2017/xenagent/xenagent.vcxproj b/vs2017/xenagent/xenagent.vcxproj
new file mode 100644
index 0000000..ba8ea72
--- /dev/null
+++ b/vs2017/xenagent/xenagent.vcxproj
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <PropertyGroup>
+    <CustomBuildAfterTargets>Link</CustomBuildAfterTargets>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;__MODULE__="XENAGENT";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4127;4350;4365;4571;4625;4626;4711;4774;4548;4820;4668;4255;5026;5027;5038;5039;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary 
Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary 
Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      
<AdditionalDependencies>powrprof.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x86 -dll -noentry -out:%(Outputs) 
%(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x64 -dll -noentry -out:%(Outputs) 
%(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" 
/>
+  </ItemGroup>
+  <ItemGroup>
+    <MessageCompile Include="..\..\src\xenagent\messages.mc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xenagent\service.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\devicelist.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\xenifacedevice.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\convdevice.cpp"/>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenagent\xenagent.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="..\..\src\xenagent\xen.ico" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2017/xenagent/xenagent.vcxproj.user 
b/vs2017/xenagent/xenagent.vcxproj.user
new file mode 100644
index 0000000..510ca8a
--- /dev/null
+++ b/vs2017/xenagent/xenagent.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup />
+</Project>
diff --git a/vs2017/xeniface.sln b/vs2017/xeniface.sln
new file mode 100644
index 0000000..040f071
--- /dev/null
+++ b/vs2017/xeniface.sln
@@ -0,0 +1,130 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface_coinst", 
"xeniface_coinst\xeniface_coinst.vcxproj", 
"{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", 
"xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenagent", 
"xenagent\xenagent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", 
"package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
+       ProjectSection(ProjectDependencies) = postProject
+               {22166290-65D8-49D2-BB88-33201797C7D8} = 
{22166290-65D8-49D2-BB88-33201797C7D8}
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C} = 
{85C731AD-2EA2-4049-A542-D2D38EDE938C}
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = 
{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
+       EndProjectSection
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+               Windows 8 Debug|x64 = Windows 8 Debug|x64
+               Windows 8 Release|Win32 = Windows 8 Release|Win32
+               Windows 8 Release|x64 = Windows 8 Release|x64
+               Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+               Windows 10 Debug|x64 = Windows 10 Debug|x64
+               Windows 10 Release|Win32 = Windows 10 Release|Win32
+               Windows 10 Release|x64 = Windows 10 Release|x64
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/vs2017/xeniface/xeniface.vcxproj b/vs2017/xeniface/xeniface.vcxproj
new file mode 100644
index 0000000..d63ddc7
--- /dev/null
+++ b/vs2017/xeniface/xeniface.vcxproj
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{22166290-65D8-49D2-BB88-33201797C7D8}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>__MODULE__="XENIFACE";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4464;4711;4548;4820;4668;4255;6001;6054;28160;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+    </ClCompile>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      
<AdditionalDependencies>$(DDK_LIB_PATH)\ntstrsafe.lib;$(DDK_LIB_PATH)\procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+    </Link>
+    <Inf>
+      <SpecifyArchitecture>true</SpecifyArchitecture>
+      <SpecifyDriverVerDirectiveVersion>true</SpecifyDriverVerDirectiveVersion>
+      
<TimeStamp>$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION).$(BUILD_NUMBER)</TimeStamp>
+      <EnableVerbose>true</EnableVerbose>
+    </Inf>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Inf>
+      <Architecture>x86</Architecture>
+    </Inf>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Inf>
+      <Architecture>amd64</Architecture>
+    </Inf>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" 
/>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xeniface\ioctls.c" />
+    <ClCompile Include="..\..\src\xeniface\wmi.c" />
+    <ClCompile Include="..\..\src\xeniface\driver.c" />
+    <ClCompile Include="..\..\src\xeniface\fdo.c" />
+    <ClCompile Include="..\..\src\xeniface\registry.c" />
+    <ClCompile Include="..\..\src\xeniface\thread.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_sharedinfo.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_suspend.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_evtchn.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_gnttab.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_store.c" />
+    <ClCompile Include="..\..\src\xeniface\irp_queue.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <Mofcomp Include="../../src/xeniface/wmi.mof">
+      <CreateBinaryMofFile>$(IntDir)/wmi.bmf</CreateBinaryMofFile>
+    </Mofcomp>
+  </ItemGroup>
+  <ItemGroup>
+    <Wmimofck Include="$(IntDir)\wmi.bmf">
+      <HeaderOutputFile>..\..\src\xeniface\wmi_generated.h</HeaderOutputFile>
+    </Wmimofck>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xeniface\xeniface.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Inf Include="..\xeniface.inf" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2017/xeniface/xeniface.vcxproj.user 
b/vs2017/xeniface/xeniface.vcxproj.user
new file mode 100644
index 0000000..8fcc92e
--- /dev/null
+++ b/vs2017/xeniface/xeniface.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2017/xeniface_coinst/xeniface_coinst.vcxproj 
b/vs2017/xeniface_coinst/xeniface_coinst.vcxproj
new file mode 100644
index 0000000..8ac4bc5
--- /dev/null
+++ b/vs2017/xeniface_coinst/xeniface_coinst.vcxproj
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{85c731ad-2ea2-4049-a542-d2d38ede938c}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>__MODULE__="XENIFACE_COINST";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary 
Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary 
Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      
<ModuleDefinitionFile>../../src/coinst/xeniface_coinst.def</ModuleDefinitionFile>
+      
<AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" 
/>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xeniface_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user 
b/vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
new file mode 100644
index 0000000..8fcc92e
--- /dev/null
+++ b/vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.5.3


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.