]> xenbits.xensource.com Git - pvdrivers/win/xenbus.git/commitdiff
Add support for building with Visual Studio 2017
authorPaul Durrant <paul.durrant@citrix.com>
Mon, 29 Jan 2018 10:30:47 +0000 (10:30 +0000)
committerPaul Durrant <paul.durrant@citrix.com>
Wed, 18 Jul 2018 12:44:07 +0000 (13:44 +0100)
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
19 files changed:
build.py
msbuild.bat
src/monitor/monitor.c
src/xenfilt/pdo.c
vs2017/configs.props [new file with mode: 0644]
vs2017/package/package.vcxproj [new file with mode: 0644]
vs2017/package/package.vcxproj.user [new file with mode: 0644]
vs2017/targets.props [new file with mode: 0644]
vs2017/xen/xen.vcxproj [new file with mode: 0644]
vs2017/xen/xen.vcxproj.user [new file with mode: 0644]
vs2017/xenbus.sln [new file with mode: 0644]
vs2017/xenbus/xenbus.vcxproj [new file with mode: 0644]
vs2017/xenbus/xenbus.vcxproj.user [new file with mode: 0644]
vs2017/xenbus_coinst/xenbus_coinst.vcxproj [new file with mode: 0644]
vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user [new file with mode: 0644]
vs2017/xenbus_monitor/xenbus_monitor.vcxproj [new file with mode: 0644]
vs2017/xenbus_monitor/xenbus_monitor.vcxproj.user [new file with mode: 0644]
vs2017/xenfilt/xenfilt.vcxproj [new file with mode: 0644]
vs2017/xenfilt/xenfilt.vcxproj.user [new file with mode: 0644]

index 04e7f94c75029c47be1b3bb19effc0b3ebff6751..eb88e94b853560ac53e88aca353130d1774e5bb6 100755 (executable)
--- a/build.py
+++ b/build.py
@@ -171,18 +171,28 @@ def shell(command, dir):
     return sub.returncode
 
 
+def find(name, path):
+    for root, dirs, files in os.walk(path):
+        if name in files:
+            return os.path.join(root, name)
+
+
 class msbuild_failure(Exception):
     def __init__(self, value):
         self.value = value
     def __str__(self):
         return repr(self.value)
 
+
 def msbuild(platform, configuration, target, file, args, dir):
-    os.environ['PLATFORM'] = platform
-    os.environ['CONFIGURATION'] = configuration
-    os.environ['TARGET'] = target
-    os.environ['FILE'] = file
-    os.environ['EXTRA'] = args
+    vcvarsall = find('vcvarsall.bat', os.environ['VS'])
+
+    os.environ['MSBUILD_PLATFORM'] = platform
+    os.environ['MSBUILD_CONFIGURATION'] = configuration
+    os.environ['MSBUILD_TARGET'] = target
+    os.environ['MSBUILD_FILE'] = file
+    os.environ['MSBUILD_EXTRA'] = args
+    os.environ['MSBUILD_VCVARSALL'] = vcvarsall
 
     bin = os.path.join(os.getcwd(), 'msbuild.bat')
 
@@ -200,10 +210,30 @@ def build_sln(name, release, arch, debug, vs):
     elif arch == 'x64':
         platform = 'x64'
 
-    cwd = os.getcwd()
-
     msbuild(platform, configuration, 'Build', name + '.sln', '', vs)
 
+def copy_package(name, release, arch, debug, vs):
+    configuration = get_configuration(release, debug)
+
+    if arch == 'x86':
+        platform = 'Win32'
+    elif arch == 'x64':
+        platform = 'x64'
+
+    pattern = '/'.join([vs, ''.join(configuration.split(' ')), platform, 'package', '*'])
+    print('Copying package from %s' % pattern)
+
+    files = glob.glob(pattern)
+
+    dst = os.path.join(name, arch)
+
+    os.makedirs(dst, exist_ok=True)
+
+    for file in files:
+        new = shutil.copy(file, dst)
+        print(new)
+
+    print('')
 
 def remove_timestamps(path):
     try:
@@ -223,61 +253,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))
@@ -377,22 +365,26 @@ def archive(filename, files, tgz=False):
     tar.close()
 
 
-
 def getVsVersion():
-    vsenv ={} 
-    vars = subprocess.check_output([os.environ['VS']+'\\VC\\vcvarsall.bat', '&&', 'set'], shell=True)
+    vsenv = {}
+    vcvarsall= find('vcvarsall.bat', os.environ['VS'])
+
+    vars = subprocess.check_output([vcvarsall, 'x86_amd64', '&&', 'set'], shell=True)
+
     for var in vars.splitlines():
         k, _, v = map(str.strip, var.strip().decode('utf-8').partition('='))
         if k.startswith('?'):
             continue
         vsenv[k] = v
 
-    if vsenv['VisualStudioVersion'] == '11.0' :
-        return 'vs2012'
-    elif vsenv['VisualStudioVersion'] == '12.0' :
-        return 'vs2013'
+    mapping = { '11.0':'vs2012',
+                '12.0':'vs2013',
+                '15.0':'vs2017'}
 
-if __name__ == '__main__':
+    return mapping[vsenv['VisualStudioVersion']]
+
+
+def main():
     debug = { 'checked': True, 'free': False }
     sdv = { 'nosdv': False, None: True }
     driver = 'xenbus'
@@ -437,16 +429,20 @@ if __name__ == '__main__':
 
     symstore_del(driver, 30)
 
-    if vs=='vs2012':
-        release = 'Windows Vista'
-    else:
-        release = 'Windows 7'
+    release = { 'vs2012':'Windows Vista',
+                'vs2013':'Windows 7',
+                'vs2017':'Windows 7' }
+
+    shutil.rmtree(driver, ignore_errors=True)
 
-    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)
+    copy_package(driver, release[vs], 'x86', 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)
+    build_sln(driver, release[vs], 'x64', debug[sys.argv[1]], vs)
+    copy_package(driver, release[vs], '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)
@@ -456,4 +452,5 @@ if __name__ == '__main__':
     archive(driver + '\\source.tgz', manifest().splitlines(), tgz=True)
     archive(driver + '.tar', [driver,'revision'])
 
-
+if __name__ == '__main__':
+    main()
index 1b1fbc8fe8dc67fc0c0cebbb4e7afa40b7c42eea..a28f93919d8c044e66229886f0bde56dfc06d57d 100755 (executable)
@@ -1,6 +1,8 @@
-call "%VS%\VC\vcvarsall.bat" x86
+set MSBUILD_ROOT=%cd%
+call "%MSBUILD_VCVARSALL%" x86_amd64
 @echo on
-msbuild.exe /m:1 /p:Configuration="%CONFIGURATION%" /p:Platform="%PLATFORM%" /t:"%TARGET%" %EXTRA% %FILE%
+cd "%MSBUILD_ROOT%"
+msbuild.exe /m:1 /p:Configuration="%MSBUILD_CONFIGURATION%" /p:Platform="%MSBUILD_PLATFORM%" /t:"%MSBUILD_TARGET%" %MSBUILD_EXTRA% %MSBUILD_FILE%
 if errorlevel 1 goto error
 exit 0
 
index 344ca6dbe7b27a86d7f0bb7f44c277cb3f1a4c1b..051bcedce35180dbb85405a749df2335e807fdbc 100644 (file)
@@ -360,8 +360,8 @@ PromptForReboot(
     PTCHAR              DisplayName;
     DWORD               Type;
     PTCHAR              Description;
-    PTCHAR              Message;
-    DWORD               MessageLength;
+    PTCHAR              Body;
+    DWORD               BodyLength;
     PWTS_SESSION_INFO   SessionInfo;
     DWORD               Count;
     DWORD               Index;
@@ -435,17 +435,17 @@ PromptForReboot(
     else
         Description++;
 
-    MessageLength = (DWORD)((_tcslen(Description) +
-                             1 + // ' '
-                             _tcslen(Context->Message) +
-                             1) * sizeof (TCHAR));
+    BodyLength = (DWORD)((_tcslen(Description) +
+                          1 + // ' '
+                          _tcslen(Context->Message) +
+                          1) * sizeof (TCHAR));
 
-    Message = calloc(1, MessageLength);
-    if (Message == NULL)
+    Body = calloc(1, BodyLength);
+    if (Body == NULL)
         goto fail6;
 
-    Result = StringCbPrintf(Message,
-                            MessageLength,
+    Result = StringCbPrintf(Body,
+                            BodyLength,
                             TEXT("%s %s"),
                             Description,
                             Context->Message);
@@ -480,8 +480,8 @@ PromptForReboot(
                                  SessionId,
                                  Title,
                                  TitleLength,
-                                 Message,
-                                 MessageLength,
+                                 Body,
+                                 BodyLength,
                                  MB_YESNO | MB_ICONEXCLAMATION,
                                  Timeout,
                                  &Response,
index 6b09578b4e8ecaeb0d4495eb0550e2e3a88cd9ea..8ccde18a9f7f12d4e5d11a5e368e10bb82876221 100644 (file)
@@ -906,14 +906,11 @@ 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)   \
-    { &GUID_XENFILT_ ## _Guid, #_Guid, PdoQuery ## _Interface ## Interface }
-
 struct _INTERFACE_ENTRY PdoInterfaceTable[] = {
-    DEFINE_INTERFACE_ENTRY(EMULATED_INTERFACE, Emulated),
+    { &GUID_XENFILT_EMULATED_INTERFACE, "EMULATED_INTERFACE", PdoQueryEmulatedInterface },
     { NULL, NULL, NULL }
 };
 
diff --git a/vs2017/configs.props b/vs2017/configs.props
new file mode 100644 (file)
index 0000000..e45af79
--- /dev/null
@@ -0,0 +1,65 @@
+<?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>
+               <ProjectConfiguration Include="Windows 7 Debug|Win32">
+                       <Configuration>Windows 7 Debug</Configuration>
+                       <Platform>Win32</Platform>
+                       <WindowsTargetPlatformVersion>7</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 7 Release|Win32">
+                       <Configuration>Windows 7 Release</Configuration>
+                       <Platform>Win32</Platform>
+                       <WindowsTargetPlatformVersion>7</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 7 Debug|x64">
+                       <Configuration>Windows 7 Debug</Configuration>
+                       <Platform>x64</Platform>
+                       <WindowsTargetPlatformVersion>7</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+               <ProjectConfiguration Include="Windows 7 Release|x64">
+                       <Configuration>Windows 7 Release</Configuration>
+                       <Platform>x64</Platform>
+                       <WindowsTargetPlatformVersion>7</WindowsTargetPlatformVersion>
+               </ProjectConfiguration>
+       </ItemGroup>
+</Project>
diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj
new file mode 100644 (file)
index 0000000..ad6b84f
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{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'">8_x64;Server8_x64;10_x64;Server10_x64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyDrivers />
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\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="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/vs2017/package/package.vcxproj.user b/vs2017/package/package.vcxproj.user
new file mode 100644 (file)
index 0000000..db41a92
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.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/vs2017/targets.props b/vs2017/targets.props
new file mode 100644 (file)
index 0000000..ddf9278
--- /dev/null
@@ -0,0 +1,51 @@
+<?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>
+       <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Debug|Win32'">
+               <TargetVersion>Windows7</TargetVersion>
+               <UseDebugLibraries>true</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Release|Win32'">
+               <TargetVersion>Windows7</TargetVersion>
+               <UseDebugLibraries>false</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Debug|x64'">
+               <TargetVersion>Windows7</TargetVersion>
+               <UseDebugLibraries>true</UseDebugLibraries>
+       </PropertyGroup>
+       <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 7 Release|x64'">
+               <TargetVersion>Windows7</TargetVersion>
+               <UseDebugLibraries>false</UseDebugLibraries>
+       </PropertyGroup>
+</Project>
diff --git a/vs2017/xen/xen.vcxproj b/vs2017/xen/xen.vcxproj
new file mode 100644 (file)
index 0000000..c2439e9
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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;5045;6001;6054;28123;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>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</PreprocessorDefinitions>
+    </ClCompile>
+  </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/vs2017/xen/xen.vcxproj.user b/vs2017/xen/xen.vcxproj.user
new file mode 100644 (file)
index 0000000..db41a92
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.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/vs2017/xenbus.sln b/vs2017/xenbus.sln
new file mode 100644 (file)
index 0000000..c39c4c8
--- /dev/null
@@ -0,0 +1,218 @@
+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 7 Debug|Win32 = Windows 7 Debug|Win32
+               Windows 7 Debug|x64 = Windows 7 Debug|x64
+               Windows 7 Release|Win32 = Windows 7 Release|Win32
+               Windows 7 Release|x64 = Windows 7 Release|x64
+               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 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+               {4BF41378-C01B-4002-8581-563C5F703362}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+               {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 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 7 Release|x64.Deploy.0 = Windows 7 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 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+               {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 7 Release|x64.Build.0 = Windows 7 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 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+               {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 7 Release|x64.Build.0 = Windows 7 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 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+               {14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 7 Release|x64.Build.0 = Windows 7 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 7 Debug|Win32.ActiveCfg = Windows 7 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Debug|Win32.Build.0 = Windows 7 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Debug|Win32.Deploy.0 = Windows 7 Debug|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Debug|x64.ActiveCfg = Windows 7 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Debug|x64.Build.0 = Windows 7 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Debug|x64.Deploy.0 = Windows 7 Debug|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Release|Win32.ActiveCfg = Windows 7 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Release|Win32.Build.0 = Windows 7 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Release|Win32.Deploy.0 = Windows 7 Release|Win32
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Release|x64.ActiveCfg = Windows 7 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Release|x64.Build.0 = Windows 7 Release|x64
+               {92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 7 Release|x64.Deploy.0 = Windows 7 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/vs2017/xenbus/xenbus.vcxproj b/vs2017/xenbus/xenbus.vcxproj
new file mode 100644 (file)
index 0000000..eaf3a8c
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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;5045;6001;6054;28123;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/vs2017/xenbus/xenbus.vcxproj.user b/vs2017/xenbus/xenbus.vcxproj.user
new file mode 100644 (file)
index 0000000..db41a92
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.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/vs2017/xenbus_coinst/xenbus_coinst.vcxproj b/vs2017/xenbus_coinst/xenbus_coinst.vcxproj
new file mode 100644 (file)
index 0000000..258d421
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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>
+    <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;5045;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>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+    </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/vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user b/vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user
new file mode 100644 (file)
index 0000000..db41a92
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.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/vs2017/xenbus_monitor/xenbus_monitor.vcxproj b/vs2017/xenbus_monitor/xenbus_monitor.vcxproj
new file mode 100644 (file)
index 0000000..475937b
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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;5045;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/vs2017/xenbus_monitor/xenbus_monitor.vcxproj.user b/vs2017/xenbus_monitor/xenbus_monitor.vcxproj.user
new file mode 100644 (file)
index 0000000..db41a92
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.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/vs2017/xenfilt/xenfilt.vcxproj b/vs2017/xenfilt/xenfilt.vcxproj
new file mode 100644 (file)
index 0000000..3e00c8c
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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;5045;6001;6054;28123;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>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</PreprocessorDefinitions>
+    </ClCompile>
+  </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/vs2017/xenfilt/xenfilt.vcxproj.user b/vs2017/xenfilt/xenfilt.vcxproj.user
new file mode 100644 (file)
index 0000000..db41a92
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.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>