From 11fc49a0f8a4fe24010bb1ad68e3d4bbc56fe69e Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Tue, 14 Jan 2025 20:25:01 +0000 Subject: [PATCH 1/2] Windows: Fix wine check This did not work before :) --- Source/Windows/ARM64EC/Module.cpp | 2 +- Source/Windows/WOW64/Module.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Windows/ARM64EC/Module.cpp b/Source/Windows/ARM64EC/Module.cpp index 523b5bcae..00fef4a7e 100644 --- a/Source/Windows/ARM64EC/Module.cpp +++ b/Source/Windows/ARM64EC/Module.cpp @@ -540,7 +540,7 @@ NTSTATUS ProcessInit() { Exception::HandlerConfig.emplace(); const auto NtDll = GetModuleHandle("ntdll.dll"); - const bool IsWine = !!GetProcAddress(NtDll, "__wine_get_version"); + const bool IsWine = !!GetProcAddress(NtDll, "wine_get_version"); OvercommitTracker.emplace(IsWine); { diff --git a/Source/Windows/WOW64/Module.cpp b/Source/Windows/WOW64/Module.cpp index 9e6cec16d..bab7d36be 100644 --- a/Source/Windows/WOW64/Module.cpp +++ b/Source/Windows/WOW64/Module.cpp @@ -463,7 +463,7 @@ void BTCpuProcessInit() { SyscallHandler = fextl::make_unique(); Context::HandlerConfig.emplace(); const auto NtDll = GetModuleHandle("ntdll.dll"); - const bool IsWine = !!GetProcAddress(NtDll, "__wine_get_version"); + const bool IsWine = !!GetProcAddress(NtDll, "wine_get_version"); OvercommitTracker.emplace(IsWine); { From f5decb5f839f12289757b03430f8fdf2093df3da Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Tue, 14 Jan 2025 20:26:17 +0000 Subject: [PATCH 2/2] Windows: Fix overcommit size logic in the wine path --- Source/Windows/Common/OvercommitTracker.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Windows/Common/OvercommitTracker.h b/Source/Windows/Common/OvercommitTracker.h index 63a707cd6..797c4c748 100644 --- a/Source/Windows/Common/OvercommitTracker.h +++ b/Source/Windows/Common/OvercommitTracker.h @@ -38,7 +38,7 @@ public: if (IsWine) { MEMORY_BASIC_INFORMATION Info; NtQueryVirtualMemory(NtCurrentProcess(), reinterpret_cast(FaultAddress), MemoryBasicInformation, &Info, sizeof(Info), nullptr); - const auto CommitSize = reinterpret_cast(Info.BaseAddress) + Info.RegionSize - FaultAddress; + const auto CommitSize = reinterpret_cast(Info.BaseAddress) + Info.RegionSize - reinterpret_cast(Info.AllocationBase); VirtualAlloc(reinterpret_cast(Info.AllocationBase), CommitSize, MEM_COMMIT, PAGE_READWRITE); } else { static constexpr size_t MaxFaultCommitSize = 1024 * 64;