mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2026-09-19 18:01:25 +03:00
v4.13-9522-beta
This commit is contained in:
+33
-11
@@ -1075,7 +1075,7 @@ bool Win32GetVersionExInternal(void *info)
|
||||
if (os.dwPlatformId == VER_PLATFORM_WIN32_NT)
|
||||
{
|
||||
if ((os.dwMajorVersion == 6 && os.dwMinorVersion >= 2) ||
|
||||
(os.dwMajorVersion == 7))
|
||||
(os.dwMajorVersion >= 7))
|
||||
{
|
||||
// Windows 8 later
|
||||
return Win32GetVersionExInternalForWindows81orLater(info);
|
||||
@@ -1091,6 +1091,9 @@ bool Win32GetVersionExInternalForWindows81orLater(void *info)
|
||||
{
|
||||
OSVERSIONINFOEXA *ex = (OSVERSIONINFOEXA *)info;
|
||||
char *str;
|
||||
UINT major1 = 0, major2 = 0;
|
||||
UINT minor1 = 0, minor2 = 0;
|
||||
UINT major = 0, minor = 0;
|
||||
// Validate arguments
|
||||
if (info == NULL)
|
||||
{
|
||||
@@ -1120,15 +1123,8 @@ bool Win32GetVersionExInternalForWindows81orLater(void *info)
|
||||
|
||||
if (t != NULL && t->NumTokens == 2)
|
||||
{
|
||||
UINT major = ToInt(t->Token[0]);
|
||||
UINT minor = ToInt(t->Token[1]);
|
||||
|
||||
if (major >= 6)
|
||||
{
|
||||
// Version number acquisition success
|
||||
ex->dwMajorVersion = major;
|
||||
ex->dwMinorVersion = minor;
|
||||
}
|
||||
major1 = ToInt(t->Token[0]);
|
||||
minor1 = ToInt(t->Token[1]);
|
||||
}
|
||||
|
||||
FreeToken(t);
|
||||
@@ -1136,6 +1132,32 @@ bool Win32GetVersionExInternalForWindows81orLater(void *info)
|
||||
|
||||
Free(str);
|
||||
|
||||
major2 = MsRegReadIntEx2(REG_LOCAL_MACHINE,
|
||||
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
|
||||
"CurrentMajorVersionNumber", false, true);
|
||||
|
||||
minor2 = MsRegReadIntEx2(REG_LOCAL_MACHINE,
|
||||
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
|
||||
"CurrentMinorVersionNumber", false, true);
|
||||
|
||||
if ((major1 * 10000 + minor1) > (major2 * 10000 + minor2))
|
||||
{
|
||||
major = major1;
|
||||
minor = minor1;
|
||||
}
|
||||
else
|
||||
{
|
||||
major = major2;
|
||||
minor = minor2;
|
||||
}
|
||||
|
||||
if (major >= 6)
|
||||
{
|
||||
// Version number acquisition success
|
||||
ex->dwMajorVersion = major;
|
||||
ex->dwMinorVersion = minor;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1407,7 +1429,7 @@ UINT Win32GetOsType()
|
||||
return OSTYPE_WINDOWS_SERVER_81;
|
||||
}
|
||||
}
|
||||
else if (os.dwMajorVersion == 6 && os.dwMinorVersion == 4)
|
||||
else if ((os.dwMajorVersion == 6 && os.dwMinorVersion == 4) || (os.dwMajorVersion == 10 && os.dwMinorVersion == 0))
|
||||
{
|
||||
if (os.wProductType == VER_NT_WORKSTATION)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user