[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/common/util.h                                 |   2 +
 src/monitor/monitor.c                             |  44 +++---
 src/xen/hypercall.c                               |   2 +-
 src/xen/module.c                                  |   1 +
 src/xen/system.c                                  |   1 +
 src/xenbus.inf                                    |   4 +-
 src/xenbus/balloon.c                              |  12 +-
 src/xenbus/fdo.c                                  |   8 ++
 src/xenbus/thread.c                               |   1 +
 src/xenbus/thread.h                               |   1 +
 src/xenbus/unplug.c                               |   1 +
 src/xenfilt/pdo.c                                 |   2 +-
 src/xenfilt/thread.c                              |   1 +
 src/xenfilt/thread.h                              |   1 +
 vs2015/configs.props                              |  45 ++++++
 vs2015/package/package.vcxproj                    |  59 ++++++++
 vs2015/package/package.vcxproj.user               |   8 ++
 vs2015/targets.props                              |  35 +++++
 vs2015/xen/xen.vcxproj                            | 100 ++++++++++++++
 vs2015/xen/xen.vcxproj.user                       |   8 ++
 vs2015/xenbus.sln                                 | 158 ++++++++++++++++++++++
 vs2015/xenbus/xenbus.vcxproj                      |  97 +++++++++++++
 vs2015/xenbus/xenbus.vcxproj.user                 |   8 ++
 vs2015/xenbus_coinst/xenbus_coinst.vcxproj        |  61 +++++++++
 vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user   |   8 ++
 vs2015/xenbus_monitor/xenbus_monitor.vcxproj      |  77 +++++++++++
 vs2015/xenbus_monitor/xenbus_monitor.vcxproj.user |   8 ++
 vs2015/xenfilt/xenfilt.vcxproj                    |  78 +++++++++++
 vs2015/xenfilt/xenfilt.vcxproj.user               |   8 ++
 30 files changed, 828 insertions(+), 89 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/xen/xen.vcxproj
 create mode 100644 vs2015/xen/xen.vcxproj.user
 create mode 100644 vs2015/xenbus.sln
 create mode 100644 vs2015/xenbus/xenbus.vcxproj
 create mode 100644 vs2015/xenbus/xenbus.vcxproj.user
 create mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj
 create mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user
 create mode 100644 vs2015/xenbus_monitor/xenbus_monitor.vcxproj
 create mode 100644 vs2015/xenbus_monitor/xenbus_monitor.vcxproj.user
 create mode 100644 vs2015/xenfilt/xenfilt.vcxproj
 create mode 100644 vs2015/xenfilt/xenfilt.vcxproj.user

diff --git a/build.py b/build.py
index b0f65cb..078ee6c 100755
--- a/build.py
+++ b/build.py
@@ -223,61 +223,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__':
     debug = { 'checked': True, 'free': False }
@@ -437,16 +396,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('xen', driver, vs)
diff --git a/src/common/util.h b/src/common/util.h
index 92a3b19..78946d7 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -138,6 +138,7 @@ __InterlockedSubtract(
     return New;
 }
 
+__checkReturn
 static FORCEINLINE PVOID
 __AllocatePoolWithTag(
     IN  POOL_TYPE   PoolType,
@@ -150,6 +151,7 @@ __AllocatePoolWithTag(
     __analysis_assume(PoolType == NonPagedPool ||
                       PoolType == PagedPool);
 
+#pragma warning(suppress:28160) // annotation error
     Buffer = ExAllocatePoolWithTag(PoolType, NumberOfBytes, Tag);
     if (Buffer == NULL)
         return NULL;
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index 344ca6d..2c6a2aa 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -54,7 +54,7 @@ typedef struct _MONITOR_CONTEXT {
     HANDLE                  RequestEvent;
     HKEY                    RequestKey;
     PTCHAR                  Title;
-    PTCHAR                  Message;
+    PTCHAR                  Text;
     BOOL                    RebootPending;
 } MONITOR_CONTEXT, *PMONITOR_CONTEXT;
 
@@ -360,8 +360,8 @@ PromptForReboot(
     PTCHAR              DisplayName;
     DWORD               Type;
     PTCHAR              Description;
-    PTCHAR              Message;
-    DWORD               MessageLength;
+    PTCHAR              Text;
+    DWORD               TextLength;
     PWTS_SESSION_INFO   SessionInfo;
     DWORD               Count;
     DWORD               Index;
@@ -435,20 +435,20 @@ PromptForReboot(
     else
         Description++;
 
-    MessageLength = (DWORD)((_tcslen(Description) +
-                             1 + // ' '
-                             _tcslen(Context->Message) +
-                             1) * sizeof (TCHAR));
+    TextLength = (DWORD)((_tcslen(Description) +
+                          1 + // ' '
+                          _tcslen(Context->Text) +
+                          1) * sizeof (TCHAR));
 
-    Message = calloc(1, MessageLength);
-    if (Message == NULL)
+    Text = calloc(1, TextLength);
+    if (Text == NULL)
         goto fail6;
 
-    Result = StringCbPrintf(Message,
-                            MessageLength,
+    Result = StringCbPrintf(Text,
+                            TextLength,
                             TEXT("%s %s"),
                             Description,
-                            Context->Message);
+                            Context->Text);
     assert(SUCCEEDED(Result));
 
     Success = WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE,
@@ -480,8 +480,8 @@ PromptForReboot(
                                  SessionId,
                                  Title,
                                  TitleLength,
-                                 Message,
-                                 MessageLength,
+                                 Text,
+                                 TextLength,
                                  MB_YESNO | MB_ICONEXCLAMATION,
                                  Timeout,
                                  &Response,
@@ -857,7 +857,7 @@ GetDialogParameters(
     PMONITOR_CONTEXT    Context = &MonitorContext;
     DWORD               MaxValueLength;
     DWORD               TitleLength;
-    DWORD               MessageLength;
+    DWORD               TextLength;
     DWORD               Type;
     HRESULT             Error;
 
@@ -900,18 +900,18 @@ GetDialogParameters(
         goto fail4;
     }
 
-    MessageLength = MaxValueLength + sizeof (TCHAR);
+    TextLength = MaxValueLength + sizeof (TCHAR);
 
-    Context->Message = calloc(1, MessageLength);
+    Context->Text = calloc(1, TextLength);
     if (Context == NULL)
         goto fail5;
 
     Error = RegQueryValueEx(Context->ParametersKey,
-                            "DialogMessage",
+                            "DialogText",
                             NULL,
                             &Type,
-                            (LPBYTE)Context->Message,
-                            &MessageLength);
+                            (LPBYTE)Context->Text,
+                            &TextLength);
     if (Error != ERROR_SUCCESS) {
         SetLastError(Error);
         goto fail6;
@@ -930,7 +930,7 @@ fail7:
 fail6:
     Log("fail6");
 
-    free(Context->Message);
+    free(Context->Text);
 
 fail5:
     Log("fail5");
@@ -1076,7 +1076,7 @@ MonitorMain(
 done:
     (VOID) RegDeleteTree(Context->RequestKey, NULL);
 
-    free(Context->Message);
+    free(Context->Text);
     free(Context->Title);
     CloseHandle(Context->RequestKey);
     free(RequestKeyName);
diff --git a/src/xen/hypercall.c b/src/xen/hypercall.c
index 7003687..b63d432 100644
--- a/src/xen/hypercall.c
+++ b/src/xen/hypercall.c
@@ -85,7 +85,7 @@ HypercallInitialize(
     ULONG       EBX = 'DEAD';
     ULONG       ECX = 'DEAD';
     ULONG       EDX = 'DEAD';
-    ULONG       Index;
+    ULONG_PTR   Index;
     NTSTATUS    status;
 
     status = STATUS_UNSUCCESSFUL;
diff --git a/src/xen/module.c b/src/xen/module.c
index 584a63d..da7f113 100644
--- a/src/xen/module.c
+++ b/src/xen/module.c
@@ -258,6 +258,7 @@ fail1:
 #undef  INSERT_BEFORE
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static VOID
 ModuleLoad(
     IN  PUNICODE_STRING FullImageName,
diff --git a/src/xen/system.c b/src/xen/system.c
index 0dc7e14..dbf708d 100644
--- a/src/xen/system.c
+++ b/src/xen/system.c
@@ -157,6 +157,7 @@ __ProductTypeName(
 #undef  PRODUCT_TYPE_NAME
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 SystemGetVersionInformation(
     VOID
diff --git a/src/xenbus.inf b/src/xenbus.inf
index 2104d54..792d76f 100644
--- a/src/xenbus.inf
+++ b/src/xenbus.inf
@@ -133,7 +133,7 @@ AddReg = Monitor_Parameters
 HKR,"Parameters",,0x00000010
 HKR,"Parameters","RequestKey",0x00000000,%RequestKey%
 HKR,"Parameters","DialogTitle",0x00000000,%DialogTitle%
-HKR,"Parameters","DialogMessage",0x00000000,%DialogMessage%
+HKR,"Parameters","DialogText",0x00000000,%DialogText%
 
 [Monitor_EventLog]
 AddReg=Monitor_EventLog_AddReg
@@ -159,7 +159,7 @@ MonitorName="@PRODUCT_NAME@ PV Driver Monitor"
 MonitorDesc="Provides support for @PRODUCT_NAME@ PV drivers"
 RequestKey="SYSTEM\CurrentControlSet\Services\xenbus_monitor\Request"
 DialogTitle="@PRODUCT_NAME@"
-DialogMessage="needs to restart the system to complete installation. Press 
'Yes' to restart the system now or 'No' if you plan to restart the system 
later."
+DialogText="needs to restart the system to complete installation. Press 'Yes' 
to restart the system now or 'No' if you plan to restart the system later."
 
 SERVICE_BOOT_START=0x0 
 SERVICE_SYSTEM_START=0x1 
diff --git a/src/xenbus/balloon.c b/src/xenbus/balloon.c
index 751dd53..f987096 100644
--- a/src/xenbus/balloon.c
+++ b/src/xenbus/balloon.c
@@ -264,11 +264,17 @@ BalloonFreePagesFromMdl(
     // by RAM.
     ASSERT((Mdl->ByteCount & (PAGE_SIZE - 1)) == 0);
 
-    for (Index = 0; Index < Mdl->ByteCount >> PAGE_SHIFT; Index++)
+    for (Index = 0; Index < (Mdl->ByteCount >> PAGE_SHIFT); Index++) {
+        UCHAR   Byte;
+
+        ASSERT3U(Index << PAGE_SHIFT, <, Mdl->ByteCount);
         Mapping[Index << PAGE_SHIFT] = (UCHAR)Index;
 
-    for (Index = 0; Index < Mdl->ByteCount >> PAGE_SHIFT; Index++)
-        ASSERT3U(Mapping[Index << PAGE_SHIFT], ==, (UCHAR)Index);
+        KeMemoryBarrier();
+        Byte = Mapping[Index << PAGE_SHIFT];
+
+        ASSERT3U(Byte, ==, (UCHAR)Index);
+    }
 
     MmUnmapLockedPages((PVOID)Mapping, Mdl);
 
diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
index ef31de1..7e68b36 100644
--- a/src/xenbus/fdo.c
+++ b/src/xenbus/fdo.c
@@ -281,6 +281,7 @@ FdoGetPhysicalDeviceObject(
     return __FdoGetPhysicalDeviceObject(Fdo);
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 FdoAcquireLowerBusInterface(
     IN  PXENBUS_FDO         Fdo
@@ -540,6 +541,7 @@ FdoGetName(
     return __FdoGetName(Fdo);
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 FdoQueryId(
     IN  PXENBUS_FDO         Fdo,
@@ -3259,6 +3261,7 @@ FdoFilterCmPartialResourceList(
 #define BALLOON_WARN_TIMEOUT        10
 #define BALLOON_BUGCHECK_TIMEOUT    1200
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 FdoStartDevice(
     IN  PXENBUS_FDO                 Fdo,
@@ -3658,6 +3661,7 @@ FdoSurpriseRemoval(
     return status;
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 FdoRemoveDevice(
     IN  PXENBUS_FDO                     Fdo,
@@ -3775,6 +3779,7 @@ done:
 
 #define SCAN_PAUSE  10
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 FdoQueryDeviceRelations(
     IN  PXENBUS_FDO     Fdo,
@@ -4257,6 +4262,7 @@ FdoRequestSetDevicePowerCompletion(
     KeSetEvent(Event, IO_NO_INCREMENT, FALSE);
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static VOID
 FdoRequestSetDevicePower(
     IN  PXENBUS_FDO         Fdo,
@@ -4516,6 +4522,7 @@ FdoRequestQueryDevicePowerCompletion(
     KeSetEvent(Event, IO_NO_INCREMENT, FALSE);
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static VOID
 FdoRequestQueryDevicePower(
     IN  PXENBUS_FDO         Fdo,
@@ -4870,6 +4877,7 @@ FdoDispatch(
     return status;
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static NTSTATUS
 FdoQueryInterface(
     IN  PXENBUS_FDO     Fdo,
diff --git a/src/xenbus/thread.c b/src/xenbus/thread.c
index 23b6e71..665c808 100644
--- a/src/xenbus/thread.c
+++ b/src/xenbus/thread.c
@@ -115,6 +115,7 @@ ThreadFunction(
     // NOT REACHED
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 NTSTATUS
 ThreadCreate(
     IN  XENBUS_THREAD_FUNCTION  Function,
diff --git a/src/xenbus/thread.h b/src/xenbus/thread.h
index e10c946..5ae2b37 100644
--- a/src/xenbus/thread.h
+++ b/src/xenbus/thread.h
@@ -38,6 +38,7 @@ typedef struct _XENBUS_THREAD XENBUS_THREAD, *PXENBUS_THREAD;
 
 typedef NTSTATUS (*XENBUS_THREAD_FUNCTION)(PXENBUS_THREAD, PVOID);
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 extern NTSTATUS
 ThreadCreate(
     IN  XENBUS_THREAD_FUNCTION  Function,
diff --git a/src/xenbus/unplug.c b/src/xenbus/unplug.c
index 3c68c7f..1ad737d 100644
--- a/src/xenbus/unplug.c
+++ b/src/xenbus/unplug.c
@@ -66,6 +66,7 @@ __UnplugFree(
     __FreePoolWithTag(Buffer, XENBUS_UNPLUG_TAG);
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 static VOID
 UnplugRequest(
     IN  PINTERFACE                  Interface,
diff --git a/src/xenfilt/pdo.c b/src/xenfilt/pdo.c
index 6b09578..41ffa1b 100644
--- a/src/xenfilt/pdo.c
+++ b/src/xenfilt/pdo.c
@@ -906,7 +906,7 @@ DEFINE_PDO_QUERY_INTERFACE(Emulated)
 struct _INTERFACE_ENTRY {
     const GUID  *Guid;
     const CHAR  *Name;
-    NTSTATUS    (*Query)(PXENBUS_PDO, PIRP);
+    NTSTATUS    (*Query)(PXENFILT_PDO, PIRP);
 };
 
 #define DEFINE_INTERFACE_ENTRY(_Guid, _Interface)   \
diff --git a/src/xenfilt/thread.c b/src/xenfilt/thread.c
index a834129..c80293d 100644
--- a/src/xenfilt/thread.c
+++ b/src/xenfilt/thread.c
@@ -115,6 +115,7 @@ ThreadFunction(
     // NOT REACHED
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 NTSTATUS
 ThreadCreate(
     IN  XENFILT_THREAD_FUNCTION Function,
diff --git a/src/xenfilt/thread.h b/src/xenfilt/thread.h
index 83e63a3..d38c29c 100644
--- a/src/xenfilt/thread.h
+++ b/src/xenfilt/thread.h
@@ -38,6 +38,7 @@ typedef struct _XENFILT_THREAD XENFILT_THREAD, 
*PXENFILT_THREAD;
 
 typedef NTSTATUS (*XENFILT_THREAD_FUNCTION)(PXENFILT_THREAD, PVOID);
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
 extern NTSTATUS
 ThreadCreate(
     IN  XENFILT_THREAD_FUNCTION Function,
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..8e28243
--- /dev/null
+++ b/vs2015/package/package.vcxproj
@@ -0,0 +1,59 @@
+<?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>{92E5A46B-913C-45C6-B6F8-7E062D85279F}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList 
Condition="'$(Platform)'=='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>
+    <PackageDir>..\..\xenbus\$(DDKPlatform)</PackageDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xenfilt\xenfilt.vcxproj">
+      <Project>{d7411b2c-2c43-434d-9f56-e10a3d2f5bad}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenbus_coinst\xenbus_coinst.vcxproj">
+      <Project>{4bf41378-c01b-4002-8581-563c5f703362}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenbus\xenbus.vcxproj">
+      <Project>{14c16c29-77c9-475b-a618-1b01e67cf985}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xen\xen.vcxproj">
+      <Project>{9c6a5d48-a331-4b1f-a004-7bb67ba5be1c}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenbus_monitor\xenbus_monitor.vcxproj">
+      <Project>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</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..19bfe14
--- /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\xenbus.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/xen/xen.vcxproj b/vs2015/xen/xen.vcxproj
new file mode 100644
index 0000000..68c957a
--- /dev/null
+++ b/vs2015/xen/xen.vcxproj
@@ -0,0 +1,100 @@
+<?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>{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}</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;..\..\include\xen;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>__MODULE__="XEN";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4464;4711;4548;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;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ModuleDefinitionFile>../../src/xen/xen.def</ModuleDefinitionFile>
+      <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);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+    <Inf>
+      <Architecture>x86</Architecture>
+    </Inf>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</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\common\registry.c" />
+    <ClCompile Include="..\..\src\xen\driver.c" />
+    <ClCompile Include="..\..\src\xen\event_channel.c" />
+    <ClCompile Include="..\..\src\xen\grant_table.c" />
+    <ClCompile Include="..\..\src\xen\hvm.c" />
+    <ClCompile Include="..\..\src\xen\xen_version.c" />
+    <ClCompile Include="..\..\src\xen\hypercall.c" />
+    <ClCompile Include="..\..\src\xen\memory.c" />
+    <ClCompile Include="..\..\src\xen\sched.c" />
+    <ClCompile Include="..\..\src\xen\log.c" />
+    <ClCompile Include="..\..\src\xen\bug_check.c" />
+    <ClCompile Include="..\..\src\xen\module.c" />
+    <ClCompile Include="..\..\src\xen\process.c" />
+    <ClCompile Include="..\..\src\xen\acpi.c" />
+    <ClCompile Include="..\..\src\xen\system.c" />
+    <ClCompile Include="..\..\src\xen\unplug.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <MASM Include="..\..\src\xen\amd64\hypercall_thunk.asm">
+      <ExcludedFromBuild 
Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
+    </MASM>
+    <MASM Include="..\..\src\xen\i386\hypercall_thunk.asm">
+      <ExcludedFromBuild 
Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild>
+    </MASM>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xen\xen.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\xen\xen.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xen/xen.vcxproj.user b/vs2015/xen/xen.vcxproj.user
new file mode 100644
index 0000000..19bfe14
--- /dev/null
+++ b/vs2015/xen/xen.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\xenbus.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2015/xenbus.sln b/vs2015/xenbus.sln
new file mode 100644
index 0000000..6d971b2
--- /dev/null
+++ b/vs2015/xenbus.sln
@@ -0,0 +1,158 @@
+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}") = "xenbus_coinst", 
"xenbus_coinst\xenbus_coinst.vcxproj", "{4BF41378-C01B-4002-8581-563C5F703362}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus_monitor", 
"xenbus_monitor\xenbus_monitor.vcxproj", 
"{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xen", "xen\xen.vcxproj", 
"{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenfilt", 
"xenfilt\xenfilt.vcxproj", "{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}"
+       ProjectSection(ProjectDependencies) = postProject
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus", 
"xenbus\xenbus.vcxproj", "{14C16C29-77C9-475B-A618-1B01E67CF985}"
+       ProjectSection(ProjectDependencies) = postProject
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", 
"package\package.vcxproj", "{92E5A46B-913C-45C6-B6F8-7E062D85279F}"
+       ProjectSection(ProjectDependencies) = postProject
+               {14C16C29-77C9-475B-A618-1B01E67CF985} = 
{14C16C29-77C9-475B-A618-1B01E67CF985}
+               {4BF41378-C01B-4002-8581-563C5F703362} = 
{4BF41378-C01B-4002-8581-563C5F703362}
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = 
{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD} = 
{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}
+               {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
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 
Release|x64.Build.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
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {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
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/vs2015/xenbus/xenbus.vcxproj b/vs2015/xenbus/xenbus.vcxproj
new file mode 100644
index 0000000..113f7c1
--- /dev/null
+++ b/vs2015/xenbus/xenbus.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>{14C16C29-77C9-475B-A618-1B01E67CF985}</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>
+      
<PreprocessorDefinitions>__MODULE__="XENBUS";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4464;4711;4548;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)\xen.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/procgrp.lib;$(DDK_LIB_PATH)/rtlver.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);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+    <Inf>
+      <Architecture>x86</Architecture>
+    </Inf>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</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\common\registry.c" />
+    <ClCompile Include="..\..\src\xenbus\bus.c" />
+    <ClCompile Include="..\..\src\xenbus\dma.c" />
+    <ClCompile Include="..\..\src\xenbus\debug.c" />
+    <ClCompile Include="..\..\src\xenbus\driver.c" />
+    <ClCompile Include="..\..\src\xenbus\evtchn.c" />
+    <ClCompile Include="..\..\src\xenbus\evtchn_2l.c" />
+    <ClCompile Include="..\..\src\xenbus\evtchn_fifo.c" />
+    <ClCompile Include="..\..\src\xenbus\fdo.c" />
+    <ClCompile Include="..\..\src\xenbus\filters.c" />
+    <ClCompile Include="..\..\src\xenbus\gnttab.c" />
+    <ClCompile Include="..\..\src\xenbus\pdo.c" />
+    <ClCompile Include="..\..\src\xenbus\shared_info.c" />
+    <ClCompile Include="..\..\src\xenbus\store.c" />
+    <ClCompile Include="..\..\src\xenbus\suspend.c" />
+    <ClCompile Include="..\..\src\xenbus\sync.c" />
+    <ClCompile Include="..\..\src\xenbus\thread.c" />
+    <ClCompile Include="..\..\src\xenbus\range_set.c" />
+    <ClCompile Include="..\..\src\xenbus\balloon.c" />
+    <ClCompile Include="..\..\src\xenbus\cache.c" />
+    <ClCompile Include="..\..\src\xenbus\hash_table.c" />
+    <ClCompile Include="..\..\src\xenbus\unplug.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenbus\xenbus.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Inf Include="..\xenbus.inf" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xenbus/xenbus.vcxproj.user 
b/vs2015/xenbus/xenbus.vcxproj.user
new file mode 100644
index 0000000..19bfe14
--- /dev/null
+++ b/vs2015/xenbus/xenbus.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\xenbus.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2015/xenbus_coinst/xenbus_coinst.vcxproj 
b/vs2015/xenbus_coinst/xenbus_coinst.vcxproj
new file mode 100644
index 0000000..e30e6cd
--- /dev/null
+++ b/vs2015/xenbus_coinst/xenbus_coinst.vcxproj
@@ -0,0 +1,61 @@
+<?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>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{4BF41378-C01B-4002-8581-563C5F703362}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>__MODULE__="XENBUS_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/xenbus_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\xenbus_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user 
b/vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user
new file mode 100644
index 0000000..19bfe14
--- /dev/null
+++ b/vs2015/xenbus_coinst/xenbus_coinst.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\xenbus.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2015/xenbus_monitor/xenbus_monitor.vcxproj 
b/vs2015/xenbus_monitor/xenbus_monitor.vcxproj
new file mode 100644
index 0000000..7676049
--- /dev/null
+++ b/vs2015/xenbus_monitor/xenbus_monitor.vcxproj
@@ -0,0 +1,77 @@
+<?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">
+    <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__="XENBUS_MONITOR";%(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>
+      
<AdditionalDependencies>wtsapi32.lib;cfgmgr32.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\monitor\messages.mc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\monitor\monitor.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\monitor\xenbus_monitor.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xenbus_monitor/xenbus_monitor.vcxproj.user 
b/vs2015/xenbus_monitor/xenbus_monitor.vcxproj.user
new file mode 100644
index 0000000..19bfe14
--- /dev/null
+++ b/vs2015/xenbus_monitor/xenbus_monitor.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\xenbus.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2015/xenfilt/xenfilt.vcxproj b/vs2015/xenfilt/xenfilt.vcxproj
new file mode 100644
index 0000000..d9f28ed
--- /dev/null
+++ b/vs2015/xenfilt/xenfilt.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>
+      
<PreprocessorDefinitions>__MODULE__="XENFILT";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4464;4711;4548;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)\xen.lib;$(DDK_LIB_PATH)/libcntpr.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);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+    <Inf>
+      <Architecture>x86</Architecture>
+    </Inf>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</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/common/registry.c" />
+    <ClCompile Include="../../src/xenfilt/driver.c" />
+    <ClCompile Include="../../src/xenfilt/emulated.c" />
+    <ClCompile Include="../../src/xenfilt/fdo.c" />
+    <ClCompile Include="../../src/xenfilt/pdo.c" />
+    <ClCompile Include="../../src/xenfilt/thread.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenfilt\xenfilt.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2015/xenfilt/xenfilt.vcxproj.user 
b/vs2015/xenfilt/xenfilt.vcxproj.user
new file mode 100644
index 0000000..19bfe14
--- /dev/null
+++ b/vs2015/xenfilt/xenfilt.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\xenbus.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®.