[Bug 50610] New: WMI 'Win32_OperatingSystem' OS caption property descriptions for Windows 8 and 8.1 are reversed

WineHQ Bugzilla wine-bugs at winehq.org
Wed Feb 3 02:34:35 CST 2021


https://bugs.winehq.org/show_bug.cgi?id=50610

            Bug ID: 50610
           Summary: WMI 'Win32_OperatingSystem' OS caption property
                    descriptions for Windows 8 and 8.1 are reversed
           Product: Wine
           Version: 6.1
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: wmi&wbemprox
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

spotted by Dmitry Timoshkov when looking at my test script output which tested
for bug 50580

https://bugs.winehq.org/show_bug.cgi?id=50580#c5

To reproduce:

--- snip ---
On Error Resume Next

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_OperatingSystem",,48)
For Each objItem in colItems
    Wscript.Echo "BuildNumber: " & objItem.BuildNumber
    Wscript.Echo "BuildType: " & objItem.BuildType
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "CSCreationClassName: " & objItem.CSCreationClassName
    Wscript.Echo "CSDVersion: " & objItem.CSDVersion
    Wscript.Echo "CSName: " & objItem.CSName
    Wscript.Echo "Version: " & objItem.Version
Next
--- snip ---

Run the script:

--- snip ---
$ for ver in win8 win81 ; do \
    ( \
      export WINEDEBUG=-all
      echo "======" && \
      winecfg -v $ver && \
      winecfg -v | tee && \
      wine cscript osversion.vbs \
    ) ; done

======
win81
BuildNumber: 9600
Caption: Microsoft Windows 8 Pro
CSDVersion:
CSName: LINUX
Version: 6.3.9600
======
win10
BuildNumber: 17763
Caption: Microsoft Windows 10 Pro
CSDVersion:
CSName: LINUX
Version: 10.0.17763
--- snip ---

Wine source:

https://source.winehq.org/git/wine.git/blob/433b9081ba7c862feb947400f507228e793d7d4c:/dlls/wbemprox/builtin.c#l3419

--- snip ---
3419 static WCHAR *get_oscaption( OSVERSIONINFOEXW *ver )
3420 {
3421     static const WCHAR windowsW[] = L"Microsoft Windows ";
3422     static const WCHAR win2000W[] = L"2000 Professional";
3423     static const WCHAR win2003W[] = L"Server 2003 Standard Edition";
3424     static const WCHAR winxpW[] = L"XP Professional";
3425     static const WCHAR winxp64W[] = L"XP Professional x64 Edition";
3426     static const WCHAR vistaW[] = L"Vista Ultimate";
3427     static const WCHAR win2008W[] = L"Server 2008 Standard";
3428     static const WCHAR win7W[] = L"7 Professional";
3429     static const WCHAR win2008r2W[] = L"Server 2008 R2 Standard";
3430     static const WCHAR win8W[] = L"8 Pro";
3431     static const WCHAR win81W[] = L"8.1 Pro";
3432     static const WCHAR win10W[] = L"10 Pro";
3433     int len = ARRAY_SIZE( windowsW ) - 1;
3434     WCHAR *ret;
3435 
3436     if (!(ret = heap_alloc( len * sizeof(WCHAR) + sizeof(win2003W) )))
return NULL;
3437     memcpy( ret, windowsW, sizeof(windowsW) );
3438     if (ver->dwMajorVersion == 10 && ver->dwMinorVersion == 0) memcpy( ret
+ len, win10W, sizeof(win10W) );
3439     else if (ver->dwMajorVersion == 6 && ver->dwMinorVersion == 3) memcpy(
ret + len, win8W, sizeof(win8W) );
3440     else if (ver->dwMajorVersion == 6 && ver->dwMinorVersion == 2) memcpy(
ret + len, win81W, sizeof(win81W) );
3441     else if (ver->dwMajorVersion == 6 && ver->dwMinorVersion == 1)
3442     {
3443         if (ver->wProductType == VER_NT_WORKSTATION) memcpy( ret + len,
win7W, sizeof(win7W) );
3444         else memcpy( ret + len, win2008r2W, sizeof(win2008r2W) );
3445     }
3446     else if (ver->dwMajorVersion == 6 && ver->dwMinorVersion == 0)
3447     {
3448         if (ver->wProductType == VER_NT_WORKSTATION) memcpy( ret + len,
vistaW, sizeof(vistaW) );
3449         else memcpy( ret + len, win2008W, sizeof(win2008W) );
3450     }
3451     else if (ver->dwMajorVersion == 5 && ver->dwMinorVersion == 2)
3452     {
3453         if (ver->wProductType == VER_NT_WORKSTATION) memcpy( ret + len,
winxp64W, sizeof(winxp64W) );
3454         else memcpy( ret + len, win2003W, sizeof(win2003W) );
3455     }
3456     else if (ver->dwMajorVersion == 5 && ver->dwMinorVersion == 1) memcpy(
ret + len, winxpW, sizeof(winxpW) );
3457     else memcpy( ret + len, win2000W, sizeof(win2000W) );
3458     return ret;
3459 }
--- snip ---

Line 3439 and 3440

$ wine --version
wine-6.1-70-g433b9081ba7

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list