PATCH: revert version change

Francois Gouget fgouget at free.fr
Wed Oct 24 04:19:24 CDT 2001


   Here is a patch based on the information I got from WinMe and
WinXP. It adds support for both, fixes the 16bit version of Win2000 and
confirms its other values from SP2.
   I also updated the comment about the various versions of Win95 and
changed the CSDVersion field to match their Windows values.


   Could people check and complete this info, especially for Win95sp1
(950a) and the various Win95osr2. Also if anyone knows how to check the
dos version reported by NT...

Here is the info I collected here:

Win95:
GetVersion16= 0x5f03
GetVersion:
  version   = 0xc0000004
GetVersionInfoEx:
  size      = 148
  major     = 4
  minor     = 0
  build     = 0x40003b6
  platform  = VER_PLATFORM_WIN32_WINDOWS
  CSDVersion= ""

Win98:
GetVersion16=0x5f03
GetVersion:
  version   = 0xc0000a04
GetVersionInfoEx:
  size      = 148
  major     = 4
  minor     = 10
  build     = 0x40a07ce
  platform  = VER_PLATFORM_WIN32_WINDOWS
  CSDVersion= " "

Win98SE:
GetVersion16= 0x5f03
GetVersion:
  version   = 0xc0000a04
GetVersionInfoEx:
  size      = 148
  major     = 4
  minor     = 10
  build     = 0x40a08ae
  platform  = VER_PLATFORM_WIN32_WINDOWS
  CSDVersion= " A "

WinMe:
GetVersion16= 0x5f03
GetVersion:
  version   = 0xc0005a04
GetVersionInfoEx:
  size      = 148
  major     = 4
  minor     = 90
  build     = 0x45a0bb8
  platform  = VER_PLATFORM_WIN32_WINDOWS
  CSDVersion= " "

NT40sp5:
GetVersion16= 0xa03
GetVersion:
  version   = 0x05650004
GetVersionInfoEx:
  size      = 148
  major     = 4
  minor     = 0
  build     = 0x565
  platform  = VER_PLATFORM_WIN32_NT
  CSDVersion= "Service Pack 5"

NT40sp6:
GetVersion16= 0xa03
GetVersion:
  version   = 0x05650004
GetVersionInfoEx:
  size      = 148
  major     = 4
  minor     = 0
  build     = 0x565
  platform  = VER_PLATFORM_WIN32_NT
  CSDVersion= "Service Pack 6"

Win2000sp2:
GetVersion16= 0x5f03
GetVersion:
  version   = 0x08930005
GetVersionInfoEx:
  size      = 148
  major     = 5
  minor     = 0
  build     = 0x893
  platform  = VER_PLATFORM_WIN32_NT
  CSDVersion= "Service Pack 2"

WinXP:
GetVersion16= 0x5f03
GetVersion:
  version   = 0x0a280105
GetVersionInfoEx:
  size      = 148
  major     = 5
  minor     = 1
  build     = 0xa28
  platform  = VER_PLATFORM_WIN32_NT
  CSDVersion= ""


--
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
                  In a world without fences who needs Gates?



-------------- next part --------------
Index: misc/version.c
===================================================================
RCS file: /home/wine/wine/misc/version.c,v
retrieving revision 1.48
diff -u -r1.48 version.c
--- misc/version.c	2001/10/23 19:55:11	1.48
+++ misc/version.c	2001/10/24 07:42:39
@@ -29,10 +29,11 @@
     WIN31,   /* Windows 3.1 */
     WIN95,   /* Windows 95 */
     WIN98,   /* Windows 98 */
- /* insert Windows ME here as WINME if needed */
+    WINME,   /* Windows Me */
     NT351,   /* Windows NT 3.51 */
-    NT40,    /* Windows NT 4.0 */  
+    NT40,    /* Windows NT 4.0 */
     NT2K,    /* Windows 2000 */
+    WINXP,   /* Windows XP */
     NB_WINDOWS_VERSIONS
 } WINDOWS_VERSION;
 
@@ -77,23 +78,41 @@
     {
         0x07005F03,
         0xC0000004,
-	{
-	    /* 0x40003B6 == 4.00.950 == Win95 orig. release and Win95a
-	     * 0x4000457 == 4.00.1111 == Win95B aka Win95 OSR2
-	     * Win95a/B can be discerned via regkey SubVersionNumber */
+        {
+            /* Win95:       4, 0, 0x40003B6, ""
+             * Win95sp1:    4, 0, 0x40003B6, " A " (according to doc)
+             * Win95osr2:   4, 0, 0x4000457, " B " (according to doc)
+             * Win95osr2.1: 4, 3, 0x40304BC, " B " (according to doc)
+             * Win95osr2.5: 4, 3, 0x40304BE, " C " (according to doc)
+             * Win95a/b can be discerned via regkey SubVersionNumber
+             * See also:
+             * http://support.microsoft.com/support/kb/articles/q158/2/38.asp
+             */
             sizeof(OSVERSIONINFOA), 4, 0, 0x40003B6,
-            VER_PLATFORM_WIN32_WINDOWS, "Win95"
-	}
+            VER_PLATFORM_WIN32_WINDOWS, ""
+        }
     },
     /* WIN98 */
     {
-	0x070A5F03,
-	0xC0000A04,
-	{
-	    sizeof(OSVERSIONINFOA), 4, 10, 0x40A07CE,
-	    VER_PLATFORM_WIN32_WINDOWS, "Win98"
-	}
+        0x070A5F03,
+        0xC0000A04,
+        {
+            /* Win98:   4, 10, 0x40A07CE, " "
+             * Win98SE: 4, 10, 0x40A08AE, " A "
+             */
+            sizeof(OSVERSIONINFOA), 4, 10, 0x40A07CE,
+            VER_PLATFORM_WIN32_WINDOWS, " "
+        }
     },
+    /* WINME */
+    {
+        0x07005F03, /* Assuming DOS 7 like the other Win9x */
+        0xC0005A04,
+        {
+            sizeof(OSVERSIONINFOA), 4, 90, 0x45A0BB8,
+            VER_PLATFORM_WIN32_WINDOWS, " "
+        }
+    },
     /* NT351 */
     {
         0x05000A03,
@@ -101,7 +120,7 @@
         {
             sizeof(OSVERSIONINFOA), 3, 51, 0x421,
             VER_PLATFORM_WIN32_NT, "Service Pack 2"
-	}
+        }
     },
     /* NT40 */
     {
@@ -112,13 +131,22 @@
             VER_PLATFORM_WIN32_NT, "Service Pack 6"
         }
     },
-    /* NT2K FIXME: verify values */
+    /* NT2K */
     {
-        0x05000A03, /* ? */
-        0x08930005, /* better build ? using 2195 (final) for now */
+        0x05005F03,
+        0x08930005,
         {
             sizeof(OSVERSIONINFOA), 5, 0, 0x893,
-            VER_PLATFORM_WIN32_NT, "FIXME: OS version string not known yet"
+            VER_PLATFORM_WIN32_NT, "Service Pack 2"
+        }
+    },
+    /* WINXP */
+    {
+        0x05005F03, /* Assuming DOS 5 like the other NT */
+        0x0A280105,
+        {
+            sizeof(OSVERSIONINFOA), 5, 1, 0xA28,
+            VER_PLATFORM_WIN32_NT, ""
         }
     }
 };
@@ -130,9 +158,11 @@
     "win31",
     "win95",
     "win98",
+    "winme",
     "nt351",
     "nt40",
-    "win2000,win2k,nt2k,nt2000"
+    "win2000,win2k,nt2k,nt2000",
+    "winxp"
 };
 
 /* if one of the following dlls is importing ntdll the windows


More information about the wine-devel mailing list