8273229: Update OS detection code to recognize Windows Server 2022

Reviewed-by: alanb, dholmes
This commit is contained in:
Matthias Baesken 2021-09-02 11:22:49 +00:00
parent 0c1b16b75a
commit c2e015c3c1
2 changed files with 14 additions and 5 deletions

View file

@ -389,7 +389,7 @@ GetJavaProperties(JNIEnv* env)
GetVersionEx((OSVERSIONINFO *) &ver);
majorVersion = ver.dwMajorVersion;
minorVersion = ver.dwMinorVersion;
/* distinguish Windows Server 2016 and 2019 by build number */
/* distinguish Windows Server 2016+ by build number */
buildNumber = ver.dwBuildNumber;
is_workstation = (ver.wProductType == VER_NT_WORKSTATION);
platformId = ver.dwPlatformId;
@ -474,6 +474,8 @@ GetJavaProperties(JNIEnv* env)
* Windows Server 2016 10 0 (!VER_NT_WORKSTATION)
* Windows Server 2019 10 0 (!VER_NT_WORKSTATION)
* where (buildNumber > 17762)
* Windows Server 2022 10 0 (!VER_NT_WORKSTATION)
* where (buildNumber > 20347)
*
* This mapping will presumably be augmented as new Windows
* versions are released.
@ -549,7 +551,10 @@ GetJavaProperties(JNIEnv* env)
switch (minorVersion) {
case 0:
/* Windows server 2019 GA 10/2018 build number is 17763 */
if (buildNumber > 17762) {
/* Windows server 2022 build number is 20348 */
if (buildNumber > 20347) {
sprops.os_name = "Windows Server 2022";
} else if (buildNumber > 17676) {
sprops.os_name = "Windows Server 2019";
} else {
sprops.os_name = "Windows Server 2016";