[PATCH] kernel32/tests: Accept higher PRODUCT_* values

Detlef Riekenberg wine.dev at web.de
Wed Jun 13 10:44:09 CDT 2012


I added all codes documented on msdn:
http://msdn.microsoft.com/en-us/library/ms724358.aspx

To get a list sorted by value, use:
$ grep " PRODUCT_"  include/winnt.h | sort -t "x"  -k 2

This fixes also a test failure.

--
By by ... Detlef
---
 dlls/kernel32/tests/version.c |    5 +----
 include/winnt.h               |   43 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+), 5 deletions(-)

diff --git a/dlls/kernel32/tests/version.c b/dlls/kernel32/tests/version.c
index 265eae4..4b9a4f3 100644
--- a/dlls/kernel32/tests/version.c
+++ b/dlls/kernel32/tests/version.c
@@ -83,9 +83,8 @@ static void test_GetProductInfo(void)
         res = pGetProductInfo(entry[0], entry[1], entry[2], entry[3], &product);
 
         if (entry[0] >= 6)
-            ok(res && (product > PRODUCT_UNDEFINED) && (product <= PRODUCT_EMBEDDED) && (GetLastError() == 0xdeadbeef),
-               "got %d and 0x%x with 0x%x (expected TRUE and a valid PRODUCT_* value  with LastError untouched)\n",
-               res, product, GetLastError());
+            ok(res && (product > PRODUCT_UNDEFINED) && (product <= PRODUCT_PROFESSIONAL_WMC),
+               "got %d and 0x%x (expected TRUE and a valid PRODUCT_* value)\n", res, product);
         else
             ok(!res && !product && (GetLastError() == 0xdeadbeef),
                "got %d and 0x%x with 0x%x (expected FALSE and PRODUCT_UNDEFINED with LastError untouched)\n",
diff --git a/include/winnt.h b/include/winnt.h
index bed2a19..36be019 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -1973,42 +1973,85 @@ NTSYSAPI void WINAPI RtlCaptureContext(CONTEXT*);
 #define PRODUCT_BUSINESS                                0x00000006
 #define PRODUCT_BUSINESS_N                              0x00000010
 #define PRODUCT_CLUSTER_SERVER                          0x00000012
+#define PRODUCT_CLUSTER_SERVER_V                        0x00000040
+#define PRODUCT_CORE                                    0x00000065
+#define PRODUCT_CORE_ARM                                0x00000061
+#define PRODUCT_CORE_N                                  0x00000062
+#define PRODUCT_CORE_COUNTRYSPECIFIC                    0x00000063
+#define PRODUCT_CORE_LANGUAGESPECIFIC                   0x00000064
+#define PRODUCT_DATACENTER_EVALUATION_SERVER            0x00000050
 #define PRODUCT_DATACENTER_SERVER                       0x00000008
 #define PRODUCT_DATACENTER_SERVER_CORE                  0x0000000C
 #define PRODUCT_DATACENTER_SERVER_CORE_V                0x00000027
+#define PRODUCT_DATACENTER_SERVER_V                     0x00000025
 #define PRODUCT_EMBEDDED                                0x00000041
 #define PRODUCT_ENTERPRISE                              0x00000004
+#define PRODUCT_ENTERPRISE_E                            0x00000046
+#define PRODUCT_ENTERPRISE_EVALUATION                   0x00000048
 #define PRODUCT_ENTERPRISE_N                            0x0000001B
+#define PRODUCT_ENTERPRISE_N_EVALUATION                 0x00000054
 #define PRODUCT_ENTERPRISE_SERVER                       0x0000000A
 #define PRODUCT_ENTERPRISE_SERVER_CORE                  0x0000000E
 #define PRODUCT_ENTERPRISE_SERVER_CORE_V                0x00000029
 #define PRODUCT_ENTERPRISE_SERVER_IA64                  0x0000000F
 #define PRODUCT_ENTERPRISE_SERVER_V                     0x00000026
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL           0x0000003C
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC        0x0000003E
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT           0x0000003B
+#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC        0x0000003D
 #define PRODUCT_HOME_BASIC                              0x00000002
+#define PRODUCT_HOME_BASIC_E                            0x00000043
 #define PRODUCT_HOME_BASIC_N                            0x00000005
 #define PRODUCT_HOME_PREMIUM                            0x00000003
+#define PRODUCT_HOME_PREMIUM_E                          0x00000044
 #define PRODUCT_HOME_PREMIUM_N                          0x0000001A
+#define PRODUCT_HOME_PREMIUM_SERVER                     0x00000022
+#define PRODUCT_HOME_SERVER                             0x00000013
 #define PRODUCT_HYPERV                                  0x0000002A
 #define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT        0x0000001E
 #define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING         0x00000020
 #define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY          0x0000001F
+#define PRODUCT_MULTIPOINT_STANDARD_SERVER              0x0000004C
+#define PRODUCT_MULTIPOINT_PREMIUM_SERVER               0x0000004D
 #define PRODUCT_PROFESSIONAL                            0x00000030
+#define PRODUCT_PROFESSIONAL_E                          0x00000045
 #define PRODUCT_PROFESSIONAL_N                          0x00000031
+#define PRODUCT_PROFESSIONAL_WMC                        0x00000067
+#define PRODUCT_SB_SOLUTION_SERVER                      0x00000032
+#define PRODUCT_SB_SOLUTION_SERVER_EM                   0x00000036
+#define PRODUCT_SERVER_FOR_SB_SOLUTIONS                 0x00000033
+#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM              0x00000037
 #define PRODUCT_SERVER_FOR_SMALLBUSINESS                0x00000018
 #define PRODUCT_SERVER_FOR_SMALLBUSINESS_V              0x00000023
+#define PRODUCT_SERVER_FOUNDATION                       0x00000021
 #define PRODUCT_SERVER_V                                0x00000025
 #define PRODUCT_SMALLBUSINESS_SERVER                    0x00000009
+#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM            0x00000019
+#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE       0x0000003F
+#define PRODUCT_SOLUTION_EMBEDDEDSERVER                 0x00000038
+#define PRODUCT_STANDARD_EVALUATION_SERVER              0x0000004F
 #define PRODUCT_STANDARD_SERVER                         0x00000007
 #define PRODUCT_STANDARD_SERVER_CORE                    0x0000000D
 #define PRODUCT_STANDARD_SERVER_CORE_V                  0x00000028
+#define PRODUCT_STANDARD_SERVER_SOLUTIONS               0x00000034
+#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE          0x00000035
 #define PRODUCT_STANDARD_SERVER_V                       0x00000024
 #define PRODUCT_STARTER                                 0x0000000B
+#define PRODUCT_STARTER_E                               0x00000042
+#define PRODUCT_STARTER_N                               0x0000002F
 #define PRODUCT_STORAGE_ENTERPRISE_SERVER               0x00000017
+#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE          0x0000002E
 #define PRODUCT_STORAGE_EXPRESS_SERVER                  0x00000014
+#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE             0x0000002B
+#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER      0x00000060
 #define PRODUCT_STORAGE_STANDARD_SERVER                 0x00000015
+#define PRODUCT_STORAGE_STANDARD_SERVER_CORE            0x0000002C
+#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER     0x0000005F
 #define PRODUCT_STORAGE_WORKGROUP_SERVER                0x00000016
+#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE           0x0000002D
 #define PRODUCT_UNDEFINED                               0x00000000
 #define PRODUCT_ULTIMATE                                0x00000001
+#define PRODUCT_ULTIMATE_E                              0x00000047
 #define PRODUCT_ULTIMATE_N                              0x0000001C
 #define PRODUCT_WEB_SERVER                              0x00000011
 #define PRODUCT_WEB_SERVER_CORE                         0x0000001D
-- 
1.7.5.4




More information about the wine-patches mailing list