-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsdkddkver.py
More file actions
166 lines (155 loc) · 5.09 KB
/
Copy pathsdkddkver.py
File metadata and controls
166 lines (155 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
sdkddkver.h
Abstract:
Master include file for versioning windows SDK/DDK.
"""
from . import cpreproc
if cpreproc.pragma_once("_INC_SDKDDKVER"):
#
# WIN32_WINNT version constants
#
WIN32_WINNT_NT4 = 0x0400
WIN32_WINNT_WIN2K = 0x0500
WIN32_WINNT_WINXP = 0x0501
WIN32_WINNT_WS03 = 0x0502
WIN32_WINNT_WIN6 = 0x0600
WIN32_WINNT_VISTA = 0x0600
WIN32_WINNT_WS08 = 0x0600
WIN32_WINNT_LONGHORN = 0x0600
WIN32_WINNT_WIN7 = 0x0601
WIN32_WINNT_WIN8 = 0x0602
WIN32_WINNT_WINBLUE = 0x0603
WIN32_WINNT_WINTHRESHOLD = 0x0A00 # ABRACADABRA_THRESHOLD
WIN32_WINNT_WIN10 = 0x0A00 # ABRACADABRA_THRESHOLD
#
# WIN32_IE_ version constants
#
WIN32_IE_IE20 = 0x0200
WIN32_IE_IE30 = 0x0300
WIN32_IE_IE302 = 0x0302
WIN32_IE_IE40 = 0x0400
WIN32_IE_IE401 = 0x0401
WIN32_IE_IE50 = 0x0500
WIN32_IE_IE501 = 0x0501
WIN32_IE_IE55 = 0x0550
WIN32_IE_IE60 = 0x0600
WIN32_IE_IE60SP1 = 0x0601
WIN32_IE_IE60SP2 = 0x0603
WIN32_IE_IE70 = 0x0700
WIN32_IE_IE80 = 0x0800
WIN32_IE_IE90 = 0x0900
WIN32_IE_IE100 = 0x0A00
WIN32_IE_IE110 = 0x0A00 # ABRACADABRA_THRESHOLD
#
# IE <-> OS version mapping
#
# NT4 supports IE versions 2.0 -> 6.0 SP1
WIN32_IE_NT4 = WIN32_IE_IE20
WIN32_IE_NT4SP1 = WIN32_IE_IE20
WIN32_IE_NT4SP2 = WIN32_IE_IE20
WIN32_IE_NT4SP3 = WIN32_IE_IE302
WIN32_IE_NT4SP4 = WIN32_IE_IE401
WIN32_IE_NT4SP5 = WIN32_IE_IE401
WIN32_IE_NT4SP6 = WIN32_IE_IE50
# Win98 supports IE versions 4.01 -> 6.0 SP1
WIN32_IE_WIN98 = WIN32_IE_IE401
# Win98SE supports IE versions 5.0 -> 6.0 SP1
WIN32_IE_WIN98SE = WIN32_IE_IE50
# WinME supports IE versions 5.5 -> 6.0 SP1
WIN32_IE_WINME = WIN32_IE_IE55
# Win2k supports IE versions 5.01 -> 6.0 SP1
WIN32_IE_WIN2K = WIN32_IE_IE501
WIN32_IE_WIN2KSP1 = WIN32_IE_IE501
WIN32_IE_WIN2KSP2 = WIN32_IE_IE501
WIN32_IE_WIN2KSP3 = WIN32_IE_IE501
WIN32_IE_WIN2KSP4 = WIN32_IE_IE501
WIN32_IE_XP = WIN32_IE_IE60
WIN32_IE_XPSP1 = WIN32_IE_IE60SP1
WIN32_IE_XPSP2 = WIN32_IE_IE60SP2
WIN32_IE_WS03 = 0x0602
WIN32_IE_WS03SP1 = WIN32_IE_IE60SP2
WIN32_IE_WIN6 = WIN32_IE_IE70
WIN32_IE_LONGHORN = WIN32_IE_IE70
WIN32_IE_WIN7 = WIN32_IE_IE80
WIN32_IE_WIN8 = WIN32_IE_IE100
WIN32_IE_WINBLUE = WIN32_IE_IE100
WIN32_IE_WINTHRESHOLD = WIN32_IE_IE110 # ABRACADABRA_THRESHOLD
WIN32_IE_WIN10 = WIN32_IE_IE110 # ABRACADABRA_THRESHOLD
#
# NTDDI version constants
#
NTDDI_WIN2K = 0x05000000
NTDDI_WIN2KSP1 = 0x05000100
NTDDI_WIN2KSP2 = 0x05000200
NTDDI_WIN2KSP3 = 0x05000300
NTDDI_WIN2KSP4 = 0x05000400
NTDDI_WINXP = 0x05010000
NTDDI_WINXPSP1 = 0x05010100
NTDDI_WINXPSP2 = 0x05010200
NTDDI_WINXPSP3 = 0x05010300
NTDDI_WINXPSP4 = 0x05010400
NTDDI_WS03 = 0x05020000
NTDDI_WS03SP1 = 0x05020100
NTDDI_WS03SP2 = 0x05020200
NTDDI_WS03SP3 = 0x05020300
NTDDI_WS03SP4 = 0x05020400
NTDDI_WIN6 = 0x06000000
NTDDI_WIN6SP1 = 0x06000100
NTDDI_WIN6SP2 = 0x06000200
NTDDI_WIN6SP3 = 0x06000300
NTDDI_WIN6SP4 = 0x06000400
NTDDI_VISTA = NTDDI_WIN6
NTDDI_VISTASP1 = NTDDI_WIN6SP1
NTDDI_VISTASP2 = NTDDI_WIN6SP2
NTDDI_VISTASP3 = NTDDI_WIN6SP3
NTDDI_VISTASP4 = NTDDI_WIN6SP4
NTDDI_LONGHORN = NTDDI_VISTA
NTDDI_WS08 = NTDDI_WIN6SP1
NTDDI_WS08SP2 = NTDDI_WIN6SP2
NTDDI_WS08SP3 = NTDDI_WIN6SP3
NTDDI_WS08SP4 = NTDDI_WIN6SP4
NTDDI_WIN7 = 0x06010000
NTDDI_WIN8 = 0x06020000
NTDDI_WINBLUE = 0x06030000
NTDDI_WINTHRESHOLD = 0x0A000000 # ABRACADABRA_THRESHOLD
NTDDI_WIN10 = 0x0A000000 # ABRACADABRA_THRESHOLD
NTDDI_WIN10_TH2 = 0x0A000001 # ABRACADABRA_WIN10_TH2
NTDDI_WIN10_RS1 = 0x0A000002 # ABRACADABRA_WIN10_RS1
NTDDI_WIN10_RS2 = 0x0A000003 # ABRACADABRA_WIN10_RS2
NTDDI_WIN10_RS3 = 0x0A000004 # ABRACADABRA_WIN10_RS3
NTDDI_WIN10_RS4 = 0x0A000005 # ABRACADABRA_WIN10_RS4
NTDDI_WIN10_RS5 = 0x0A000006 # ABRACADABRA_WIN10_RS5
NTDDI_WIN10_19H1 = 0x0A000007 # ABRACADABRA_WIN10_19H1
NTDDI_WIN10_VB = 0x0A000008 # ABRACADABRA_WIN10_VB
WDK_NTDDI_VERSION = NTDDI_WIN10_VB # ABRACADABRA_WIN10_VB
#
# masks for version macros
#
OSVERSION_MASK = 0xFFFF0000
SPVERSION_MASK = 0x0000FF00
SUBVERSION_MASK = 0x000000FF
#
# macros to extract various version fields from the NTDDI version
#
OSVER = lambda Version: ((Version) & OSVERSION_MASK)
SPVER = lambda Version: (((Version) & SPVERSION_MASK) >> 8)
SUBVER = lambda Version: (((Version) & SUBVERSION_MASK))
_version = cpreproc.getdef("_WINVER")
if _version <= WIN32_WINNT_NT4:
WIN32_IE = WIN32_IE_IE50
elif _version <= WIN32_WINNT_WIN2K:
WIN32_IE = WIN32_IE_IE501
elif _version <= WIN32_WINNT_WINXP:
WIN32_IE = WIN32_IE_IE60
elif _version <= WIN32_WINNT_WS03:
WIN32_IE = WIN32_IE_WS03
elif _version <= WIN32_WINNT_VISTA:
WIN32_IE = WIN32_IE_LONGHORN
elif _version <= WIN32_WINNT_WIN7:
WIN32_IE = WIN32_IE_WIN7
elif _version <= WIN32_WINNT_WIN8:
WIN32_IE = WIN32_IE_WIN8
else:
WIN32_IE = WIN32_WINNT_WIN10