pcsx2: Adjust windows OS support logs.

List Windows 8.1 and Windows 10 as supported OSes only.
Windows 8.0 and lower as unsupported.

Simplify/clean up the code.
This commit is contained in:
lightningterror 2020-08-07 00:15:21 +02:00
parent 6794bbbd6a
commit b3d90537ba
1 changed files with 64 additions and 163 deletions

View File

@ -17,6 +17,7 @@
#include "PrecompiledHeader.h"
#include "RedtapeWindows.h"
#include <VersionHelpers.h>
#include <ShTypes.h>
@ -47,11 +48,6 @@ u64 GetPhysicalMemory()
return status.ullTotalPhys;
}
// Windows SDK 7 provides this but previous ones do not, so roll our own in those cases:
#ifndef VER_SUITE_WH_SERVER
#define VER_SUITE_WH_SERVER 0x00008000
#endif
typedef void(WINAPI *PGNSI)(LPSYSTEM_INFO);
typedef BOOL(WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD);
@ -108,67 +104,24 @@ wxString GetOSVersionString()
else
GetSystemInfo(&si);
if (VER_PLATFORM_WIN32_NT != osvi.dwPlatformId || osvi.dwMajorVersion <= 5)
if (!IsWindows8Point1OrGreater())
return L"Unsupported Operating System!";
retval += L"Microsoft ";
// Test for the specific product.
if (osvi.dwMajorVersion == 10) {
if (osvi.dwMinorVersion == 0)
retval += (osvi.wProductType == VER_NT_WORKSTATION) ? L"Windows 10 " : L"Windows Server 2016 ";
if (IsWindows10OrGreater())
retval += IsWindowsServer() ? L"Windows Server 2016 " : L"Windows 10 ";
else // IsWindows8Point1OrGreater()
retval += IsWindowsServer() ? L"Windows Server 2012 R2 " : L"Windows 8.1 ";
pGPI = (PGPI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "GetProductInfo");
pGPI(osvi.dwMajorVersion, osvi.dwMinorVersion, 0, 0, &dwType);
switch (dwType) {
case PRODUCT_CORE:
retval += L"Home";
break;
case PRODUCT_CORE_N:
retval += L"Home N";
break;
case PRODUCT_PROFESSIONAL:
retval += L"Pro";
break;
case PRODUCT_PROFESSIONAL_N:
retval += L"Pro N";
break;
case PRODUCT_ENTERPRISE:
retval += L"Enterprise";
break;
case PRODUCT_ENTERPRISE_N:
retval += L"Enterprise N";
break;
case PRODUCT_ENTERPRISE_S:
retval += L"Enterprise 2015 LTSB";
break;
case PRODUCT_ENTERPRISE_S_N:
retval += L"Enterprise 2015 LTSB N";
break;
case PRODUCT_EDUCATION:
retval += L"Education";
break;
case PRODUCT_EDUCATION_N:
retval += L"Education N";
break;
}
}
if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion > 1) {
if (osvi.dwMinorVersion == 2)
retval += (osvi.wProductType == VER_NT_WORKSTATION) ? L"Windows 8 " : L"Windows Server 2012 ";
if (osvi.dwMinorVersion == 3)
retval += (osvi.wProductType == VER_NT_WORKSTATION) ? L"Windows 8.1 " : L"Windows Server 2012 R2 ";
pGPI = (PGPI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "GetProductInfo");
pGPI(osvi.dwMajorVersion, osvi.dwMinorVersion, 0, 0, &dwType);
switch (dwType) {
switch (dwType)
{
// Shared between Windows 8.1 and 10.
case PRODUCT_PROFESSIONAL:
retval += L"Pro";
break;
@ -199,85 +152,33 @@ wxString GetOSVersionString()
case PRODUCT_DATACENTER_SERVER_CORE:
retval += L"Datacenter (core)";
break;
}
}
if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion <= 1) {
if (osvi.dwMinorVersion == 0)
retval += (osvi.wProductType == VER_NT_WORKSTATION) ? L"Windows Vista " : L"Windows Server 2008 ";
if (osvi.dwMinorVersion == 1)
retval += (osvi.wProductType == VER_NT_WORKSTATION) ? L"Windows 7 " : L"Windows Server 2008 R2 ";
pGPI = (PGPI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "GetProductInfo");
pGPI(osvi.dwMajorVersion, osvi.dwMinorVersion, 0, 0, &dwType);
switch (dwType) {
case PRODUCT_ULTIMATE:
retval += L"Ultimate Edition";
// Windows 10 specific.
case PRODUCT_ENTERPRISE_S:
retval += L"Enterprise 2015 LTSB";
break;
case PRODUCT_HOME_PREMIUM:
retval += L"Home Premium Edition";
case PRODUCT_ENTERPRISE_S_N:
retval += L"Enterprise 2015 LTSB N";
break;
case PRODUCT_HOME_BASIC:
retval += L"Home Basic Edition";
case PRODUCT_EDUCATION:
retval += L"Education";
break;
case PRODUCT_ENTERPRISE:
retval += L"Enterprise Edition";
case PRODUCT_CORE:
retval += L"Home";
break;
case PRODUCT_BUSINESS:
retval += L"Business Edition";
case PRODUCT_CORE_N:
retval += L"Home N";
break;
case PRODUCT_STARTER:
retval += L"Starter Edition";
break;
case PRODUCT_CLUSTER_SERVER:
retval += L"Cluster Server Edition";
break;
case PRODUCT_DATACENTER_SERVER:
retval += L"Datacenter Edition";
break;
case PRODUCT_DATACENTER_SERVER_CORE:
retval += L"Datacenter Edition (core installation)";
break;
case PRODUCT_ENTERPRISE_SERVER:
retval += L"Enterprise Edition";
break;
case PRODUCT_ENTERPRISE_SERVER_CORE:
retval += L"Enterprise Edition (core installation)";
break;
case PRODUCT_SMALLBUSINESS_SERVER:
retval += L"Small Business Server";
break;
case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM:
retval += L"Small Business Server Premium Edition";
break;
case PRODUCT_STANDARD_SERVER:
retval += L"Standard Edition";
break;
case PRODUCT_STANDARD_SERVER_CORE:
retval += L"Standard Edition (core installation)";
break;
case PRODUCT_WEB_SERVER:
retval += L"Web Server Edition";
case PRODUCT_EDUCATION_N:
retval += L"Education N";
break;
}
}
// Include service pack (if any) and build number.
if (_tcslen(osvi.szCSDVersion) > 0)
retval += (wxString)L" " + osvi.szCSDVersion;
retval += wxsFormat(L" (build %d)", osvi.dwBuildNumber);
if (osvi.dwMajorVersion >= 6) {
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
retval += L", 64-bit";
else if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL)
retval += L", 32-bit";
}
return retval;
}