1 /**
2  * Windows API header module
3  *
4  * Translated from Windows SDK API
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/sdkddkver.d)
8  */
9 module nulib.system.win32.sdkddkver;
10 
11 
12 import nulib.system.win32.w32api;
13 
14 enum _WIN32_WINNT_NT4                    = 0x0400;
15 enum _WIN32_WINNT_WIN2K                  = 0x0500;
16 enum _WIN32_WINNT_WINXP                  = 0x0501;
17 enum _WIN32_WINNT_WS03                   = 0x0502;
18 enum _WIN32_WINNT_WIN6                   = 0x0600;
19 enum _WIN32_WINNT_VISTA                  = 0x0600;
20 enum _WIN32_WINNT_WS08                   = 0x0600;
21 enum _WIN32_WINNT_LONGHORN               = 0x0600;
22 enum _WIN32_WINNT_WIN7                   = 0x0601;
23 enum _WIN32_WINNT_WIN8                   = 0x0602;
24 enum _WIN32_WINNT_WINBLUE                = 0x0603;
25 enum _WIN32_WINNT_WINTHRESHOLD           = 0x0A00;
26 enum _WIN32_WINNT_WIN10                  = 0x0A00;
27 
28 enum _WIN32_IE_IE20                      = 0x0200;
29 enum _WIN32_IE_IE30                      = 0x0300;
30 enum _WIN32_IE_IE302                     = 0x0302;
31 enum _WIN32_IE_IE40                      = 0x0400;
32 enum _WIN32_IE_IE401                     = 0x0401;
33 enum _WIN32_IE_IE50                      = 0x0500;
34 enum _WIN32_IE_IE501                     = 0x0501;
35 enum _WIN32_IE_IE55                      = 0x0550;
36 enum _WIN32_IE_IE60                      = 0x0600;
37 enum _WIN32_IE_IE60SP1                   = 0x0601;
38 enum _WIN32_IE_IE60SP2                   = 0x0603;
39 enum _WIN32_IE_IE70                      = 0x0700;
40 enum _WIN32_IE_IE80                      = 0x0800;
41 enum _WIN32_IE_IE90                      = 0x0900;
42 enum _WIN32_IE_IE100                     = 0x0A00;
43 enum _WIN32_IE_IE110                     = 0x0A00;
44 
45 enum _WIN32_IE_NT4                    =  _WIN32_IE_IE20;
46 enum _WIN32_IE_NT4SP1                 =  _WIN32_IE_IE20;
47 enum _WIN32_IE_NT4SP2                 =  _WIN32_IE_IE20;
48 enum _WIN32_IE_NT4SP3                 =  _WIN32_IE_IE302;
49 enum _WIN32_IE_NT4SP4                 =  _WIN32_IE_IE401;
50 enum _WIN32_IE_NT4SP5                 =  _WIN32_IE_IE401;
51 enum _WIN32_IE_NT4SP6                 =  _WIN32_IE_IE50;
52 enum _WIN32_IE_WIN98                  =  _WIN32_IE_IE401;
53 enum _WIN32_IE_WIN98SE                =  _WIN32_IE_IE50;
54 enum _WIN32_IE_WINME                  =  _WIN32_IE_IE55;
55 enum _WIN32_IE_WIN2K                  =  _WIN32_IE_IE501;
56 enum _WIN32_IE_WIN2KSP1               =  _WIN32_IE_IE501;
57 enum _WIN32_IE_WIN2KSP2               =  _WIN32_IE_IE501;
58 enum _WIN32_IE_WIN2KSP3               =  _WIN32_IE_IE501;
59 enum _WIN32_IE_WIN2KSP4               =  _WIN32_IE_IE501;
60 enum _WIN32_IE_XP                     =  _WIN32_IE_IE60;
61 enum _WIN32_IE_XPSP1                  =  _WIN32_IE_IE60SP1;
62 enum _WIN32_IE_XPSP2                  =  _WIN32_IE_IE60SP2;
63 enum _WIN32_IE_WS03                   =  0x0602;
64 enum _WIN32_IE_WS03SP1                =  _WIN32_IE_IE60SP2;
65 enum _WIN32_IE_WIN6                   =  _WIN32_IE_IE70;
66 enum _WIN32_IE_LONGHORN               =  _WIN32_IE_IE70;
67 enum _WIN32_IE_WIN7                   =  _WIN32_IE_IE80;
68 enum _WIN32_IE_WIN8                   =  _WIN32_IE_IE100;
69 enum _WIN32_IE_WINBLUE                =  _WIN32_IE_IE100;
70 enum _WIN32_IE_WINTHRESHOLD           =  _WIN32_IE_IE110;
71 enum _WIN32_IE_WIN10                  =  _WIN32_IE_IE110;
72 
73 
74 enum NTDDI_WIN2K                         = 0x05000000;
75 enum NTDDI_WIN2KSP1                      = 0x05000100;
76 enum NTDDI_WIN2KSP2                      = 0x05000200;
77 enum NTDDI_WIN2KSP3                      = 0x05000300;
78 enum NTDDI_WIN2KSP4                      = 0x05000400;
79 
80 enum NTDDI_WINXP                         = 0x05010000;
81 enum NTDDI_WINXPSP1                      = 0x05010100;
82 enum NTDDI_WINXPSP2                      = 0x05010200;
83 enum NTDDI_WINXPSP3                      = 0x05010300;
84 enum NTDDI_WINXPSP4                      = 0x05010400;
85 
86 enum NTDDI_WS03                          = 0x05020000;
87 enum NTDDI_WS03SP1                       = 0x05020100;
88 enum NTDDI_WS03SP2                       = 0x05020200;
89 enum NTDDI_WS03SP3                       = 0x05020300;
90 enum NTDDI_WS03SP4                       = 0x05020400;
91 
92 enum NTDDI_WIN6                          = 0x06000000;
93 enum NTDDI_WIN6SP1                       = 0x06000100;
94 enum NTDDI_WIN6SP2                       = 0x06000200;
95 enum NTDDI_WIN6SP3                       = 0x06000300;
96 enum NTDDI_WIN6SP4                       = 0x06000400;
97 
98 enum NTDDI_VISTA                       = NTDDI_WIN6;
99 enum NTDDI_VISTASP1                    = NTDDI_WIN6SP1;
100 enum NTDDI_VISTASP2                    = NTDDI_WIN6SP2;
101 enum NTDDI_VISTASP3                    = NTDDI_WIN6SP3;
102 enum NTDDI_VISTASP4                    = NTDDI_WIN6SP4;
103 
104 enum NTDDI_LONGHORN                    = NTDDI_VISTA;
105 
106 enum NTDDI_WS08                        = NTDDI_WIN6SP1;
107 enum NTDDI_WS08SP2                     = NTDDI_WIN6SP2;
108 enum NTDDI_WS08SP3                     = NTDDI_WIN6SP3;
109 enum NTDDI_WS08SP4                     = NTDDI_WIN6SP4;
110 
111 enum NTDDI_WIN7                          = 0x06010000;
112 enum NTDDI_WIN8                          = 0x06020000;
113 enum NTDDI_WINBLUE                       = 0x06030000;
114 enum NTDDI_WINTHRESHOLD                  = 0x0A000000;
115 enum NTDDI_WIN10                         = 0x0A000000;
116 enum NTDDI_WIN10_TH2                     = 0x0A000001;
117 enum NTDDI_WIN10_RS1                     = 0x0A000002;
118 enum NTDDI_WIN10_RS2                     = 0x0A000003;
119 enum NTDDI_WIN10_RS3                     = 0x0A000004;
120 enum NTDDI_WIN10_RS4                     = 0x0A000005;
121 enum NTDDI_WIN10_RS5                     = 0x0A000006;
122 enum NTDDI_WIN10_19H1                    = 0x0A000007;
123 enum NTDDI_WIN10_VB                      = 0x0A000008;
124 enum NTDDI_WIN10_MN                      = 0x0A000009;
125 enum NTDDI_WIN10_FE                      = 0x0A00000A;
126 enum NTDDI_WIN10_CO                      = 0x0A00000B;
127 enum NTDDI_WIN10_NI                      = 0x0A00000C;
128 enum NTDDI_WIN10_CU                      = 0x0A00000D;
129 enum NTDDI_WIN11_ZN                      = 0x0A00000E;
130 enum NTDDI_WIN11_GA                      = 0x0A00000F;
131 enum NTDDI_WIN11_GE                      = 0x0A000010;
132 
133 enum WDK_NTDDI_VERSION = NTDDI_WIN11_GE;
134 
135 enum OSVERSION_MASK      = 0xFFFF0000U;
136 enum SPVERSION_MASK      = 0x0000FF00;
137 enum SUBVERSION_MASK     = 0x000000FF;
138 
139 pragma(inline, true) @nogc nothrow pure @safe {
140     uint OSVER(uint Version) => Version & OSVERSION_MASK;
141     uint SPVER(uint Version) => (Version & SPVERSION_MASK) >> 8;
142     uint SUBVER(uint Version) => Version & SUBVERSION_MASK;
143 
144     uint NTDDI_VERSION_FROM_WIN32_WINNT2(uint Version) => Version * 0x10000;
145     alias NTDDI_VERSION_FROM_WIN32_WINNT = NTDDI_VERSION_FROM_WIN32_WINNT2;
146 }
147 
148 
149 static if (_WIN32_WINNT < _WIN32_WINNT_WIN10) {
150     enum NTDDI_VERSION = NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT);
151 } else {
152     enum NTDDI_VERSION = WDK_NTDDI_VERSION;
153 }
154 
155 enum WINVER = _WIN32_WINNT;