From c2622b1208140d143dd3448e01a94e45a13c8688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Sandstr=C3=B6m?= Date: Sun, 6 Oct 2024 23:28:59 +0200 Subject: [PATCH 1/7] Renameing and buildt --- .../{IddSampleDriver.sln => MttVDD.sln} | 2 +- .../{IddSampleDriver => MttVDD}/Driver.cpp | 0 .../{IddSampleDriver => MttVDD}/Driver.h | 0 .../IddSampleDriver.inf => MttVDD/MttVDD.inf} | Bin 4438 -> 4200 bytes .../IddSampleDriver.sln => MttVDD/MttVDD.sln} | 0 .../MttVDD.vcxproj} | 2 +- .../MttVDD.vcxproj.filters} | 2 +- .../{IddSampleDriver => MttVDD}/Trace.h | 0 .../{IddSampleDriver => MttVDD}/readme.md | 0 .../{IddSampleDriver.sln => MttVDD.sln} | 2 +- .../{IddSampleDriver => MttVDD}/Driver.cpp | 0 .../{IddSampleDriver => MttVDD}/Driver.h | 0 .../IddSampleDriver.inf => MttVDD/MttVDD.inf} | Bin .../IddSampleDriver.sln => MttVDD/MttVDD.sln} | 0 .../MttVDD.vcxproj} | 0 .../MttVDD.vcxproj.filters} | 0 .../{IddSampleDriver => MttVDD}/Trace.h | 0 .../{IddSampleDriver => MttVDD}/readme.md | 0 18 files changed, 4 insertions(+), 4 deletions(-) rename Virtual Display Driver (HDR)/{IddSampleDriver.sln => MttVDD.sln} (94%) rename Virtual Display Driver (HDR)/{IddSampleDriver => MttVDD}/Driver.cpp (100%) rename Virtual Display Driver (HDR)/{IddSampleDriver => MttVDD}/Driver.h (100%) rename Virtual Display Driver (HDR)/{IddSampleDriver/IddSampleDriver.inf => MttVDD/MttVDD.inf} (69%) rename Virtual Display Driver (HDR)/{IddSampleDriver/IddSampleDriver.sln => MttVDD/MttVDD.sln} (100%) rename Virtual Display Driver (HDR)/{IddSampleDriver/IddSampleDriver.vcxproj => MttVDD/MttVDD.vcxproj} (99%) rename Virtual Display Driver (HDR)/{IddSampleDriver/IddSampleDriver.vcxproj.filters => MttVDD/MttVDD.vcxproj.filters} (97%) rename Virtual Display Driver (HDR)/{IddSampleDriver => MttVDD}/Trace.h (100%) rename Virtual Display Driver (HDR)/{IddSampleDriver => MttVDD}/readme.md (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver.sln => MttVDD.sln} (94%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver => MttVDD}/Driver.cpp (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver => MttVDD}/Driver.h (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver/IddSampleDriver.inf => MttVDD/MttVDD.inf} (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver/IddSampleDriver.sln => MttVDD/MttVDD.sln} (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver/IddSampleDriver.vcxproj => MttVDD/MttVDD.vcxproj} (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver/IddSampleDriver.vcxproj.filters => MttVDD/MttVDD.vcxproj.filters} (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver => MttVDD}/Trace.h (100%) rename Virtual Display Driver (Non-HDR)/{IddSampleDriver => MttVDD}/readme.md (100%) diff --git a/Virtual Display Driver (HDR)/IddSampleDriver.sln b/Virtual Display Driver (HDR)/MttVDD.sln similarity index 94% rename from Virtual Display Driver (HDR)/IddSampleDriver.sln rename to Virtual Display Driver (HDR)/MttVDD.sln index fb121d5..e8045da 100644 --- a/Virtual Display Driver (HDR)/IddSampleDriver.sln +++ b/Virtual Display Driver (HDR)/MttVDD.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.31129.286 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IddSampleDriver", "IddSampleDriver\IddSampleDriver.vcxproj", "{2D54CB75-8B17-4F11-97DC-847B0244CD46}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MttVDD", "MttVDD\MttVDD.vcxproj", "{2D54CB75-8B17-4F11-97DC-847B0244CD46}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/Driver.cpp b/Virtual Display Driver (HDR)/MttVDD/Driver.cpp similarity index 100% rename from Virtual Display Driver (HDR)/IddSampleDriver/Driver.cpp rename to Virtual Display Driver (HDR)/MttVDD/Driver.cpp diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/Driver.h b/Virtual Display Driver (HDR)/MttVDD/Driver.h similarity index 100% rename from Virtual Display Driver (HDR)/IddSampleDriver/Driver.h rename to Virtual Display Driver (HDR)/MttVDD/Driver.h diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.inf b/Virtual Display Driver (HDR)/MttVDD/MttVDD.inf similarity index 69% rename from Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.inf rename to Virtual Display Driver (HDR)/MttVDD/MttVDD.inf index a962d0efd7ef17aa319fe9e5fdf4cf8f08f75a03..e6ba858c27a290845db0c2e9a8e5c3547ff05e64 100644 GIT binary patch delta 279 zcmcbn^g==W|37O6UIs1(YX$`dUxpGO3}bL%aM`F?&B%?!-+YiU7e!$5Lq_4ram-=J ziY8xVK8noWyqV=OlQ@zo4DJj?4EYSD3j`R4U}(Tuz`@f$L^lldrq6`Lbj9y1Y8;?CaAXp7ge3_AF|JNY?>IetqfYjTzn zP_dG;7r%}M1HT3%0CD(g AP5=M^ diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.sln b/Virtual Display Driver (HDR)/MttVDD/MttVDD.sln similarity index 100% rename from Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.sln rename to Virtual Display Driver (HDR)/MttVDD/MttVDD.sln diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.vcxproj b/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj similarity index 99% rename from Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.vcxproj rename to Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj index f399dae..0b43851 100644 --- a/Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.vcxproj +++ b/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj @@ -45,7 +45,7 @@ - + {2D54CB75-8B17-4F11-97DC-847B0244CD46} diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.vcxproj.filters b/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj.filters similarity index 97% rename from Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.vcxproj.filters rename to Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj.filters index c2ba39d..dffad81 100644 --- a/Virtual Display Driver (HDR)/IddSampleDriver/IddSampleDriver.vcxproj.filters +++ b/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj.filters @@ -19,7 +19,7 @@ - + Driver Files diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/Trace.h b/Virtual Display Driver (HDR)/MttVDD/Trace.h similarity index 100% rename from Virtual Display Driver (HDR)/IddSampleDriver/Trace.h rename to Virtual Display Driver (HDR)/MttVDD/Trace.h diff --git a/Virtual Display Driver (HDR)/IddSampleDriver/readme.md b/Virtual Display Driver (HDR)/MttVDD/readme.md similarity index 100% rename from Virtual Display Driver (HDR)/IddSampleDriver/readme.md rename to Virtual Display Driver (HDR)/MttVDD/readme.md diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver.sln b/Virtual Display Driver (Non-HDR)/MttVDD.sln similarity index 94% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver.sln rename to Virtual Display Driver (Non-HDR)/MttVDD.sln index fb121d5..e8045da 100644 --- a/Virtual Display Driver (Non-HDR)/IddSampleDriver.sln +++ b/Virtual Display Driver (Non-HDR)/MttVDD.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.31129.286 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IddSampleDriver", "IddSampleDriver\IddSampleDriver.vcxproj", "{2D54CB75-8B17-4F11-97DC-847B0244CD46}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MttVDD", "MttVDD\MttVDD.vcxproj", "{2D54CB75-8B17-4F11-97DC-847B0244CD46}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/Driver.cpp b/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/Driver.cpp rename to Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/Driver.h b/Virtual Display Driver (Non-HDR)/MttVDD/Driver.h similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/Driver.h rename to Virtual Display Driver (Non-HDR)/MttVDD/Driver.h diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.inf b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.inf similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.inf rename to Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.inf diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.sln b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.sln similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.sln rename to Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.sln diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.vcxproj b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.vcxproj rename to Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.vcxproj.filters b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/IddSampleDriver.vcxproj.filters rename to Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/Trace.h b/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/Trace.h rename to Virtual Display Driver (Non-HDR)/MttVDD/Trace.h diff --git a/Virtual Display Driver (Non-HDR)/IddSampleDriver/readme.md b/Virtual Display Driver (Non-HDR)/MttVDD/readme.md similarity index 100% rename from Virtual Display Driver (Non-HDR)/IddSampleDriver/readme.md rename to Virtual Display Driver (Non-HDR)/MttVDD/readme.md From bd5992a49c1e37c8673b31f566a801a9fcce7dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Sandstr=C3=B6m?= Date: Sun, 6 Oct 2024 23:48:49 +0200 Subject: [PATCH 2/7] Forgot inf rename, and build trial of non-hdr Still not building due to Adapteroption::load in driver.cpp and adapteroption.h. Feel not as vital as hdr, so PR non building. --- .../MttVDD/MttVDD.inf | Bin 4216 -> 3974 bytes .../MttVDD/MttVDD.vcxproj | 2 +- .../MttVDD/MttVDD.vcxproj.filters | 2 +- .../MttVDD/Trace.h | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.inf b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.inf index 441c39806111ab2bde294caae410d97f49209880..ef39a01682f83e9b4e23c71fd9e122deff3497f7 100644 GIT binary patch delta 300 zcmeyN&?Ybb|DQDjF9R2YHG=|!FGC3shB3G>xNOv{X5>cVZ$8MFiy|=jA*1l*IA#|V zMf;f_GocEwwKGa18N;B1YzagB - + {2D54CB75-8B17-4F11-97DC-847B0244CD46} diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters index ff0ef33..c8f6488 100644 --- a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters +++ b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters @@ -19,7 +19,7 @@ - + Driver Files diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h b/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h index c165590..3ca65bc 100644 --- a/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h +++ b/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h @@ -59,5 +59,5 @@ Environment: // #if UMDF_VERSION_MAJOR == 2 && UMDF_VERSION_MINOR == 0 // TODO: Update the name of the tracing provider - #define MYDRIVER_TRACING_ID L"Microsoft\\UMDF2.0\\IddSampleDriver V1.0" + #define MYDRIVER_TRACING_ID L"Microsoft\\UMDF2.0\\MttVDD V1.0" #endif \ No newline at end of file From f0f70d12c8a065ae8df99d649a47436cf6195f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Sandstr=C3=B6m?= Date: Mon, 7 Oct 2024 00:46:26 +0200 Subject: [PATCH 3/7] Compiled now Had to change the path variable to a wide (L) --- Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp b/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp index e23d5a6..879c1b8 100644 --- a/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp +++ b/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp @@ -149,7 +149,7 @@ NTSTATUS IddSampleDeviceAdd(WDFDRIVER Driver, PWDFDEVICE_INIT pDeviceInit) // IddConfig.EvtIddCxDeviceIoControl = IddSampleIoDeviceControl; loadOptions("C:\\IddSampleDriver\\option.txt"); - Options.Adapter.load("C:\\IddSampleDriver\\adapter.txt"); + Options.Adapter.load(L"C:\\IddSampleDriver\\adapter.txt"); IddConfig.EvtIddCxAdapterInitFinished = IddSampleAdapterInitFinished; IddConfig.EvtIddCxParseMonitorDescription = IddSampleParseMonitorDescription; From 2290b1368b87941ae1959554dd871edc00cd7c22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Sandstr=C3=B6m?= Date: Mon, 7 Oct 2024 01:14:00 +0200 Subject: [PATCH 4/7] Fixed debug compile error FileDigest and PreproccessorDefinaitionsw --- Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj index b8cb8a9..cc6d823 100644 --- a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj +++ b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj @@ -242,10 +242,14 @@ true stdcpp17 $(ProjectDir)..\..\Common\Include;%(AdditionalIncludeDirectories) + IDDCX_VERSION_MAJOR=1;IDDCX_VERSION_MINOR=4;%(PreprocessorDefinitions) %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib + + SHA256 + From 116e72c0a9cbe0ec433f97115fa836bb5946c6eb Mon Sep 17 00:00:00 2001 From: Bud <75859057+bud3699@users.noreply.github.com> Date: Tue, 8 Oct 2024 02:57:43 +0100 Subject: [PATCH 5/7] Updated Post Build Options --- Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj b/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj index 0b43851..b2c3ed9 100644 --- a/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj +++ b/Virtual Display Driver (HDR)/MttVDD/MttVDD.vcxproj @@ -252,7 +252,7 @@ SHA1 - copy "$(ProjectDir)..\vdd_settings.xml" "$(TargetDir)\IddSampleDriver" + copy "$(ProjectDir)..\vdd_settings.xml" "$(TargetDir)\MttVDD" @@ -272,7 +272,7 @@ SHA256 - copy "$(ProjectDir)..\vdd_settings.xml" "$(TargetDir)\IddSampleDriver" + copy "$(ProjectDir)..\vdd_settings.xml" "$(TargetDir)\MttVDD" From a918f826072ecb380107ec94dfcc76052c72f167 Mon Sep 17 00:00:00 2001 From: Bud <75859057+bud3699@users.noreply.github.com> Date: Wed, 9 Oct 2024 02:54:52 +0100 Subject: [PATCH 6/7] Post build options for nonhdr --- Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj index cc6d823..45fca58 100644 --- a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj +++ b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj @@ -250,6 +250,9 @@ SHA256 + + copy "$(ProjectDir)..\option.txt" "$(TargetDir)\MttVDD" + @@ -268,6 +271,9 @@ SHA256 + + copy "$(ProjectDir)..\option.txt" "$(TargetDir)\MttVDD" + From e889902057cbd3367688d0b01c5a4b10eefb9627 Mon Sep 17 00:00:00 2001 From: Bud <75859057+bud3699@users.noreply.github.com> Date: Thu, 10 Oct 2024 03:15:21 +0100 Subject: [PATCH 7/7] Removed old windows 10 build (In favour of universal) RIP Non-HDR build --- .../.gitattributes | 63 -- Virtual Display Driver (Non-HDR)/.gitignore | 242 ------ .../CppProperties.json | 21 - Virtual Display Driver (Non-HDR)/MttVDD.sln | 51 -- .../MttVDD/Driver.cpp | 747 ------------------ .../MttVDD/Driver.h | 106 --- .../MttVDD/MttVDD.inf | Bin 3974 -> 0 bytes .../MttVDD/MttVDD.sln | 51 -- .../MttVDD/MttVDD.vcxproj | 335 -------- .../MttVDD/MttVDD.vcxproj.filters | 42 - .../MttVDD/Trace.h | 63 -- .../MttVDD/readme.md | 14 - Virtual Display Driver (Non-HDR)/option.txt | 73 -- 13 files changed, 1808 deletions(-) delete mode 100644 Virtual Display Driver (Non-HDR)/.gitattributes delete mode 100644 Virtual Display Driver (Non-HDR)/.gitignore delete mode 100644 Virtual Display Driver (Non-HDR)/CppProperties.json delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD.sln delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/Driver.h delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.inf delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.sln delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/Trace.h delete mode 100644 Virtual Display Driver (Non-HDR)/MttVDD/readme.md delete mode 100644 Virtual Display Driver (Non-HDR)/option.txt diff --git a/Virtual Display Driver (Non-HDR)/.gitattributes b/Virtual Display Driver (Non-HDR)/.gitattributes deleted file mode 100644 index 1ff0c42..0000000 --- a/Virtual Display Driver (Non-HDR)/.gitattributes +++ /dev/null @@ -1,63 +0,0 @@ -############################################################################### -# Set default behavior to automatically normalize line endings. -############################################################################### -* text=auto - -############################################################################### -# Set default behavior for command prompt diff. -# -# This is need for earlier builds of msysgit that does not have it on by -# default for csharp files. -# Note: This is only used by command line -############################################################################### -#*.cs diff=csharp - -############################################################################### -# Set the merge driver for project and solution files -# -# Merging from the command prompt will add diff markers to the files if there -# are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following -# file extensions to fail to load in VS. An alternative would be to treat -# these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just uncomment the entries below -############################################################################### -#*.sln merge=binary -#*.csproj merge=binary -#*.vbproj merge=binary -#*.vcxproj merge=binary -#*.vcproj merge=binary -#*.dbproj merge=binary -#*.fsproj merge=binary -#*.lsproj merge=binary -#*.wixproj merge=binary -#*.modelproj merge=binary -#*.sqlproj merge=binary -#*.wwaproj merge=binary - -############################################################################### -# behavior for image files -# -# image files are treated as binary by default. -############################################################################### -#*.jpg binary -#*.png binary -#*.gif binary - -############################################################################### -# diff behavior for common document formats -# -# Convert binary document formats to text before diffing them. This feature -# is only available from the command line. Turn it on by uncommenting the -# entries below. -############################################################################### -#*.doc diff=astextplain -#*.DOC diff=astextplain -#*.docx diff=astextplain -#*.DOCX diff=astextplain -#*.dot diff=astextplain -#*.DOT diff=astextplain -#*.pdf diff=astextplain -#*.PDF diff=astextplain -#*.rtf diff=astextplain -#*.RTF diff=astextplain diff --git a/Virtual Display Driver (Non-HDR)/.gitignore b/Virtual Display Driver (Non-HDR)/.gitignore deleted file mode 100644 index 1c9a181..0000000 --- a/Virtual Display Driver (Non-HDR)/.gitignore +++ /dev/null @@ -1,242 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -[Xx]64/ -[Xx]86/ -[Bb]uild/ -bld/ -[Bb]in/ -[Oo]bj/ - -# Visual Studio 2015 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# DNX -project.lock.json -artifacts/ - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml - -# TODO: Un-comment the next line if you do not want to checkin -# your web deploy settings because they may include unencrypted -# passwords -#*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config -# NuGet v3's project.json files produces more ignoreable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directory -AppPackages/ -BundleArtifacts/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -[Ss]tyle[Cc]op.* -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -node_modules/ -orleans.codegen.cs - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# LightSwitch generated files -GeneratedArtifacts/ -ModelManifest.xml - -# Paket dependency manager -.paket/paket.exe - -# FAKE - F# Make -.fake/ diff --git a/Virtual Display Driver (Non-HDR)/CppProperties.json b/Virtual Display Driver (Non-HDR)/CppProperties.json deleted file mode 100644 index f598ba5..0000000 --- a/Virtual Display Driver (Non-HDR)/CppProperties.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "configurations": [ - { - "inheritEnvironments": [ - "msvc_x64" - ], - "name": "x64-Debug", - "includePath": [ - "${env.INCLUDE}", - "${workspaceRoot}\\**" - ], - "defines": [ - "WIN32", - "_DEBUG", - "UNICODE", - "_UNICODE" - ], - "intelliSenseMode": "windows-msvc-x64" - } - ] -} \ No newline at end of file diff --git a/Virtual Display Driver (Non-HDR)/MttVDD.sln b/Virtual Display Driver (Non-HDR)/MttVDD.sln deleted file mode 100644 index e8045da..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD.sln +++ /dev/null @@ -1,51 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31129.286 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MttVDD", "MttVDD\MttVDD.vcxproj", "{2D54CB75-8B17-4F11-97DC-847B0244CD46}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM - Debug|ARM64 = Debug|ARM64 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|ARM = Release|ARM - Release|ARM64 = Release|ARM64 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM.ActiveCfg = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM.Build.0 = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM.Deploy.0 = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM64.Build.0 = Debug|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM64.Deploy.0 = Debug|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x64.ActiveCfg = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x64.Build.0 = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x64.Deploy.0 = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x86.ActiveCfg = Debug|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x86.Build.0 = Debug|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x86.Deploy.0 = Debug|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM.ActiveCfg = Release|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM.Build.0 = Release|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM.Deploy.0 = Release|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM64.ActiveCfg = Release|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM64.Build.0 = Release|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM64.Deploy.0 = Release|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x64.ActiveCfg = Release|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x64.Build.0 = Release|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x64.Deploy.0 = Release|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x86.ActiveCfg = Release|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x86.Build.0 = Release|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x86.Deploy.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DE75497E-BE4F-4215-8345-84C5F8358E3B} - EndGlobalSection -EndGlobal diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp b/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp deleted file mode 100644 index 879c1b8..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD/Driver.cpp +++ /dev/null @@ -1,747 +0,0 @@ -/*++ - -Copyright (c) Microsoft Corporation - -Abstract: - - This module contains a sample implementation of an indirect display driver. See the included README.md file and the - various TODO blocks throughout this file and all accompanying files for information on building a production driver. - - MSDN documentation on indirect displays can be found at https://msdn.microsoft.com/en-us/library/windows/hardware/mt761968(v=vs.85).aspx. - -Environment: - - User Mode, UMDF - ---*/ - -#include "Driver.h" -#include "Driver.tmh" -#include -#include -#include -#include -#include -#include - -using namespace std; -using namespace Microsoft::IndirectDisp; -using namespace Microsoft::WRL; - -extern "C" DRIVER_INITIALIZE DriverEntry; - -EVT_WDF_DRIVER_DEVICE_ADD IddSampleDeviceAdd; -EVT_WDF_DEVICE_D0_ENTRY IddSampleDeviceD0Entry; - -EVT_IDD_CX_ADAPTER_INIT_FINISHED IddSampleAdapterInitFinished; -EVT_IDD_CX_ADAPTER_COMMIT_MODES IddSampleAdapterCommitModes; - -EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION IddSampleParseMonitorDescription; -EVT_IDD_CX_MONITOR_GET_DEFAULT_DESCRIPTION_MODES IddSampleMonitorGetDefaultModes; -EVT_IDD_CX_MONITOR_QUERY_TARGET_MODES IddSampleMonitorQueryModes; - -EVT_IDD_CX_MONITOR_ASSIGN_SWAPCHAIN IddSampleMonitorAssignSwapChain; -EVT_IDD_CX_MONITOR_UNASSIGN_SWAPCHAIN IddSampleMonitorUnassignSwapChain; - -struct -{ - AdapterOption Adapter; -} Options; -vector> monitorModes; -vector< DISPLAYCONFIG_VIDEO_SIGNAL_INFO> s_KnownMonitorModes2; -UINT numVirtualDisplays; - -struct IndirectDeviceContextWrapper -{ - IndirectDeviceContext* pContext; - - void Cleanup() - { - delete pContext; - pContext = nullptr; - } -}; - -// This macro creates the methods for accessing an IndirectDeviceContextWrapper as a context for a WDF object -WDF_DECLARE_CONTEXT_TYPE(IndirectDeviceContextWrapper); - -extern "C" BOOL WINAPI DllMain( - _In_ HINSTANCE hInstance, - _In_ UINT dwReason, - _In_opt_ LPVOID lpReserved) -{ - UNREFERENCED_PARAMETER(hInstance); - UNREFERENCED_PARAMETER(lpReserved); - UNREFERENCED_PARAMETER(dwReason); - - return TRUE; -} - -_Use_decl_annotations_ -extern "C" NTSTATUS DriverEntry( - PDRIVER_OBJECT pDriverObject, - PUNICODE_STRING pRegistryPath -) -{ - WDF_DRIVER_CONFIG Config; - NTSTATUS Status; - - WDF_OBJECT_ATTRIBUTES Attributes; - WDF_OBJECT_ATTRIBUTES_INIT(&Attributes); - - WDF_DRIVER_CONFIG_INIT(&Config, - IddSampleDeviceAdd - ); - - Status = WdfDriverCreate(pDriverObject, pRegistryPath, &Attributes, &Config, WDF_NO_HANDLE); - if (!NT_SUCCESS(Status)) - { - return Status; - } - - return Status; -} -vector split(string& input, char delimiter) -{ - istringstream stream(input); - string field; - vector result; - while (getline(stream, field, delimiter)) { - result.push_back(field); - } - return result; -} - -void loadOptions(string filepath) { - ifstream ifs(filepath); - - string line; - vector> res; - getline(ifs, line);//num of displays - numVirtualDisplays = stoi(line); - while (getline(ifs, line)) { - vector strvec = split(line, ','); - if (strvec.size() == 3 && strvec[0].substr(0, 1) != "#") { - res.push_back({ stoi(strvec[0]),stoi(strvec[1]),stoi(strvec[2]) }); - } - } - monitorModes = res; return; -} - -_Use_decl_annotations_ -NTSTATUS IddSampleDeviceAdd(WDFDRIVER Driver, PWDFDEVICE_INIT pDeviceInit) -{ - NTSTATUS Status = STATUS_SUCCESS; - WDF_PNPPOWER_EVENT_CALLBACKS PnpPowerCallbacks; - - UNREFERENCED_PARAMETER(Driver); - - // Register for power callbacks - in this sample only power-on is needed - WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&PnpPowerCallbacks); - PnpPowerCallbacks.EvtDeviceD0Entry = IddSampleDeviceD0Entry; - WdfDeviceInitSetPnpPowerEventCallbacks(pDeviceInit, &PnpPowerCallbacks); - - IDD_CX_CLIENT_CONFIG IddConfig; - IDD_CX_CLIENT_CONFIG_INIT(&IddConfig); - - // If the driver wishes to handle custom IoDeviceControl requests, it's necessary to use this callback since IddCx - // redirects IoDeviceControl requests to an internal queue. This sample does not need this. - // IddConfig.EvtIddCxDeviceIoControl = IddSampleIoDeviceControl; - - loadOptions("C:\\IddSampleDriver\\option.txt"); - Options.Adapter.load(L"C:\\IddSampleDriver\\adapter.txt"); - IddConfig.EvtIddCxAdapterInitFinished = IddSampleAdapterInitFinished; - - IddConfig.EvtIddCxParseMonitorDescription = IddSampleParseMonitorDescription; - IddConfig.EvtIddCxMonitorGetDefaultDescriptionModes = IddSampleMonitorGetDefaultModes; - IddConfig.EvtIddCxMonitorQueryTargetModes = IddSampleMonitorQueryModes; - IddConfig.EvtIddCxAdapterCommitModes = IddSampleAdapterCommitModes; - IddConfig.EvtIddCxMonitorAssignSwapChain = IddSampleMonitorAssignSwapChain; - IddConfig.EvtIddCxMonitorUnassignSwapChain = IddSampleMonitorUnassignSwapChain; - - Status = IddCxDeviceInitConfig(pDeviceInit, &IddConfig); - if (!NT_SUCCESS(Status)) - { - return Status; - } - - WDF_OBJECT_ATTRIBUTES Attr; - WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&Attr, IndirectDeviceContextWrapper); - Attr.EvtCleanupCallback = [](WDFOBJECT Object) - { - // Automatically cleanup the context when the WDF object is about to be deleted - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(Object); - if (pContext) - { - pContext->Cleanup(); - } - }; - - WDFDEVICE Device = nullptr; - Status = WdfDeviceCreate(&pDeviceInit, &Attr, &Device); - if (!NT_SUCCESS(Status)) - { - return Status; - } - - Status = IddCxDeviceInitialize(Device); - - // Create a new device context object and attach it to the WDF device object - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(Device); - pContext->pContext = new IndirectDeviceContext(Device); - - return Status; -} - -_Use_decl_annotations_ -NTSTATUS IddSampleDeviceD0Entry(WDFDEVICE Device, WDF_POWER_DEVICE_STATE PreviousState) -{ - UNREFERENCED_PARAMETER(PreviousState); - - // This function is called by WDF to start the device in the fully-on power state. - - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(Device); - pContext->pContext->InitAdapter(); - - return STATUS_SUCCESS; -} - -#pragma region Direct3DDevice - -Direct3DDevice::Direct3DDevice(LUID AdapterLuid) : AdapterLuid(AdapterLuid) -{ - -} - -Direct3DDevice::Direct3DDevice() -{ - -} - -HRESULT Direct3DDevice::Init() -{ - // The DXGI factory could be cached, but if a new render adapter appears on the system, a new factory needs to be - // created. If caching is desired, check DxgiFactory->IsCurrent() each time and recreate the factory if !IsCurrent. - HRESULT hr = CreateDXGIFactory2(0, IID_PPV_ARGS(&DxgiFactory)); - if (FAILED(hr)) - { - return hr; - } - - // Find the specified render adapter - hr = DxgiFactory->EnumAdapterByLuid(AdapterLuid, IID_PPV_ARGS(&Adapter)); - if (FAILED(hr)) - { - return hr; - } - -#if 0 // Test code - { - FILE* file; - fopen_s(&file, "C:\\IddSampleDriver\\desc.bin", "wb"); - - DXGI_ADAPTER_DESC desc; - Adapter->GetDesc(&desc); - - fwrite(&desc, 1, sizeof(desc), file); - fclose(file); - } -#endif - - // Create a D3D device using the render adapter. BGRA support is required by the WHQL test suite. - hr = D3D11CreateDevice(Adapter.Get(), D3D_DRIVER_TYPE_UNKNOWN, nullptr, D3D11_CREATE_DEVICE_BGRA_SUPPORT, nullptr, 0, D3D11_SDK_VERSION, &Device, nullptr, &DeviceContext); - if (FAILED(hr)) - { - // If creating the D3D device failed, it's possible the render GPU was lost (e.g. detachable GPU) or else the - // system is in a transient state. - return hr; - } - - return S_OK; -} - -#pragma endregion - -#pragma region SwapChainProcessor - -SwapChainProcessor::SwapChainProcessor(IDDCX_SWAPCHAIN hSwapChain, shared_ptr Device, HANDLE NewFrameEvent) - : m_hSwapChain(hSwapChain), m_Device(Device), m_hAvailableBufferEvent(NewFrameEvent) -{ - m_hTerminateEvent.Attach(CreateEvent(nullptr, FALSE, FALSE, nullptr)); - - // Immediately create and run the swap-chain processing thread, passing 'this' as the thread parameter - m_hThread.Attach(CreateThread(nullptr, 0, RunThread, this, 0, nullptr)); -} - -SwapChainProcessor::~SwapChainProcessor() -{ - // Alert the swap-chain processing thread to terminate - SetEvent(m_hTerminateEvent.Get()); - - if (m_hThread.Get()) - { - // Wait for the thread to terminate - WaitForSingleObject(m_hThread.Get(), INFINITE); - } -} - -DWORD CALLBACK SwapChainProcessor::RunThread(LPVOID Argument) -{ - reinterpret_cast(Argument)->Run(); - return 0; -} - -void SwapChainProcessor::Run() -{ - // For improved performance, make use of the Multimedia Class Scheduler Service, which will intelligently - // prioritize this thread for improved throughput in high CPU-load scenarios. - DWORD AvTask = 0; - HANDLE AvTaskHandle = AvSetMmThreadCharacteristicsW(L"Distribution", &AvTask); - - RunCore(); - - // Always delete the swap-chain object when swap-chain processing loop terminates in order to kick the system to - // provide a new swap-chain if necessary. - WdfObjectDelete((WDFOBJECT)m_hSwapChain); - m_hSwapChain = nullptr; - - AvRevertMmThreadCharacteristics(AvTaskHandle); -} - -void SwapChainProcessor::RunCore() -{ - // Get the DXGI device interface - ComPtr DxgiDevice; - HRESULT hr = m_Device->Device.As(&DxgiDevice); - if (FAILED(hr)) - { - return; - } - - IDARG_IN_SWAPCHAINSETDEVICE SetDevice = {}; - SetDevice.pDevice = DxgiDevice.Get(); - - hr = IddCxSwapChainSetDevice(m_hSwapChain, &SetDevice); - if (FAILED(hr)) - { - return; - } - - // Acquire and release buffers in a loop - for (;;) - { - ComPtr AcquiredBuffer; - - // Ask for the next buffer from the producer - IDARG_OUT_RELEASEANDACQUIREBUFFER Buffer = {}; - hr = IddCxSwapChainReleaseAndAcquireBuffer(m_hSwapChain, &Buffer); - - // AcquireBuffer immediately returns STATUS_PENDING if no buffer is yet available - if (hr == E_PENDING) - { - // We must wait for a new buffer - HANDLE WaitHandles[] = - { - m_hAvailableBufferEvent, - m_hTerminateEvent.Get() - }; - DWORD WaitResult = WaitForMultipleObjects(ARRAYSIZE(WaitHandles), WaitHandles, FALSE, 16); - if (WaitResult == WAIT_OBJECT_0 || WaitResult == WAIT_TIMEOUT) - { - // We have a new buffer, so try the AcquireBuffer again - continue; - } - else if (WaitResult == WAIT_OBJECT_0 + 1) - { - // We need to terminate - break; - } - else - { - // The wait was cancelled or something unexpected happened - hr = HRESULT_FROM_WIN32(WaitResult); - break; - } - } - else if (SUCCEEDED(hr)) - { - AcquiredBuffer.Attach(Buffer.MetaData.pSurface); - - // ============================== - // TODO: Process the frame here - // - // This is the most performance-critical section of code in an IddCx driver. It's important that whatever - // is done with the acquired surface be finished as quickly as possible. This operation could be: - // * a GPU copy to another buffer surface for later processing (such as a staging surface for mapping to CPU memory) - // * a GPU encode operation - // * a GPU VPBlt to another surface - // * a GPU custom compute shader encode operation - // ============================== - - AcquiredBuffer.Reset(); - hr = IddCxSwapChainFinishedProcessingFrame(m_hSwapChain); - if (FAILED(hr)) - { - break; - } - - // ============================== - // TODO: Report frame statistics once the asynchronous encode/send work is completed - // - // Drivers should report information about sub-frame timings, like encode time, send time, etc. - // ============================== - // IddCxSwapChainReportFrameStatistics(m_hSwapChain, ...); - } - else - { - // The swap-chain was likely abandoned (e.g. DXGI_ERROR_ACCESS_LOST), so exit the processing loop - break; - } - } -} - -#pragma endregion - -#pragma region IndirectDeviceContext - -const UINT64 MHZ = 1000000; -const UINT64 KHZ = 1000; - -constexpr DISPLAYCONFIG_VIDEO_SIGNAL_INFO dispinfo(UINT32 h, UINT32 v, UINT32 r) { - const UINT32 clock_rate = r * (v + 4) * (v + 4) + 1000; - return { - clock_rate, // pixel clock rate [Hz] - { clock_rate, v + 4 }, // fractional horizontal refresh rate [Hz] - { clock_rate, (v + 4) * (v + 4) }, // fractional vertical refresh rate [Hz] - { h, v }, // (horizontal, vertical) active pixel resolution - { h + 4, v + 4 }, // (horizontal, vertical) total pixel resolution - { { 255, 0 }}, // video standard and vsync divider - DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE - }; -} - -// This is a sample monitor EDID - FOR SAMPLE PURPOSES ONLY -const BYTE IndirectDeviceContext::s_KnownMonitorEdid[] = -{ - /* 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x79,0x5E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA6,0x01,0x03,0x80,0x28, - 0x1E,0x78,0x0A,0xEE,0x91,0xA3,0x54,0x4C,0x99,0x26,0x0F,0x50,0x54,0x20,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, - 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xA0,0x0F,0x20,0x00,0x31,0x58,0x1C,0x20,0x28,0x80,0x14,0x00, - 0x90,0x2C,0x11,0x00,0x00,0x1E,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E */ - - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x31, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x16, 0x01, 0x03, 0x6D, 0x32, 0x1C, 0x78, 0xEA, 0x5E, 0xC0, 0xA4, 0x59, 0x4A, 0x98, 0x25, - 0x20, 0x50, 0x54, 0x00, 0x00, 0x00, 0xD1, 0xC0, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3A, 0x80, 0x18, 0x71, 0x38, 0x2D, 0x40, 0x58, 0x2C, - 0x45, 0x00, 0xF4, 0x19, 0x11, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x4C, 0x69, 0x6E, - 0x75, 0x78, 0x20, 0x23, 0x30, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x3B, - 0x3D, 0x42, 0x44, 0x0F, 0x00, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFC, - 0x00, 0x4C, 0x69, 0x6E, 0x75, 0x78, 0x20, 0x46, 0x48, 0x44, 0x0A, 0x20, 0x20, 0x20, 0x00, 0x05 - -}; - -IndirectDeviceContext::IndirectDeviceContext(_In_ WDFDEVICE WdfDevice) : - m_WdfDevice(WdfDevice) -{ -} - -IndirectDeviceContext::~IndirectDeviceContext() -{ - m_ProcessingThread.reset(); -} - -#define NUM_VIRTUAL_DISPLAYS 1 - -void IndirectDeviceContext::InitAdapter() -{ - // ============================== - // TODO: Update the below diagnostic information in accordance with the target hardware. The strings and version - // numbers are used for telemetry and may be displayed to the user in some situations. - // - // This is also where static per-adapter capabilities are determined. - // ============================== - - IDDCX_ADAPTER_CAPS AdapterCaps = {}; - AdapterCaps.Size = sizeof(AdapterCaps); - - // Declare basic feature support for the adapter (required) - AdapterCaps.MaxMonitorsSupported = numVirtualDisplays; - AdapterCaps.EndPointDiagnostics.Size = sizeof(AdapterCaps.EndPointDiagnostics); - AdapterCaps.EndPointDiagnostics.GammaSupport = IDDCX_FEATURE_IMPLEMENTATION_NONE; - AdapterCaps.EndPointDiagnostics.TransmissionType = IDDCX_TRANSMISSION_TYPE_WIRED_OTHER; - - // Declare your device strings for telemetry (required) - AdapterCaps.EndPointDiagnostics.pEndPointFriendlyName = L"IddSample Device"; - AdapterCaps.EndPointDiagnostics.pEndPointManufacturerName = L"Microsoft"; - AdapterCaps.EndPointDiagnostics.pEndPointModelName = L"IddSample Model"; - - // Declare your hardware and firmware versions (required) - IDDCX_ENDPOINT_VERSION Version = {}; - Version.Size = sizeof(Version); - Version.MajorVer = 1; - AdapterCaps.EndPointDiagnostics.pFirmwareVersion = &Version; - AdapterCaps.EndPointDiagnostics.pHardwareVersion = &Version; - - // Initialize a WDF context that can store a pointer to the device context object - WDF_OBJECT_ATTRIBUTES Attr; - WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&Attr, IndirectDeviceContextWrapper); - - IDARG_IN_ADAPTER_INIT AdapterInit = {}; - AdapterInit.WdfDevice = m_WdfDevice; - AdapterInit.pCaps = &AdapterCaps; - AdapterInit.ObjectAttributes = &Attr; - - // Start the initialization of the adapter, which will trigger the AdapterFinishInit callback later - IDARG_OUT_ADAPTER_INIT AdapterInitOut; - NTSTATUS Status = IddCxAdapterInitAsync(&AdapterInit, &AdapterInitOut); - - if (NT_SUCCESS(Status)) - { - // Store a reference to the WDF adapter handle - m_Adapter = AdapterInitOut.AdapterObject; - - // Store the device context object into the WDF object context - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(AdapterInitOut.AdapterObject); - pContext->pContext = this; - } -} - -void IndirectDeviceContext::FinishInit() -{ - Options.Adapter.apply(m_Adapter); - for (unsigned int i = 0; i < numVirtualDisplays; i++) { - CreateMonitor(i); - } -} - -void IndirectDeviceContext::CreateMonitor(unsigned int index) { - // ============================== - // TODO: In a real driver, the EDID should be retrieved dynamically from a connected physical monitor. The EDID - // provided here is purely for demonstration, as it describes only 640x480 @ 60 Hz and 800x600 @ 60 Hz. Monitor - // manufacturers are required to correctly fill in physical monitor attributes in order to allow the OS to optimize - // settings like viewing distance and scale factor. Manufacturers should also use a unique serial number every - // single device to ensure the OS can tell the monitors apart. - // ============================== - - WDF_OBJECT_ATTRIBUTES Attr; - WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&Attr, IndirectDeviceContextWrapper); - - IDDCX_MONITOR_INFO MonitorInfo = {}; - MonitorInfo.Size = sizeof(MonitorInfo); - MonitorInfo.MonitorType = DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI; - MonitorInfo.ConnectorIndex = index; - MonitorInfo.MonitorDescription.Size = sizeof(MonitorInfo.MonitorDescription); - MonitorInfo.MonitorDescription.Type = IDDCX_MONITOR_DESCRIPTION_TYPE_EDID; - MonitorInfo.MonitorDescription.DataSize = sizeof(s_KnownMonitorEdid); - MonitorInfo.MonitorDescription.pData = const_cast(s_KnownMonitorEdid); - - // ============================== - // TODO: The monitor's container ID should be distinct from "this" device's container ID if the monitor is not - // permanently attached to the display adapter device object. The container ID is typically made unique for each - // monitor and can be used to associate the monitor with other devices, like audio or input devices. In this - // sample we generate a random container ID GUID, but it's best practice to choose a stable container ID for a - // unique monitor or to use "this" device's container ID for a permanent/integrated monitor. - // ============================== - - // Create a container ID - CoCreateGuid(&MonitorInfo.MonitorContainerId); - - IDARG_IN_MONITORCREATE MonitorCreate = {}; - MonitorCreate.ObjectAttributes = &Attr; - MonitorCreate.pMonitorInfo = &MonitorInfo; - - // Create a monitor object with the specified monitor descriptor - IDARG_OUT_MONITORCREATE MonitorCreateOut; - NTSTATUS Status = IddCxMonitorCreate(m_Adapter, &MonitorCreate, &MonitorCreateOut); - if (NT_SUCCESS(Status)) - { - m_Monitor = MonitorCreateOut.MonitorObject; - - // Associate the monitor with this device context - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(MonitorCreateOut.MonitorObject); - pContext->pContext = this; - - // Tell the OS that the monitor has been plugged in - IDARG_OUT_MONITORARRIVAL ArrivalOut; - Status = IddCxMonitorArrival(m_Monitor, &ArrivalOut); - } -} - -void IndirectDeviceContext::AssignSwapChain(IDDCX_SWAPCHAIN SwapChain, LUID RenderAdapter, HANDLE NewFrameEvent) -{ - m_ProcessingThread.reset(); - - auto Device = make_shared(RenderAdapter); - if (FAILED(Device->Init())) - { - // It's important to delete the swap-chain if D3D initialization fails, so that the OS knows to generate a new - // swap-chain and try again. - WdfObjectDelete(SwapChain); - } - else - { - // Create a new swap-chain processing thread - m_ProcessingThread.reset(new SwapChainProcessor(SwapChain, Device, NewFrameEvent)); - } -} - -void IndirectDeviceContext::UnassignSwapChain() -{ - // Stop processing the last swap-chain - m_ProcessingThread.reset(); -} - -#pragma endregion - -#pragma region DDI Callbacks - -_Use_decl_annotations_ -NTSTATUS IddSampleAdapterInitFinished(IDDCX_ADAPTER AdapterObject, const IDARG_IN_ADAPTER_INIT_FINISHED* pInArgs) -{ - // This is called when the OS has finished setting up the adapter for use by the IddCx driver. It's now possible - // to report attached monitors. - - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(AdapterObject); - if (NT_SUCCESS(pInArgs->AdapterInitStatus)) - { - pContext->pContext->FinishInit(); - } - - return STATUS_SUCCESS; -} - -_Use_decl_annotations_ -NTSTATUS IddSampleAdapterCommitModes(IDDCX_ADAPTER AdapterObject, const IDARG_IN_COMMITMODES* pInArgs) -{ - UNREFERENCED_PARAMETER(AdapterObject); - UNREFERENCED_PARAMETER(pInArgs); - - // For the sample, do nothing when modes are picked - the swap-chain is taken care of by IddCx - - // ============================== - // TODO: In a real driver, this function would be used to reconfigure the device to commit the new modes. Loop - // through pInArgs->pPaths and look for IDDCX_PATH_FLAGS_ACTIVE. Any path not active is inactive (e.g. the monitor - // should be turned off). - // ============================== - - return STATUS_SUCCESS; -} -_Use_decl_annotations_ -NTSTATUS IddSampleParseMonitorDescription(const IDARG_IN_PARSEMONITORDESCRIPTION* pInArgs, IDARG_OUT_PARSEMONITORDESCRIPTION* pOutArgs) -{ - // ============================== - // TODO: In a real driver, this function would be called to generate monitor modes for an EDID by parsing it. In - // this sample driver, we hard-code the EDID, so this function can generate known modes. - // ============================== - - for (int i = 0; i < monitorModes.size(); i++) { - s_KnownMonitorModes2.push_back(dispinfo(std::get<0>(monitorModes[i]), std::get<1>(monitorModes[i]), std::get<2>(monitorModes[i]))); - } - pOutArgs->MonitorModeBufferOutputCount = (UINT)monitorModes.size(); - - if (pInArgs->MonitorModeBufferInputCount < monitorModes.size()) - { - // Return success if there was no buffer, since the caller was only asking for a count of modes - return (pInArgs->MonitorModeBufferInputCount > 0) ? STATUS_BUFFER_TOO_SMALL : STATUS_SUCCESS; - } - else - { - // Copy the known modes to the output buffer - for (DWORD ModeIndex = 0; ModeIndex < monitorModes.size(); ModeIndex++) - { - pInArgs->pMonitorModes[ModeIndex].Size = sizeof(IDDCX_MONITOR_MODE); - pInArgs->pMonitorModes[ModeIndex].Origin = IDDCX_MONITOR_MODE_ORIGIN_MONITORDESCRIPTOR; - pInArgs->pMonitorModes[ModeIndex].MonitorVideoSignalInfo = s_KnownMonitorModes2[ModeIndex]; - } - - // Set the preferred mode as represented in the EDID - pOutArgs->PreferredMonitorModeIdx = 0; - - return STATUS_SUCCESS; - } -} - -_Use_decl_annotations_ -NTSTATUS IddSampleMonitorGetDefaultModes(IDDCX_MONITOR MonitorObject, const IDARG_IN_GETDEFAULTDESCRIPTIONMODES* pInArgs, IDARG_OUT_GETDEFAULTDESCRIPTIONMODES* pOutArgs) -{ - UNREFERENCED_PARAMETER(MonitorObject); - UNREFERENCED_PARAMETER(pInArgs); - UNREFERENCED_PARAMETER(pOutArgs); - - // Should never be called since we create a single monitor with a known EDID in this sample driver. - - // ============================== - // TODO: In a real driver, this function would be called to generate monitor modes for a monitor with no EDID. - // Drivers should report modes that are guaranteed to be supported by the transport protocol and by nearly all - // monitors (such 640x480, 800x600, or 1024x768). If the driver has access to monitor modes from a descriptor other - // than an EDID, those modes would also be reported here. - // ============================== - - return STATUS_NOT_IMPLEMENTED; -} - -/// -/// Creates a target mode from the fundamental mode attributes. -/// -void CreateTargetMode(DISPLAYCONFIG_VIDEO_SIGNAL_INFO& Mode, UINT Width, UINT Height, UINT VSync) -{ - Mode.totalSize.cx = Mode.activeSize.cx = Width; - Mode.totalSize.cy = Mode.activeSize.cy = Height; - Mode.AdditionalSignalInfo.vSyncFreqDivider = 1; - Mode.AdditionalSignalInfo.videoStandard = 255; - Mode.vSyncFreq.Numerator = VSync; - Mode.vSyncFreq.Denominator = Mode.hSyncFreq.Denominator = 1; - Mode.hSyncFreq.Numerator = VSync * Height; - Mode.scanLineOrdering = DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE; - Mode.pixelRate = VSync * Width * Height; -} - -void CreateTargetMode(IDDCX_TARGET_MODE& Mode, UINT Width, UINT Height, UINT VSync) -{ - Mode.Size = sizeof(Mode); - CreateTargetMode(Mode.TargetVideoSignalInfo.targetVideoSignalInfo, Width, Height, VSync); -} - -_Use_decl_annotations_ -NTSTATUS IddSampleMonitorQueryModes(IDDCX_MONITOR MonitorObject, const IDARG_IN_QUERYTARGETMODES* pInArgs, IDARG_OUT_QUERYTARGETMODES* pOutArgs)//////////////////////////////////////////////////////////////////////////////// -{ - UNREFERENCED_PARAMETER(MonitorObject); - - vector TargetModes(monitorModes.size()); - - // Create a set of modes supported for frame processing and scan-out. These are typically not based on the - // monitor's descriptor and instead are based on the static processing capability of the device. The OS will - // report the available set of modes for a given output as the intersection of monitor modes with target modes. - - for (int i = 0; i < monitorModes.size(); i++) { - CreateTargetMode(TargetModes[i], std::get<0>(monitorModes[i]), std::get<1>(monitorModes[i]), std::get<2>(monitorModes[i])); - } - - pOutArgs->TargetModeBufferOutputCount = (UINT)TargetModes.size(); - - if (pInArgs->TargetModeBufferInputCount >= TargetModes.size()) - { - copy(TargetModes.begin(), TargetModes.end(), pInArgs->pTargetModes); - } - - return STATUS_SUCCESS; -} - -_Use_decl_annotations_ -NTSTATUS IddSampleMonitorAssignSwapChain(IDDCX_MONITOR MonitorObject, const IDARG_IN_SETSWAPCHAIN* pInArgs) -{ - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(MonitorObject); - pContext->pContext->AssignSwapChain(pInArgs->hSwapChain, pInArgs->RenderAdapterLuid, pInArgs->hNextSurfaceAvailable); - return STATUS_SUCCESS; -} - -_Use_decl_annotations_ -NTSTATUS IddSampleMonitorUnassignSwapChain(IDDCX_MONITOR MonitorObject) -{ - auto* pContext = WdfObjectGet_IndirectDeviceContextWrapper(MonitorObject); - pContext->pContext->UnassignSwapChain(); - return STATUS_SUCCESS; -} - -#pragma endregion diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/Driver.h b/Virtual Display Driver (Non-HDR)/MttVDD/Driver.h deleted file mode 100644 index 2502155..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD/Driver.h +++ /dev/null @@ -1,106 +0,0 @@ -#pragma once - -#define NOMINMAX -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include "Trace.h" - -namespace Microsoft -{ - namespace WRL - { - namespace Wrappers - { - // Adds a wrapper for thread handles to the existing set of WRL handle wrapper classes - typedef HandleT Thread; - } - } -} - -namespace Microsoft -{ - namespace IndirectDisp - { - /// - /// Manages the creation and lifetime of a Direct3D render device. - /// - struct Direct3DDevice - { - Direct3DDevice(LUID AdapterLuid); - Direct3DDevice(); - HRESULT Init(); - - LUID AdapterLuid; - Microsoft::WRL::ComPtr DxgiFactory; - Microsoft::WRL::ComPtr Adapter; - Microsoft::WRL::ComPtr Device; - Microsoft::WRL::ComPtr DeviceContext; - }; - - /// - /// Manages a thread that consumes buffers from an indirect display swap-chain object. - /// - class SwapChainProcessor - { - public: - SwapChainProcessor(IDDCX_SWAPCHAIN hSwapChain, std::shared_ptr Device, HANDLE NewFrameEvent); - ~SwapChainProcessor(); - - private: - static DWORD CALLBACK RunThread(LPVOID Argument); - - void Run(); - void RunCore(); - - public: - IDDCX_SWAPCHAIN m_hSwapChain; - std::shared_ptr m_Device; - HANDLE m_hAvailableBufferEvent; - Microsoft::WRL::Wrappers::Thread m_hThread; - Microsoft::WRL::Wrappers::Event m_hTerminateEvent; - }; - - /// - /// Provides a sample implementation of an indirect display driver. - /// - class IndirectDeviceContext - { - public: - IndirectDeviceContext(_In_ WDFDEVICE WdfDevice); - virtual ~IndirectDeviceContext(); - - void InitAdapter(); - void FinishInit(); - - void CreateMonitor(unsigned int index); - - void AssignSwapChain(IDDCX_SWAPCHAIN SwapChain, LUID RenderAdapter, HANDLE NewFrameEvent); - void UnassignSwapChain(); - - protected: - - WDFDEVICE m_WdfDevice; - IDDCX_ADAPTER m_Adapter; - IDDCX_MONITOR m_Monitor; - IDDCX_MONITOR m_Monitor2; - - std::unique_ptr m_ProcessingThread; - - public: - static const DISPLAYCONFIG_VIDEO_SIGNAL_INFO s_KnownMonitorModes[]; - static const BYTE s_KnownMonitorEdid[]; - }; - } -} \ No newline at end of file diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.inf b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.inf deleted file mode 100644 index ef39a01682f83e9b4e23c71fd9e122deff3497f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3974 zcmbuCYfl?T6o${|O8pNjt9%0so2F_T`2)dRB0@l1t6qd$)&zuOBiodsDt|rg^Um=w zJ8MX=suk>b=FGXi=d%BPer?~{H}={J+p{Upsdagpc5OquoSlh6f4_0sx3Nt)9dZ6g z*gar%Ywy^(up29R-?P)PRyaL^_5;6r@V?`2pOc1tXJc2=Qo zvG=Ja$N6{BX@V`1{!pWE%bl)`e^$f!0TzwyFYcAWGaXyPk3H6019Q6f7R%s~$2-Tb@OI-42P@4)IU& z>a@){+9FgXN4YA3+K0tbb+!4>ze$UW9@7F%sUI))!f$kO7 zWv1&WU|SkEhHj7(V>+4TNgmmfcn==4#Ix%NU6dm^pJ-F$(?V~>e(6zGq;O=3mvGT} z(NmCNdvMy~M%7y{z5it?DV|@8hR4@qx)JdBQ1M`Are(^3NVBMfrYV9hXPqdPV4x4$ z-KX@Levp!)l6m5hg!DOv9|~x*KWsl(QP^4w1NG%vmA9?O_8li+z97F z!yy%J+s=vR3Dx)*w4al4zj7j^Hv;;FV%1>PrCq8(Ijgu)mgvs7FFZKsMrQFgw}sJL zxaqDqC&^W5RkWvD4e0ANE9F)R_gLc!JQ`&c_}6QvdCT5)wA1+!415 ze(5bLuX3YGw$8^muM3XECccx0V`Yii=a|XQI*&d(#4F46hQIlXPb+kSpCR{hhU$~xi_4n+s)wn+FK55%l~MAa=CY4R%HWrrU-iarI3MzVfRs_7S4Y2Q zXNV35?CIA<=ryWj>-<(9ya$u=%JX;gj+E@FTi_WKZFq;YKjEvc^H7^%I&_^_0Z&2F zA%1&HH+|235m1xI`b|KTb5gf&FP0?BY5tKPlv5?0 zQ0URD(ypL3X5}G>S6)Al9=AQ8WnzbLIZI&i4oR0-Tf(n8^+ZbVCApkqyr((Axy1QS z{d9~)`RQ8FeUlSq@ffQ#F;2s;L5)Mzma2cFw$aDQ2PGLlL7OTbRGHP?mGPRI+_$n$ zbuuDCy)IRm*hMt0w#nQWMXyp9=zJScI%QSht8{Zh%&4OB1aUfJUk6g2_ zXPA6e{|c&Nv!Dmd8$K^bJQqx#n%O3JZp>PpP8B(y`E^(IPTw2%P>iur9kWl)>pMgJ zU%URjRh?;K{!6=4EK_FR!AUvm-iqHxxx~fdtjtnna82aHG*#t(RFt2aYzlNz-Aw&f zRnwp9Jm^c+0=)qP$J}g>JPDy1eF!OMb8Yq`WS1-A8MEx5g*G7xnZS`X6cl Ba3%l% diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.sln b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.sln deleted file mode 100644 index 25c766a..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.sln +++ /dev/null @@ -1,51 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31129.286 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IddSampleDriver", "IddSampleDriver.vcxproj", "{2D54CB75-8B17-4F11-97DC-847B0244CD46}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM - Debug|ARM64 = Debug|ARM64 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|ARM = Release|ARM - Release|ARM64 = Release|ARM64 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM.ActiveCfg = Debug|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM.Build.0 = Debug|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM.Deploy.0 = Debug|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM64.Build.0 = Debug|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|ARM64.Deploy.0 = Debug|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x64.ActiveCfg = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x64.Build.0 = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x64.Deploy.0 = Debug|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x86.ActiveCfg = Debug|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x86.Build.0 = Debug|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Debug|x86.Deploy.0 = Debug|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM.ActiveCfg = Release|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM.Build.0 = Release|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM.Deploy.0 = Release|ARM - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM64.ActiveCfg = Release|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM64.Build.0 = Release|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|ARM64.Deploy.0 = Release|ARM64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x64.ActiveCfg = Release|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x64.Build.0 = Release|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x64.Deploy.0 = Release|x64 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x86.ActiveCfg = Release|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x86.Build.0 = Release|Win32 - {2D54CB75-8B17-4F11-97DC-847B0244CD46}.Release|x86.Deploy.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9A8BE7D9-9F0F-40A2-BA2D-8AE9E35890DB} - EndGlobalSection -EndGlobal diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj deleted file mode 100644 index 45fca58..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj +++ /dev/null @@ -1,335 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - Debug - ARM - - - Release - ARM - - - Debug - ARM64 - - - Release - ARM64 - - - - - - - - - - - - - - {2D54CB75-8B17-4F11-97DC-847B0244CD46} - {32909489-7be5-497b-aafa-db6669d9b44b} - v4.5 - 12.0 - Debug - Win32 - IddSampleDriver - 10.0.26100.0 - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - WindowsUserModeDriver10.0 - DynamicLibrary - Universal - - - - Windows10 - true - 2 - true - 1 - 0 - 27 - - - Windows10 - false - 2 - true - 1 - 0 - 27 - - - Windows10 - true - 2 - true - 1 - 4 - Spectre - 31 - 27 - - - Windows10 - false - 2 - true - 1 - 4 - 31 - 27 - - - Windows10 - true - 2 - true - 1 - 0 - - - Windows10 - false - 2 - true - 1 - 0 - - - Windows10 - true - 2 - true - 1 - 0 - - - Windows10 - false - 2 - true - 1 - 0 - - - - - - - - - - DbgengRemoteDebugger - true - - - DbgengRemoteDebugger - true - - - DbgengRemoteDebugger - true - true - - - DbgengRemoteDebugger - true - true - - - DbgengRemoteDebugger - true - - - DbgengRemoteDebugger - true - - - DbgengRemoteDebugger - true - - - DbgengRemoteDebugger - true - - - - true - true - trace.h - Async - true - $(ProjectDir)..\..\Common\Include;%(AdditionalIncludeDirectories) - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - - - true - true - trace.h - Async - true - $(ProjectDir)..\..\Common\Include;%(AdditionalIncludeDirectories) - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - - - true - true - trace.h - Async - true - stdcpp17 - $(ProjectDir)..\..\Common\Include;%(AdditionalIncludeDirectories) - IDDCX_VERSION_MAJOR=1;IDDCX_VERSION_MINOR=4;%(PreprocessorDefinitions) - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - SHA256 - - - copy "$(ProjectDir)..\option.txt" "$(TargetDir)\MttVDD" - - - - - true - true - trace.h - Async - true - stdcpp17 - $(ProjectDir)..\..\Common\Include;%(AdditionalIncludeDirectories) - IDDCX_VERSION_MAJOR=1;IDDCX_VERSION_MINOR=4;%(PreprocessorDefinitions) - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - SHA256 - - - copy "$(ProjectDir)..\option.txt" "$(TargetDir)\MttVDD" - - - - - true - true - trace.h - Async - true - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - - - true - true - trace.h - Async - true - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - - - true - true - trace.h - Async - true - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - - - true - true - trace.h - Async - true - - - %(AdditionalDependencies);OneCoreUAP.lib;avrt.lib - - - - - - - - - - - - \ No newline at end of file diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters b/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters deleted file mode 100644 index c8f6488..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD/MttVDD.vcxproj.filters +++ /dev/null @@ -1,42 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {8E41214B-6785-4CFE-B992-037D68949A14} - inf;inv;inx;mof;mc; - - - - - Driver Files - - - - - Header Files - - - Header Files - - - - - Source Files - - - - - - \ No newline at end of file diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h b/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h deleted file mode 100644 index 3ca65bc..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD/Trace.h +++ /dev/null @@ -1,63 +0,0 @@ -/*++ - -Module Name: - - Internal.h - -Abstract: - - This module contains the local type definitions for the - driver. - -Environment: - - Windows User-Mode Driver Framework 2 - ---*/ - -// -// Define the tracing flags. -// -// Tracing GUID - b254994f-46e6-4718-80a0-0a3aa50d6ce4 -// - -#define WPP_CONTROL_GUIDS \ - WPP_DEFINE_CONTROL_GUID( \ - MyDriver1TraceGuid, (b254994f,46e6,4718,80a0,0a3aa50d6ce4), \ - \ - WPP_DEFINE_BIT(MYDRIVER_ALL_INFO) \ - WPP_DEFINE_BIT(TRACE_DRIVER) \ - WPP_DEFINE_BIT(TRACE_DEVICE) \ - WPP_DEFINE_BIT(TRACE_QUEUE) \ - ) - -#define WPP_FLAG_LEVEL_LOGGER(flag, level) \ - WPP_LEVEL_LOGGER(flag) - -#define WPP_FLAG_LEVEL_ENABLED(flag, level) \ - (WPP_LEVEL_ENABLED(flag) && \ - WPP_CONTROL(WPP_BIT_ ## flag).Level >= level) - -#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) \ - WPP_LEVEL_LOGGER(flags) - -#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) \ - (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl) - -// -// This comment block is scanned by the trace preprocessor to define our -// Trace function. -// -// begin_wpp config -// FUNC Trace{FLAG=MYDRIVER_ALL_INFO}(LEVEL, MSG, ...); -// FUNC TraceEvents(LEVEL, FLAGS, MSG, ...); -// end_wpp - -// -// -// Driver specific #defines -// -#if UMDF_VERSION_MAJOR == 2 && UMDF_VERSION_MINOR == 0 - // TODO: Update the name of the tracing provider - #define MYDRIVER_TRACING_ID L"Microsoft\\UMDF2.0\\MttVDD V1.0" -#endif \ No newline at end of file diff --git a/Virtual Display Driver (Non-HDR)/MttVDD/readme.md b/Virtual Display Driver (Non-HDR)/MttVDD/readme.md deleted file mode 100644 index e7fd0c0..0000000 --- a/Virtual Display Driver (Non-HDR)/MttVDD/readme.md +++ /dev/null @@ -1,14 +0,0 @@ -# Get 5 virtual monitors for the price of zero! - -# Steps (for experienced pros only!!!) -1. Download the latest release as a zip file. - -2. As an administrator, Run the *.bat file to add the driver certificate as a trusted root certificate. - -3. Don't install the inf. Open device manager, click on any device, then click on the "Action" menu and click "Add Legacy Hardware" - -4. Select "Add hardware from a list (Advanced)" and then select Display adapters - -5. Click "Have Disk..." and click the "Browse..." button. Navigate to the extracted files and select the inf file. - -6. You are done! Go to display settings to customize the resolution of the additional displays. These displays show up in Oculus and should be able to be streamed from. \ No newline at end of file diff --git a/Virtual Display Driver (Non-HDR)/option.txt b/Virtual Display Driver (Non-HDR)/option.txt deleted file mode 100644 index 7bc082d..0000000 --- a/Virtual Display Driver (Non-HDR)/option.txt +++ /dev/null @@ -1,73 +0,0 @@ -1 -640, 480, 30 -640, 480, 500 -800, 5000, 500 -1024, 768, 500 -1152, 864, 500 -1280, 5000, 500 -1280, 720, 500 -1280, 768, 500 -1280, 800, 500 -1280, 960, 500 -1280, 1024, 500 -1360, 768, 500 -1366, 768, 500 -1400, 1050, 500 -1440, 900, 500 -1600, 900, 500 -1680, 1050, 500 -1600, 1024, 500 -1920, 1080, 500 -1920, 1200, 500 -1920, 1440, 500 -2560, 1440, 500 -2560, 1600, 500 -2732, 2048, 500 -2880, 1620, 500 -2880, 1800, 500 -3008, 1692, 500 -3200, 1800, 500 -3200, 2400, 500 -3840, 2160, 500 -3840, 2400, 500 -4096, 2304, 500 -4096, 2560, 500 -5120, 2880, 500 -6016, 3384, 500 -7680, 4320, 500 -2560, 1080, 500 -2880, 1200, 500 -3440, 1440, 500 -3840, 1600, 500 -4320, 1800, 500 -5120, 2160, 500 -5760, 2400, 500 -6880, 2880, 500 -7680, 3200, 500 -8640, 3600, 500 -10240, 432, 500 -2880, 900, 500 -3840, 1080, 500 -3840, 1200, 500 -4320, 1200, 500 -5120, 1440, 500 -5120, 1600, 500 -5760, 1600, 500 -5760, 1800, 500 -6400, 1800, 500 -6480, 1800, 500 -7680, 2160, 500 -7680, 2400, 500 -8640, 2400, 500 -2388, 1668, 500 -2400, 1080, 500 -3456, 2234, 500 -8640, 3600, 30 -8640, 3600, 60 -8640, 3600, 75 -8640, 3600, 90 -8640, 3600, 120 -8640, 3600, 144 -8640, 3600, 165 -8640, 3600, 240 -8640, 3600, 480 \ No newline at end of file