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

[win-pv-devel] [PATCH] Add support for building under VS2015/WDK10



Moving to the new toolchain also threw up a few new warnings, which this
patch either fixes or squashes. Also, SDV appears to be fragile in new
ways (and whinge about some new things) so there are fixes for that too.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 build.py                            |  78 +++++-----------------
 src/xendisk/thread.c                |   1 +
 src/xendisk/thread.h                |   1 +
 src/xenvbd/fdo.c                    |   6 +-
 src/xenvbd/thread.c                 |   3 +-
 src/xenvbd/thread.h                 |   3 +-
 vs2015/configs.props                |  45 +++++++++++++
 vs2015/package/package.vcxproj      |  55 ++++++++++++++++
 vs2015/package/package.vcxproj.user |   8 +++
 vs2015/targets.props                |  35 ++++++++++
 vs2015/xencrsh/xencrsh.vcxproj      |  97 +++++++++++++++++++++++++++
 vs2015/xencrsh/xencrsh.vcxproj.user |   8 +++
 vs2015/xendisk/xendisk.vcxproj      |  78 ++++++++++++++++++++++
 vs2015/xendisk/xendisk.vcxproj.user |   8 +++
 vs2015/xenvbd.sln                   | 128 ++++++++++++++++++++++++++++++++++++
 vs2015/xenvbd/xenvbd.vcxproj        |  87 ++++++++++++++++++++++++
 vs2015/xenvbd/xenvbd.vcxproj.user   |   8 +++
 17 files changed, 582 insertions(+), 67 deletions(-)
 create mode 100644 vs2015/configs.props
 create mode 100644 vs2015/package/package.vcxproj
 create mode 100644 vs2015/package/package.vcxproj.user
 create mode 100644 vs2015/targets.props
 create mode 100644 vs2015/xencrsh/xencrsh.vcxproj
 create mode 100644 vs2015/xencrsh/xencrsh.vcxproj.user
 create mode 100644 vs2015/xendisk/xendisk.vcxproj
 create mode 100644 vs2015/xendisk/xendisk.vcxproj.user
 create mode 100644 vs2015/xenvbd.sln
 create mode 100644 vs2015/xenvbd/xenvbd.vcxproj
 create mode 100644 vs2015/xenvbd/xenvbd.vcxproj.user

diff --git a/build.py b/build.py
index 8376e39..97baabb 100755
--- a/build.py
+++ b/build.py
@@ -224,61 +224,19 @@ def remove_timestamps(path):
     dst.close()
     src.close()
 
-def sdv_clean(name, vs):
-    path = [vs, name, 'sdv']
-    print(path)
-
-    shutil.rmtree(os.path.join(*path), True)
-
-    path = [vs, name, 'sdv.temp']
-    print(path)
-
-    shutil.rmtree(os.path.join(*path), True)
-
-    path = [vs, name, 'staticdv.job']
-    print(path)
-
-    try:
-        os.unlink(os.path.join(*path))
-    except OSError:
-        pass
-
-    path = [vs, name, 'refine.sdv']
-    print(path)
-
-    try:
-        os.unlink(os.path.join(*path))
-    except OSError:
-        pass
-
-    path = [vs, name, 'sdv-map.h']
-    print(path)
-
-    try:
-        os.unlink(os.path.join(*path))
-    except OSError:
-        pass
-
-
 def run_sdv(name, dir, vs):
-    configuration = get_configuration('Windows 8', False)
+    release = { 'vs2012':'Windows 8',
+                'vs2013':'Windows 8',
+                'vs2015':'Windows 10' }
+
+    configuration = get_configuration(release[vs], False)
     platform = 'x64'
 
     msbuild(platform, configuration, 'Build', name + '.vcxproj',
             '', os.path.join(vs , name))
 
-    sdv_clean(name, vs)
-
     msbuild(platform, configuration, 'sdv', name + '.vcxproj',
-            '/p:Inputs="/scan"', os.path.join(vs , name))
-
-    path = [vs, name, 'sdv-map.h']
-    file = open(os.path.join(*path), 'r')
-
-    for line in file:
-        print(line)
-
-    file.close()
+            '/p:Inputs="/clean"', os.path.join(vs , name))
 
     msbuild(platform, configuration, 'sdv', name + '.vcxproj',
             '/p:Inputs="/check:default.sdv"', os.path.join(vs, name))
@@ -387,10 +345,11 @@ def getVsVersion():
             continue
         vsenv[k] = v
 
-    if vsenv['VisualStudioVersion'] == '11.0' :
-        return 'vs2012'
-    elif vsenv['VisualStudioVersion'] == '12.0' :
-        return 'vs2013'
+    mapping = { '11.0':'vs2012',
+                '12.0':'vs2013',
+                '14.0':'vs2015' }
+
+    return mapping[vsenv['VisualStudioVersion']]
 
 
 if __name__ == '__main__':
@@ -438,16 +397,15 @@ if __name__ == '__main__':
 
     symstore_del(driver, 30)
 
-    if vs=='vs2012':
-        release = 'Windows Vista'
-    else:
-        release = 'Windows 7'
+    release = { 'vs2012':'Windows Vista',
+                'vs2013':'Windows 7',
+                'vs2015':'Windows 8' }
 
-    build_sln(driver, release, 'x86', debug[sys.argv[1]], vs)
-    build_sln(driver, release, 'x64', debug[sys.argv[1]], vs)
+    build_sln(driver, release[vs], 'x86', debug[sys.argv[1]], vs)
+    build_sln(driver, release[vs], 'x64', debug[sys.argv[1]], vs)
 
-    symstore_add(driver, release, 'x86', debug[sys.argv[1]], vs)
-    symstore_add(driver, release, 'x64', debug[sys.argv[1]], vs)
+    symstore_add(driver, release[vs], 'x86', debug[sys.argv[1]], vs)
+    symstore_add(driver, release[vs], 'x64', debug[sys.argv[1]], vs)
 
     if len(sys.argv) <= 2 or sdv[sys.argv[2]]:
         run_sdv('xencrsh', driver, vs)
diff --git a/src/xendisk/thread.c b/src/xendisk/thread.c
index 335b55a..32c0587 100644
--- a/src/xendisk/thread.c
+++ b/src/xendisk/thread.c
@@ -115,6 +115,7 @@ ThreadFunction(
     // NOT REACHED
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 NTSTATUS
 ThreadCreate(
     IN  XENDISK_THREAD_FUNCTION Function,
diff --git a/src/xendisk/thread.h b/src/xendisk/thread.h
index edef0ca..7c655a8 100644
--- a/src/xendisk/thread.h
+++ b/src/xendisk/thread.h
@@ -38,6 +38,7 @@ typedef struct _XENDISK_THREAD XENDISK_THREAD, 
*PXENDISK_THREAD;
 
 typedef NTSTATUS (*XENDISK_THREAD_FUNCTION)(PXENDISK_THREAD, PVOID);
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 extern NTSTATUS
 ThreadCreate(
     IN  XENDISK_THREAD_FUNCTION Function,
diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c
index deac224..488a896 100644
--- a/src/xenvbd/fdo.c
+++ b/src/xenvbd/fdo.c
@@ -277,6 +277,7 @@ FdoUnlinkPdo(
 //=============================================================================
 // QueryInterface
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 FdoQueryInterface(
     IN  PXENVBD_FDO     Fdo,
@@ -870,8 +871,7 @@ FdoScan(
 //=============================================================================
 // Initialize, Start, Stop
 
-__checkReturn
-__drv_maxIRQL(APC_LEVEL)
+__drv_maxIRQL(PASSIVE_LEVEL)
 static FORCEINLINE NTSTATUS
 __FdoQueryInterfaces(
     __in PXENVBD_FDO             Fdo
@@ -1548,7 +1548,7 @@ FdoDevicePower(
 }
 
 __checkReturn
-__drv_maxIRQL(PASSIVE_LEVEL)
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 __FdoInitialize(
     __in PXENVBD_FDO             Fdo
diff --git a/src/xenvbd/thread.c b/src/xenvbd/thread.c
index 5b22afc..4cd2d18 100644
--- a/src/xenvbd/thread.c
+++ b/src/xenvbd/thread.c
@@ -148,8 +148,7 @@ ThreadFunction(
     // NOT REACHED
 }
 
-__checkReturn
-__drv_maxIRQL(PASSIVE_LEVEL)
+__drv_requiresIRQL(PASSIVE_LEVEL)
 NTSTATUS
 _ThreadCreate(
     __in  PCHAR                   Name,
diff --git a/src/xenvbd/thread.h b/src/xenvbd/thread.h
index 91bef8f..9aa7ede 100644
--- a/src/xenvbd/thread.h
+++ b/src/xenvbd/thread.h
@@ -38,8 +38,7 @@ typedef struct _XENVBD_THREAD XENVBD_THREAD, *PXENVBD_THREAD;
 
 typedef NTSTATUS (*XENVBD_THREAD_FUNCTION)(PXENVBD_THREAD, PVOID);
 
-__checkReturn
-__drv_maxIRQL(PASSIVE_LEVEL)
+__drv_requiresIRQL(PASSIVE_LEVEL)
 extern NTSTATUS
 _ThreadCreate(
     __in  PCHAR                   Name,
diff --git a/vs2015/configs.props b/vs2015/configs.props
new file mode 100644
index 0000000..cdbb3c8
--- /dev/null
+++ b/vs2015/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/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj
new file mode 100644
index 0000000..3a519f7
--- /dev/null
+++ b/vs2015/package/package.vcxproj
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{AB8DAED3-9D70-4907-99A3-C643F1FC1972}</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>
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+    <PackageDir>..\..\xenvbd\$(DDKPlatform)</PackageDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\coinst\xenvbd_coinst.vcxproj">
+      <Project>{50c08437-c1f3-4349-bf6a-7b55a06bf999}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xencrsh\xencrsh.vcxproj">
+      <Project>{58f5bc43-b92e-4a2b-975d-0066eab29092}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenvbd\xenvbd.vcxproj">
+      <Project>{ef236371-3145-41b1-99c9-82b33e353f17}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xendisk\xendisk.vcxproj">
+      <Project>{d7411b2c-2c43-434d-9f56-e10a3d2f5bad}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(KIT)\Redist\DIFx\dpinst\EngMui\x86\dpinst.exe" 
Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(KIT)\Redist\DIFx\dpinst\EngMui\x64\dpinst.exe" 
Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/vs2015/package/package.vcxproj.user 
b/vs2015/package/package.vcxproj.user
new file mode 100644
index 0000000..aeb1957
--- /dev/null
+++ b/vs2015/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+       <PropertyGroup>
+               <SignMode>TestSign</SignMode>
+               <TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+               
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+       </PropertyGroup>
+</Project>
diff --git a/vs2015/targets.props b/vs2015/targets.props
new file mode 100644
index 0000000..64598fc
--- /dev/null
+++ b/vs2015/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/vs2015/xencrsh/xencrsh.vcxproj b/vs2015/xencrsh/xencrsh.vcxproj
new file mode 100644
index 0000000..e9cad6c
--- /dev/null
+++ b/vs2015/xencrsh/xencrsh.vcxproj
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.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>{58F5BC43-B92E-4A2B-975D-0066EAB29092}</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)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>__MODULE__="XENCRSH";POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4464;4548;4711;4820;4668;4255;6001;6054;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+    </ClCompile>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      
<ModuleDefinitionFile>../../src/xencrsh/xencrsh.def</ModuleDefinitionFile>
+      
<AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </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\xencrsh\austere.c" />
+    <ClCompile Include="..\..\src\xencrsh\buffer.c" />
+    <ClCompile Include="..\..\src\xencrsh\driver.c" />
+    <ClCompile Include="..\..\src\xencrsh\evtchn.c" />
+    <ClCompile Include="..\..\src\xencrsh\fdo.c" />
+    <ClCompile Include="..\..\src\xencrsh\frontend.c" />
+    <ClCompile Include="..\..\src\xencrsh\gnttab.c" />
+    <ClCompile Include="..\..\src\xencrsh\hvm.c" />
+    <ClCompile Include="..\..\src\xencrsh\hypercall_stub.c" />
+    <ClCompile Include="..\..\src\xencrsh\log.c" />
+    <ClCompile Include="..\..\src\xencrsh\pdo.c" />
+    <ClCompile Include="..\..\src\xencrsh\pdoinquiry.c" />
+    <ClCompile Include="..\..\src\xencrsh\queue.c" />
+    <ClCompile Include="..\..\src\xencrsh\store.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <MASM Include="..\..\src\xencrsh\amd64\hypercall.asm">
+      <ExcludedFromBuild 
Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
+    </MASM>
+    <MASM Include="..\..\src\xencrsh\i386\hypercall.asm">
+      <ExcludedFromBuild 
Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild>
+    </MASM>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xencrsh\xencrsh.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\xencrsh\xencrsh.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xencrsh/xencrsh.vcxproj.user 
b/vs2015/xencrsh/xencrsh.vcxproj.user
new file mode 100644
index 0000000..aeb1957
--- /dev/null
+++ b/vs2015/xencrsh/xencrsh.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+       <PropertyGroup>
+               <SignMode>TestSign</SignMode>
+               <TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+               
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+       </PropertyGroup>
+</Project>
diff --git a/vs2015/xendisk/xendisk.vcxproj b/vs2015/xendisk/xendisk.vcxproj
new file mode 100644
index 0000000..982efe5
--- /dev/null
+++ b/vs2015/xendisk/xendisk.vcxproj
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.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>{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}</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>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      
<PreprocessorDefinitions>__MODULE__="XENDISK";POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4464;4548;4711;4820;4668;4255;6001;6054;28196;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)/libcntpr.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/xendisk/driver.c" />
+    <ClCompile Include="../../src/xendisk/fdo.c" />
+    <ClCompile Include="../../src/xendisk/pdo.c" />
+    <ClCompile Include="../../src/xendisk/registry.c" />
+    <ClCompile Include="../../src/xendisk/thread.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xendisk\xendisk.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xendisk/xendisk.vcxproj.user 
b/vs2015/xendisk/xendisk.vcxproj.user
new file mode 100644
index 0000000..4323487
--- /dev/null
+++ b/vs2015/xendisk/xendisk.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2015/xenvbd.sln b/vs2015/xenvbd.sln
new file mode 100644
index 0000000..16ff3ae
--- /dev/null
+++ b/vs2015/xenvbd.sln
@@ -0,0 +1,128 @@
+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}") = "xenvbd", 
"xenvbd\xenvbd.vcxproj", "{EF236371-3145-41B1-99C9-82B33E353F17}"
+       ProjectSection(ProjectDependencies) = postProject
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092} = 
{58F5BC43-B92E-4A2B-975D-0066EAB29092}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencrsh", 
"xencrsh\xencrsh.vcxproj", "{58F5BC43-B92E-4A2B-975D-0066EAB29092}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xendisk", 
"xendisk\xendisk.vcxproj", "{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvbd_coinst", 
"xenvbd_coinst\xenvbd_coinst.vcxproj", "{50C08437-C1F3-4349-BF6A-7B55A06BF999}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", 
"package\package.vcxproj", "{AB8DAED3-9D70-4907-99A3-C643F1FC1972}"
+    ProjectSection(ProjectDependencies) = postProject
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999} = 
{50C08437-C1F3-4349-BF6A-7B55A06BF999}
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092} = 
{58F5BC43-B92E-4A2B-975D-0066EAB29092}
+               {EF236371-3145-41B1-99C9-82B33E353F17} = 
{EF236371-3145-41B1-99C9-82B33E353F17}
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD} = 
{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}
+       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
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/vs2015/xenvbd/xenvbd.vcxproj b/vs2015/xenvbd/xenvbd.vcxproj
new file mode 100644
index 0000000..c34e1e5
--- /dev/null
+++ b/vs2015/xenvbd/xenvbd.vcxproj
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.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>{EF236371-3145-41B1-99C9-82B33E353F17}</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)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>__MODULE__="XENVBD";POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4464;4548;4711;4820;4668;4255;6001;6054;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+    </ClCompile>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      
<AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.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/xenvbd/buffer.c" />
+    <ClCompile Include="../../src/xenvbd/driver.c" />
+    <ClCompile Include="../../src/xenvbd/registry.c" />
+    <ClCompile Include="../../src/xenvbd/fdo.c" />
+    <ClCompile Include="../../src/xenvbd/frontend.c" />
+    <ClCompile Include="../../src/xenvbd/pdo.c" />
+    <ClCompile Include="../../src/xenvbd/pdoinquiry.c" />
+    <ClCompile Include="../../src/xenvbd/queue.c" />
+    <ClCompile Include="../../src/xenvbd/thread.c" />
+    <ClCompile Include="../../src/xenvbd/notifier.c" />
+    <ClCompile Include="../../src/xenvbd/blockring.c" />
+    <ClCompile Include="../../src/xenvbd/granter.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenvbd\xenvbd.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Inf Include="..\xenvbd.inf" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xenvbd/xenvbd.vcxproj.user 
b/vs2015/xenvbd/xenvbd.vcxproj.user
new file mode 100644
index 0000000..1f1f3c0
--- /dev/null
+++ b/vs2015/xenvbd/xenvbd.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvbd.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/cgi-bin/mailman/listinfo/win-pv-devel

 


Rackspace

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