mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
only enable workaround for win 11 24H2
This commit is contained in:
parent
c4ece39e5a
commit
ee247794c5
@ -60,6 +60,17 @@ VERSIONHELPERAPI IsWindowsVersion(DWORD major, DWORD minor, DWORD build, WORD se
|
|||||||
VER_SERVICEPACKMAJOR, VER_EQUAL));
|
VER_SERVICEPACKMAJOR, VER_EQUAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VERSIONHELPERAPI IsWindowsVersionExcactBuild(DWORD major, DWORD minor, DWORD build, WORD servpack)
|
||||||
|
{
|
||||||
|
RTL_OSVERSIONINFOEXW vi = { sizeof(vi),major,minor,build,0,{0},servpack };
|
||||||
|
return verhelp_verify_version(&vi, VER_MAJORVERSION | VER_MINORVERSION | VER_BUILDNUMBER | VER_SERVICEPACKMAJOR,
|
||||||
|
VerSetConditionMask(VerSetConditionMask(VerSetConditionMask(VerSetConditionMask(0,
|
||||||
|
VER_MAJORVERSION, VER_EQUAL),
|
||||||
|
VER_MINORVERSION, VER_EQUAL),
|
||||||
|
VER_BUILDNUMBER, VER_EQUAL),
|
||||||
|
VER_SERVICEPACKMAJOR, VER_EQUAL));
|
||||||
|
}
|
||||||
|
|
||||||
VERSIONHELPERAPI IsWindowsVersionAnySP(DWORD major, DWORD minor, DWORD build)
|
VERSIONHELPERAPI IsWindowsVersionAnySP(DWORD major, DWORD minor, DWORD build)
|
||||||
{
|
{
|
||||||
RTL_OSVERSIONINFOEXW vi = { sizeof(vi),major,minor,build,0,{0},0 };
|
RTL_OSVERSIONINFOEXW vi = { sizeof(vi),major,minor,build,0,{0},0 };
|
||||||
@ -135,6 +146,10 @@ VERSIONHELPERAPI IsWindows11OrGreater(void) {
|
|||||||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN11), LOBYTE(_WIN32_WINNT_WIN11), 22000, 0);
|
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN11), LOBYTE(_WIN32_WINNT_WIN11), 22000, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VERSIONHELPERAPI IsWindows11Version24H2OrGreater(void) {
|
||||||
|
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN11), LOBYTE(_WIN32_WINNT_WIN11), 26100, 0);
|
||||||
|
}
|
||||||
|
|
||||||
VERSIONHELPERAPI IsWindowsServer(void) {
|
VERSIONHELPERAPI IsWindowsServer(void) {
|
||||||
OSVERSIONINFOEXW vi = {sizeof(vi),0,0,0,0,{0},0,0,0,VER_NT_WORKSTATION};
|
OSVERSIONINFOEXW vi = {sizeof(vi),0,0,0,0,{0},0,0,0,VER_NT_WORKSTATION};
|
||||||
return !verhelp_verify_version(&vi, VER_PRODUCT_TYPE, VerSetConditionMask(0, VER_PRODUCT_TYPE, VER_EQUAL));
|
return !verhelp_verify_version(&vi, VER_PRODUCT_TYPE, VerSetConditionMask(0, VER_PRODUCT_TYPE, VER_EQUAL));
|
||||||
@ -212,6 +227,10 @@ VERSIONHELPERAPI IsWindows11(void) {
|
|||||||
return IsWindowsVersion(HIBYTE(_WIN32_WINNT_WIN11), LOBYTE(_WIN32_WINNT_WIN11), 22000, 0);
|
return IsWindowsVersion(HIBYTE(_WIN32_WINNT_WIN11), LOBYTE(_WIN32_WINNT_WIN11), 22000, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VERSIONHELPERAPI IsWindows11Version24H2(void) {
|
||||||
|
return IsWindowsVersionExcactBuild(HIBYTE(_WIN32_WINNT_WIN11), LOBYTE(_WIN32_WINNT_WIN11), 26100, 0);
|
||||||
|
}
|
||||||
|
|
||||||
VERSIONHELPERAPI IsWine(void) {
|
VERSIONHELPERAPI IsWine(void) {
|
||||||
return verhelp_wine_get_version() != NULL;
|
return verhelp_wine_get_version() != NULL;
|
||||||
}
|
}
|
||||||
|
2
src/dd.c
2
src/dd.c
@ -1824,7 +1824,7 @@ HRESULT dd_CreateEx(GUID* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown* pUnkOute
|
|||||||
|
|
||||||
if (g_config.singlecpu)
|
if (g_config.singlecpu)
|
||||||
{
|
{
|
||||||
if (!IsWine() && IsWindows11OrGreater())
|
if (!IsWine() && IsWindows11Version24H2())
|
||||||
{
|
{
|
||||||
if (GetProcessAffinityMask(proc, &proc_affinity, &system_affinity))
|
if (GetProcessAffinityMask(proc, &proc_affinity, &system_affinity))
|
||||||
SetProcessAffinityMask(proc, system_affinity);
|
SetProcessAffinityMask(proc, system_affinity);
|
||||||
|
@ -183,7 +183,7 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
|
|||||||
}
|
}
|
||||||
case DLL_THREAD_ATTACH:
|
case DLL_THREAD_ATTACH:
|
||||||
{
|
{
|
||||||
if (g_config.singlecpu && !IsWine() && IsWindows11OrGreater())
|
if (g_config.singlecpu && !IsWine() && IsWindows11Version24H2())
|
||||||
{
|
{
|
||||||
util_set_thread_affinity(GetCurrentThreadId());
|
util_set_thread_affinity(GetCurrentThreadId());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user