diff --git a/OpenConsole.sln b/OpenConsole.sln
index f13e0cb8b2..47c6d6725f 100644
--- a/OpenConsole.sln
+++ b/OpenConsole.sln
@@ -400,8 +400,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests_Control", "src\ca
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsTerminal.UIA.Tests", "src\cascadia\WindowsTerminal_UIATests\WindowsTerminal.UIA.Tests.csproj", "{F19DACD5-0C6E-40DC-B6E4-767A3200542C}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "api-ms-win-core-synch-l1-2-0", "src\api-ms-win-core-synch-l1-2-0\api-ms-win-core-synch-l1-2-0.vcxproj", "{9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utils", "Utils", "{61901E80-E97D-4D61-A9BB-E8F2FDA8B40C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RendererAtlas", "src\renderer\atlas\atlas.vcxproj", "{8222900C-8B6C-452A-91AC-BE95DB04B95F}"
@@ -3300,49 +3298,6 @@ Global
{F19DACD5-0C6E-40DC-B6E4-767A3200542C}.Release|x64.Build.0 = Release|x64
{F19DACD5-0C6E-40DC-B6E4-767A3200542C}.Release|x86.ActiveCfg = Release|Win32
{F19DACD5-0C6E-40DC-B6E4-767A3200542C}.Release|x86.Build.0 = Release|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|ARM.ActiveCfg = AuditMode|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|DotNet_x64Test.ActiveCfg = AuditMode|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|DotNet_x86Test.ActiveCfg = AuditMode|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|x64.ActiveCfg = AuditMode|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|x64.Build.0 = AuditMode|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|x86.ActiveCfg = AuditMode|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.AuditMode|x86.Build.0 = AuditMode|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|ARM.ActiveCfg = Debug|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|ARM64.Build.0 = Debug|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|DotNet_x64Test.ActiveCfg = Debug|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|DotNet_x64Test.Build.0 = Debug|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|DotNet_x86Test.ActiveCfg = Debug|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|DotNet_x86Test.Build.0 = Debug|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|x64.ActiveCfg = Debug|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|x64.Build.0 = Debug|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|x86.ActiveCfg = Debug|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Debug|x86.Build.0 = Debug|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|ARM.ActiveCfg = Fuzzing|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|ARM64.Build.0 = Fuzzing|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|DotNet_x64Test.ActiveCfg = Fuzzing|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|DotNet_x86Test.ActiveCfg = Fuzzing|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Fuzzing|x86.Build.0 = Fuzzing|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|Any CPU.ActiveCfg = Release|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|ARM.ActiveCfg = Release|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|ARM64.ActiveCfg = Release|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|ARM64.Build.0 = Release|ARM64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|DotNet_x64Test.ActiveCfg = Release|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|DotNet_x64Test.Build.0 = Release|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|DotNet_x86Test.ActiveCfg = Release|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|DotNet_x86Test.Build.0 = Release|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|x64.ActiveCfg = Release|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|x64.Build.0 = Release|x64
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|x86.ActiveCfg = Release|Win32
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}.Release|x86.Build.0 = Release|Win32
{8222900C-8B6C-452A-91AC-BE95DB04B95F}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{8222900C-8B6C-452A-91AC-BE95DB04B95F}.AuditMode|ARM.ActiveCfg = AuditMode|Win32
{8222900C-8B6C-452A-91AC-BE95DB04B95F}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
@@ -3591,7 +3546,6 @@ Global
{05D9052F-D78F-478F-968A-2DE38A6DB996} = {E8F24881-5E37-4362-B191-A3BA0ED7F4EB}
{C323DAEE-B307-4C7B-ACE5-7293CBEFCB5B} = {BDB237B6-1D1D-400F-84CC-40A58FA59C8E}
{F19DACD5-0C6E-40DC-B6E4-767A3200542C} = {BDB237B6-1D1D-400F-84CC-40A58FA59C8E}
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5} = {89CDCC5C-9F53-4054-97A4-639D99F169CD}
{61901E80-E97D-4D61-A9BB-E8F2FDA8B40C} = {59840756-302F-44DF-AA47-441A9D673202}
{8222900C-8B6C-452A-91AC-BE95DB04B95F} = {05500DEF-2294-41E3-AF9A-24E580B82836}
{06EC74CB-9A12-428C-B551-8537EC964726} = {E8F24881-5E37-4362-B191-A3BA0ED7F4EB}
diff --git a/build/pipelines/release.yml b/build/pipelines/release.yml
index 600b4a95ea..52893f471c 100644
--- a/build/pipelines/release.yml
+++ b/build/pipelines/release.yml
@@ -299,8 +299,6 @@ jobs:
inputs:
Contents: >-
**/PublicTerminalCore.dll
-
- **/api-ms-win-core-synch-l1-2-0.dll
TargetFolder: $(Build.ArtifactStagingDirectory)/wpf
OverWrite: true
flattenFolders: true
diff --git a/consolegit2gitfilters.json b/consolegit2gitfilters.json
index 0aee106e79..3dbcfdc9a2 100644
--- a/consolegit2gitfilters.json
+++ b/consolegit2gitfilters.json
@@ -26,7 +26,6 @@
"/doc/user-docs/",
"/src/tools/MonarchPeasantSample/",
"/src/tools/MonarchPeasantPackage/",
- "/src/api-ms-win-core-synch-l1-2-0/",
"/src/tools/ansi-color/",
"/src/tools/ColorTool/",
"/scratch/",
diff --git a/src/api-ms-win-core-synch-l1-2-0/api-ms-win-core-synch-l1-2-0.vcxproj b/src/api-ms-win-core-synch-l1-2-0/api-ms-win-core-synch-l1-2-0.vcxproj
deleted file mode 100644
index 54a0c0e799..0000000000
--- a/src/api-ms-win-core-synch-l1-2-0/api-ms-win-core-synch-l1-2-0.vcxproj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- 16.0
- Win32Proj
- {9cf74355-f018-4c19-81ad-9dc6b7f2c6f5}
- apimswincoresynchl120
- DynamicLibrary
-
-
-
-
-
-
-
-
-
-
-
- NotUsing
-
-
- kernel32.lib
- definitions.def
-
-
-
\ No newline at end of file
diff --git a/src/api-ms-win-core-synch-l1-2-0/api-ms-win-core-synch-l1-2-0.vcxproj.filters b/src/api-ms-win-core-synch-l1-2-0/api-ms-win-core-synch-l1-2-0.vcxproj.filters
deleted file mode 100644
index ae7956a376..0000000000
--- a/src/api-ms-win-core-synch-l1-2-0/api-ms-win-core-synch-l1-2-0.vcxproj.filters
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
-
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hh;hpp;hxx;h++;hm;inl;inc;ipp;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
-
-
-
-
- Source Files
-
-
-
-
-
-
-
- Source Files
-
-
-
\ No newline at end of file
diff --git a/src/api-ms-win-core-synch-l1-2-0/definitions.def b/src/api-ms-win-core-synch-l1-2-0/definitions.def
deleted file mode 100644
index 5eae42b4dd..0000000000
--- a/src/api-ms-win-core-synch-l1-2-0/definitions.def
+++ /dev/null
@@ -1,19 +0,0 @@
-LIBRARY
-EXPORTS
- DeleteSynchronizationBarrier = kernel32.DeleteSynchronizationBarrier
- EnterSynchronizationBarrier = kernel32.EnterSynchronizationBarrier
- InitOnceBeginInitialize = kernel32.InitOnceBeginInitialize
- InitOnceComplete = kernel32.InitOnceComplete
- InitOnceExecuteOnce = kernel32.InitOnceExecuteOnce
- InitOnceInitialize = kernel32.InitOnceInitialize
- InitializeConditionVariable = kernel32.InitializeConditionVariable
- InitializeSynchronizationBarrier = kernel32.InitializeSynchronizationBarrier
- SignalObjectAndWait = kernel32.SignalObjectAndWait
- Sleep = kernel32.Sleep
- SleepConditionVariableCS = kernel32.SleepConditionVariableCS
- SleepConditionVariableSRW = kernel32.SleepConditionVariableSRW
- WaitOnAddress
- WakeAllConditionVariable = kernel32.WakeAllConditionVariable
- WakeByAddressAll
- WakeByAddressSingle
- WakeConditionVariable = kernel32.WakeConditionVariable
diff --git a/src/api-ms-win-core-synch-l1-2-0/main.cpp b/src/api-ms-win-core-synch-l1-2-0/main.cpp
deleted file mode 100644
index e13ac11933..0000000000
--- a/src/api-ms-win-core-synch-l1-2-0/main.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT license.
-
-//
-// The code in this file was adapted from the STL on the 2021-07-05. Commit:
-// https://github.com/microsoft/STL/blob/e745bad3b1d05b5b19ec652d68abb37865ffa454/stl/src/atomic_wait.cpp
-//
-// It backports the following Windows 8 functions to Windows 7:
-// * WaitOnAddress
-// * WakeByAddressSingle
-// * WakeByAddressAll
-//
-
-#include
-#include
-
-#include
-#define _WIN32_WINNT 0x0601
-#include
-
-#define WIN32_LEAN_AND_MEAN
-#define NOMINMAX
-#include
-#include
-
-namespace
-{
- class [[nodiscard]] SRWLockGuard
- {
- public:
- explicit SRWLockGuard(SRWLOCK& lock) noexcept :
- _lock(&lock)
- {
- AcquireSRWLockExclusive(_lock);
- }
-
- ~SRWLockGuard()
- {
- ReleaseSRWLockExclusive(_lock);
- }
-
- SRWLockGuard(const SRWLockGuard&) = delete;
- SRWLockGuard& operator=(const SRWLockGuard&) = delete;
-
- SRWLockGuard(SRWLockGuard&&) = delete;
- SRWLockGuard& operator=(SRWLockGuard&&) = delete;
-
- private:
- SRWLOCK* _lock;
- };
-
- struct WaitContext
- {
- const volatile void* address;
- WaitContext* next;
- WaitContext* prev;
- CONDITION_VARIABLE cv;
- };
-
- struct [[nodiscard]] GuardedWaitContext : WaitContext
- {
- GuardedWaitContext(const volatile void* storage, WaitContext* head) noexcept :
- WaitContext{ storage, head, head->prev, CONDITION_VARIABLE_INIT }
- {
- prev->next = this;
- next->prev = this;
- }
-
- ~GuardedWaitContext()
- {
- const auto n = next;
- const auto p = prev;
- next->prev = p;
- prev->next = n;
- }
-
- GuardedWaitContext(const GuardedWaitContext&) = delete;
- GuardedWaitContext& operator=(const GuardedWaitContext&) = delete;
-
- GuardedWaitContext(GuardedWaitContext&&) = delete;
- GuardedWaitContext& operator=(GuardedWaitContext&&) = delete;
- };
-
-#pragma warning(push)
-#pragma warning(disable : 4324) // structure was padded due to alignment specifier
- struct alignas(std::hardware_destructive_interference_size) WaitTableEntry
- {
- SRWLOCK lock = SRWLOCK_INIT;
- WaitContext head = { nullptr, &head, &head, CONDITION_VARIABLE_INIT };
- };
-#pragma warning(pop)
-
- [[nodiscard]] WaitTableEntry& GetWaitTableEntry(const volatile void* const storage) noexcept
- {
- // A prime number for the hash table size was chosen to prevent collisions.
- constexpr size_t size = 251;
- constexpr std::hash hasher;
-
- static WaitTableEntry table[size];
-#pragma warning(suppress : 26446) // Prefer to use gsl::at() instead of unchecked subscript operator
-#pragma warning(suppress : 26482) // Only index into arrays using constant expressions
-#pragma warning(suppress : 26490) // Don't use reinterpret_cast
- return table[hasher(reinterpret_cast(storage)) % size];
- }
-
-#pragma warning(suppress : 26429) // Symbol 'comparand' is never tested for nullness, it can be marked as not_null
- bool AreEqual(const volatile void* storage, const void* comparand, size_t size) noexcept
- {
- switch (size)
- {
- case 1:
- return __iso_volatile_load8(static_cast(storage)) == *static_cast(comparand);
- case 2:
- return __iso_volatile_load16(static_cast(storage)) == *static_cast(comparand);
- case 4:
- return __iso_volatile_load32(static_cast(storage)) == *static_cast(comparand);
- case 8:
- return __iso_volatile_load64(static_cast(storage)) == *static_cast(comparand);
- default:
- abort();
- }
- }
-} // unnamed namespace
-
-extern "C" BOOL WINAPI WaitOnAddress(_In_reads_bytes_(AddressSize) volatile VOID* Address, _In_reads_bytes_(AddressSize) PVOID CompareAddress, _In_ SIZE_T AddressSize, _In_opt_ DWORD dwMilliseconds)
-{
- auto& entry = GetWaitTableEntry(Address);
-
- SRWLockGuard guard{ entry.lock };
- GuardedWaitContext context{ Address, &entry.head };
-
- for (;;)
- {
- // NOTE: under lock to prevent lost wakes
- if (!AreEqual(Address, CompareAddress, AddressSize))
- {
- return TRUE;
- }
-
- if (!SleepConditionVariableSRW(&context.cv, &entry.lock, dwMilliseconds, 0))
- {
-#ifndef NDEBUG
- if (GetLastError() != ERROR_TIMEOUT)
- {
- abort();
- }
-#endif
- return FALSE;
- }
-
- if (dwMilliseconds != INFINITE)
- {
- // spurious wake to recheck the clock
- return TRUE;
- }
- }
-}
-
-extern "C" VOID WINAPI WakeByAddressSingle(_In_ PVOID Address)
-{
- auto& entry = GetWaitTableEntry(Address);
- SRWLockGuard guard(entry.lock);
-
- for (auto context = entry.head.next; context != &entry.head; context = context->next)
- {
- if (context->address == Address)
- {
- // Can't move wake outside SRWLOCKed section: SRWLOCK also protects the context itself
- WakeAllConditionVariable(&context->cv);
- // This break; is the difference between WakeByAddressSingle and WakeByAddressAll
- break;
- }
- }
-}
-
-extern "C" VOID WINAPI WakeByAddressAll(_In_ PVOID Address)
-{
- auto& entry = GetWaitTableEntry(Address);
- SRWLockGuard guard(entry.lock);
-
- for (auto context = entry.head.next; context != &entry.head; context = context->next)
- {
- if (context->address == Address)
- {
- // Can't move wake outside SRWLOCKed section: SRWLOCK also protects the context itself
- WakeAllConditionVariable(&context->cv);
- }
- }
-}
diff --git a/src/cascadia/PublicTerminalCore/PublicTerminalCore.vcxproj b/src/cascadia/PublicTerminalCore/PublicTerminalCore.vcxproj
index 342dac89ac..62a94791fc 100644
--- a/src/cascadia/PublicTerminalCore/PublicTerminalCore.vcxproj
+++ b/src/cascadia/PublicTerminalCore/PublicTerminalCore.vcxproj
@@ -39,9 +39,6 @@
{48d21369-3d7b-4431-9967-24e81292cf62}
-
- {9CF74355-F018-4C19-81AD-9DC6B7F2C6F5}
-
diff --git a/src/cascadia/WpfTerminalControl/WpfTerminalControl.csproj b/src/cascadia/WpfTerminalControl/WpfTerminalControl.csproj
index e47e522486..5cb9f1b0fc 100644
--- a/src/cascadia/WpfTerminalControl/WpfTerminalControl.csproj
+++ b/src/cascadia/WpfTerminalControl/WpfTerminalControl.csproj
@@ -38,26 +38,14 @@
true
runtimes\win-x86\native\
-
- true
- runtimes\win-x86\native\
-
true
runtimes\win-x64\native\
-
- true
- runtimes\win-x64\native\
-
true
runtimes\win-arm64\native\
-
- true
- runtimes\win-arm64\native\
-
diff --git a/src/cascadia/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj b/src/cascadia/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj
index 6725dfa25d..bb63abded1 100644
--- a/src/cascadia/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj
+++ b/src/cascadia/WpfTerminalTestNetCore/WpfTerminalTestNetCore.csproj
@@ -9,7 +9,6 @@
-
@@ -23,9 +22,6 @@
PreserveNewest
-
- PreserveNewest
-