24{
25 ULONG NTBuildNo, NTMajor, NTMinor, ServicePack, Subversion;
26
28 {
31 ServicePack = 0;
32
33 if (NTMajor > 6)
35 else
36 NTBuildNo = 0;
37
38 switch (NTBuildNo)
39 {
40
41 case 10240: Subversion = 0; break;
42 case 10586: Subversion = 1; break;
43 case 14393: Subversion = 2; break;
44 case 15063: Subversion = 3; break;
45 case 16299: Subversion = 4; break;
46 case 17134: Subversion = 5; break;
47 case 17763: Subversion = 6; break;
48 case 18362: Subversion = 7; break;
49 case 18363: Subversion = 8; break;
50 case 19041: Subversion = 9; break;
51 case 19042: Subversion = 10; break;
52 case 19043: Subversion = 11; break;
53 case 19044: Subversion = 12; break;
54 case 19045: Subversion = 13; break;
55
56
57 case 22000: Subversion = 14; break;
58 case 22621: Subversion = 15; break;
59 case 22631: Subversion = 16; break;
60 case 26100: Subversion = 17; break;
61
62 default: Subversion = 0; break;
63 }
64 }
65 else
66 {
68
70
72 {
76 Subversion = 0;
77 }
78 else
79 {
80 trace(
"Estimating an NTDDI value, GetVersionEx failed.\n");
83 ServicePack = 0;
84 Subversion = 0;
85 }
86 }
87
89}
#define GetMajorNTVersion()
#define GENERATE_NTDDI(Major, Minor, ServicePack, Subversion)
#define GetMinorNTVersion()
#define KUSER_SHARED_DATA_UMPTR
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
#define _WIN32_WINNT_WINBLUE
ULONG dwOSVersionInfoSize