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

[PATCH] Add build options for EWDK 22621



From: Paul Durrant <pdurrant@xxxxxxxxxx>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used

Suggested-by: Owen Smith <owen.smith@xxxxxxxxxx>
Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx>

Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx>
---
 build.ps1                                     |  16 +-
 src/xeniface/util.h                           |  11 +-
 vs2022/configs.props                          |  45 +++++
 vs2022/package/package.vcxproj                |  77 +++++++
 vs2022/package/package.vcxproj.user           |   8 +
 vs2022/targets.props                          |  35 ++++
 vs2022/version/version.vcxproj                |  22 ++
 vs2022/xenagent/xenagent.vcxproj              |  88 ++++++++
 vs2022/xenagent/xenagent.vcxproj.user         |   4 +
 vs2022/xencontrol/xencontrol.vcxproj          |  73 +++++++
 vs2022/xeniface.sln                           | 188 ++++++++++++++++++
 vs2022/xeniface/xeniface.vcxproj              |  97 +++++++++
 vs2022/xeniface/xeniface.vcxproj.user         |   8 +
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  65 ++++++
 .../xeniface_coinst.vcxproj.user              |   8 +
 15 files changed, 733 insertions(+), 12 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xenagent/xenagent.vcxproj
 create mode 100644 vs2022/xenagent/xenagent.vcxproj.user
 create mode 100644 vs2022/xencontrol/xencontrol.vcxproj
 create mode 100644 vs2022/xeniface.sln
 create mode 100644 vs2022/xeniface/xeniface.vcxproj
 create mode 100644 vs2022/xeniface/xeniface.vcxproj.user
 create mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj
 create mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 89dc12dfa6ab..a7da9ba4c8db 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
        )
 
        $visualstudioversion = $Env:VisualStudioVersion
-       $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = 
"vs2019"; }
-       $configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; 
"16.0" = "Windows 8"; }
+       $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = 
"vs2019"; "17.0" = "vs2022"; }
+       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; 
"16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 
        $params = @{
                SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
        $visualstudioversion = $Env:VisualStudioVersion
-       $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = 
"vs2019"; }
-       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; 
"16.0" = "Windows 10"; }
+       $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = 
"vs2019"; "17.0" = "vs2022"; }
+       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; 
"16.0" = "Windows 10"; "17.0" = "Windows 10"; }
        $arch = "x64"
 
        $params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
        $visualstudioversion = $Env:VisualStudioVersion
-       $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = 
"vs2019"; }
-       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; 
"16.0" = "Windows 10"; }
+       $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = 
"vs2019"; "17.0" = "vs2022"; }
+       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; 
"16.0" = "Windows 10"; "17.0" = "Windows 10"; }
        $arch = "x64"
 
        $params = @{
@@ -112,7 +112,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-       Build "x86" $Type
+       if ($Env:VisualStudioVersion -ne "17.0") {
+               Build "x86" $Type
+       }
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/src/xeniface/util.h b/src/xeniface/util.h
index bc7518ac23f5..ef00a5513667 100644
--- a/src/xeniface/util.h
+++ b/src/xeniface/util.h
@@ -33,6 +33,7 @@
 #define _XENIFACE_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..cdbb3c8c8951
--- /dev/null
+++ b/vs2022/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/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..a0676937c314
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{9B071A35-897C-477A-AEB7-95F77618A21D}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList 
Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_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>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xeniface\xeniface.vcxproj">
+      <Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xeniface_coinst\xeniface_coinst.vcxproj">
+      <Project>{85c731ad-2ea2-4049-a542-d2d38ede938c}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenagent\xenagent.vcxproj">
+      <Project>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xencontrol\xencontrol.vcxproj">
+      <Project>{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xeniface.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <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>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+      SourceFiles="@(PackageFiles)"
+      
DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user 
b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..8fcc92e8ab2c
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..64598fc29b77
--- /dev/null
+++ b/vs2022/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/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?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="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile 
-NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) 
$(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xenagent/xenagent.vcxproj b/vs2022/xenagent/xenagent.vcxproj
new file mode 100644
index 000000000000..02b7b6568401
--- /dev/null
+++ b/vs2022/xenagent/xenagent.vcxproj
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <PropertyGroup>
+    <CustomBuildAfterTargets>Link</CustomBuildAfterTargets>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>PROJECT=$(ProjectName);WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4127;4350;4365;4571;4625;4626;4711;4774;4548;4820;4668;4255;5026;5027;5032;5038;5039;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>powrprof.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </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" />
+  </ItemGroup>
+  <ItemGroup>
+    <MessageCompile Include="..\..\src\xenagent\messages.mc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xenagent\service.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\devicelist.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\xenifacedevice.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\convdevice.cpp"/>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenagent\xenagent.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="..\..\src\xenagent\xen.ico" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenagent/xenagent.vcxproj.user 
b/vs2022/xenagent/xenagent.vcxproj.user
new file mode 100644
index 000000000000..510ca8ae05e6
--- /dev/null
+++ b/vs2022/xenagent/xenagent.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup />
+</Project>
diff --git a/vs2022/xencontrol/xencontrol.vcxproj 
b/vs2022/xencontrol/xencontrol.vcxproj
new file mode 100644
index 000000000000..5474ceb85e01
--- /dev/null
+++ b/vs2022/xencontrol/xencontrol.vcxproj
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}</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>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;XENCONTROL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5032;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <ExceptionHandling>false</ExceptionHandling>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <RuntimeLibrary 
Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary 
Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      
<AdditionalDependencies>setupapi.lib;ws2_32.lib;shlwapi.lib;wtsapi32.lib;userenv.lib;version.lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </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="$(OutDir)$(TargetName).dll" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).lib" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xencontrol\xencontrol.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\include\xencontrol.h" />
+    <ClInclude Include="..\..\src\xencontrol\xencontrol_private.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xencontrol\xencontrol.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xeniface.sln b/vs2022/xeniface.sln
new file mode 100644
index 000000000000..f3aa87973b58
--- /dev/null
+++ b/vs2022/xeniface.sln
@@ -0,0 +1,188 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", 
"version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface_coinst", 
"xeniface_coinst\xeniface_coinst.vcxproj", 
"{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", 
"xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenagent", 
"xenagent\xenagent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencontrol", 
"xencontrol\xencontrol.vcxproj", "{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", 
"package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
+       ProjectSection(ProjectDependencies) = postProject
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = 
{65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+               {22166290-65D8-49D2-BB88-33201797C7D8} = 
{22166290-65D8-49D2-BB88-33201797C7D8}
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C} = 
{85C731AD-2EA2-4049-A542-D2D38EDE938C}
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = 
{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2} = 
{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}
+       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
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Debug|Win32.Build.0 = Windows 8 Debug|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Debug|x64.ActiveCfg = Windows 8 Debug|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Debug|x64.Build.0 = Windows 8 Debug|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Debug|x64.Deploy.0 = Windows 8 Debug|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Release|Win32.ActiveCfg = Windows 8 Release|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Release|Win32.Build.0 = Windows 8 Release|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Release|Win32.Deploy.0 = Windows 8 Release|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Release|x64.ActiveCfg = Windows 8 Release|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Release|x64.Build.0 = Windows 8 Release|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 
Release|x64.Deploy.0 = Windows 8 Release|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Debug|Win32.Build.0 = Windows 10 Debug|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Debug|x64.ActiveCfg = Windows 10 Debug|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Debug|x64.Build.0 = Windows 10 Debug|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Debug|x64.Deploy.0 = Windows 10 Debug|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Release|Win32.ActiveCfg = Windows 10 Release|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Release|Win32.Build.0 = Windows 10 Release|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Release|Win32.Deploy.0 = Windows 10 Release|Win32
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Release|x64.ActiveCfg = Windows 10 Release|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Release|x64.Build.0 = Windows 10 Release|x64
+               {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 
Release|x64.Deploy.0 = Windows 10 Release|x64
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/vs2022/xeniface/xeniface.vcxproj b/vs2022/xeniface/xeniface.vcxproj
new file mode 100644
index 000000000000..b9756dd9a5e5
--- /dev/null
+++ b/vs2022/xeniface/xeniface.vcxproj
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{22166290-65D8-49D2-BB88-33201797C7D8}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      
<DisableSpecificWarnings>4061;4464;4711;4548;4770;4820;4668;4255;5045;6001;6054;26451;28160;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      
<AdditionalDependencies>$(DDK_LIB_PATH)\ntstrsafe.lib;$(DDK_LIB_PATH)\procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      
<PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xeniface\ioctls.c" />
+    <ClCompile Include="..\..\src\xeniface\wmi.c" />
+    <ClCompile Include="..\..\src\xeniface\driver.c" />
+    <ClCompile Include="..\..\src\xeniface\fdo.c" />
+    <ClCompile Include="..\..\src\xeniface\registry.c" />
+    <ClCompile Include="..\..\src\xeniface\thread.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_sharedinfo.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_suspend.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_evtchn.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_gnttab.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_store.c" />
+    <ClCompile Include="..\..\src\xeniface\irp_queue.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <Mofcomp Include="../../src/xeniface/wmi.mof">
+      <CreateBinaryMofFile>$(IntDir)/wmi.bmf</CreateBinaryMofFile>
+    </Mofcomp>
+  </ItemGroup>
+  <ItemGroup>
+    <Wmimofck Include="$(IntDir)\wmi.bmf">
+      <HeaderOutputFile>..\..\src\xeniface\wmi_generated.h</HeaderOutputFile>
+    </Wmimofck>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xeniface\xeniface.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xeniface/xeniface.vcxproj.user 
b/vs2022/xeniface/xeniface.vcxproj.user
new file mode 100644
index 000000000000..8fcc92e8ab2c
--- /dev/null
+++ b/vs2022/xeniface/xeniface.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xeniface_coinst/xeniface_coinst.vcxproj 
b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj
new file mode 100644
index 000000000000..9035a1425e31
--- /dev/null
+++ b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{85c731ad-2ea2-4049-a542-d2d38ede938c}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      
<PreprocessorDefinitions>PROJECT=$(ProjectName);%(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/xeniface_coinst.def</ModuleDefinitionFile>
+      
<AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </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" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xeniface_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user 
b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user
new file mode 100644
index 000000000000..8fcc92e8ab2c
--- /dev/null
+++ b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    
<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.25.1




 


Rackspace

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