diff options
-rw-r--r-- | wsutil/os_version_info.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/wsutil/os_version_info.c b/wsutil/os_version_info.c index 5c79de3250..a007904e1d 100644 --- a/wsutil/os_version_info.c +++ b/wsutil/os_version_info.c @@ -351,7 +351,24 @@ get_os_version_info(GString *str) case 3: g_string_append_printf(str, is_nt_workstation ? "Windows 8.1" : "Windows Server 2012 R2"); break; - case 4: + default: + g_string_append_printf(str, "Windows NT, unknown version %lu.%lu", + info.dwMajorVersion, info.dwMinorVersion); + break; + } + break; + } /* case 6 */ + + case 10: { + gboolean is_nt_workstation; + + if (system_info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) + g_string_append(str, "64-bit "); + else if (system_info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL) + g_string_append(str, "32-bit "); + is_nt_workstation = (info.wProductType == VER_NT_WORKSTATION); + switch (info.dwMinorVersion) { + case 0: g_string_append_printf(str, is_nt_workstation ? "Windows 10" : "Windows Server 10"); break; default: @@ -360,7 +377,8 @@ get_os_version_info(GString *str) break; } break; - } /* case 6 */ + } /* case 10 */ + default: g_string_append_printf(str, "Windows NT, unknown version %lu.%lu", info.dwMajorVersion, info.dwMinorVersion); |