blob: 3005cf5abead1d80306542760b85f1a71b84f36a (
plain)
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
|
/**
sdkddkver.h - Versioning file for Windows SDK/DDK.
This file is part of a free library for the Windows API.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef _SDKDDKVER_H
#define _SDKDDKVER_H
/**
* Define version masks
* http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
* Values and names are guessed based on comments in the documentation.
*/
#define OSVERSION_MASK 0xFFFF0000
#define SPVERSION_MASK 0x0000FF00
#define SUBVERSION_MASK 0x000000FF
/**
* Macros to extract values from NTDDI version.
* Derived from comments on MSDN or social.microsoft.com
*/
#define OSVER(ver) ((ver) & OSVERSION_MASK)
#define SPVER(ver) (((ver) & SPVERSION_MASK) >> 8)
#define SUBVER(ver) ((ver) & SUBVERSION_MASK)
/**
* Macros to create the minimal NTDDI version from _WIN32_WINNT value.
*/
#define NTDDI_VERSION_FROM_WIN32_WINNT(ver) _NTDDI_VERSION_FROM_WIN32_WINNT(ver)
#define _NTDDI_VERSION_FROM_WIN32_WINNT(ver) ver##0000
/**
* Version constants defining _WIN32_WINNT versions.
* http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
*/
#define _WIN32_WINNT_NT4 0x0400
#define _WIN32_WINNT_WIN2K 0x0500
#define _WIN32_WINNT_WINXP 0x0501
#define _WIN32_WINNT_WS03 0x0502
#define _WIN32_WINNT_WIN6 0x0600
#define _WIN32_WINNT_VISTA 0x0600
#define _WIN32_WINNT_WS08 0x0600
#define _WIN32_WINNT_LONGORN 0x0600
#define _WIN32_WINNT_WIN7 0x0601
/**
* Version constants defining _WIN32_IE versions.
* http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
*/
#define _WIN32_IE_IE50 0x0500
#define _WIN32_IE_IE501 0x0501
#define _WIN32_IE_IE55 0x0550
#define _WIN32_IE_IE60 0x0600
#define _WIN32_IE_IE60SP1 0x0601
#define _WIN32_IE_IE60SP2 0x0603
#define _WIN32_IE_IE70 0x0700
#define _WIN32_IE_IE80 0x0800
/**
* Version constants defining NTDDI_VERSION.
* http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
*/
#define __NTDDI_WIN5 0x05000000
#define __NTDDI_WIN51 0x05010000
#define __NTDDI_WIN52 0x05020000
#define __NTDDI_WIN6 0x06000000
#define __NTDDI_WIN61 0x06010000
#define __NTDDI_SP0 0x00000000
#define __NTDDI_SP1 0x00000100
#define __NTDDI_SP2 0x00000200
#define __NTDDI_SP3 0x00000300
#define __NTDDI_SP4 0x00000400
#define NTDDI_WIN2K __NTDDI_WIN5 + __NTDDI_SP0
#define NTDDI_WIN2KSP1 __NTDDI_WIN5 + __NTDDI_SP1
#define NTDDI_WIN2KSP2 __NTDDI_WIN5 + __NTDDI_SP2
#define NTDDI_WIN2KSP3 __NTDDI_WIN5 + __NTDDI_SP3
#define NTDDI_WIN2KSP4 __NTDDI_WIN5 + __NTDDI_SP4
#define NTDDI_WINXP __NTDDI_WIN51 + __NTDDI_SP0
#define NTDDI_WINXPSP1 __NTDDI_WIN51 + __NTDDI_SP1
#define NTDDI_WINXPSP2 __NTDDI_WIN51 + __NTDDI_SP2
#define NTDDI_WINXPSP3 __NTDDI_WIN51 + __NTDDI_SP3
#define NTDDI_WS03 __NTDDI_WIN52 + __NTDDI_SP0
#define NTDDI_WS03SP1 __NTDDI_WIN52 + __NTDDI_SP1
#define NTDDI_WS03SP2 __NTDDI_WIN52 + __NTDDI_SP2
#define NTDDI_VISTA __NTDDI_WIN6 + __NTDDI_SP0
#define NTDDI_VISTASP1 __NTDDI_WIN6 + __NTDDI_SP1
#define NTDDI_VISTASP2 __NTDDI_WIN6 + __NTDDI_SP2
#define NTDDI_LONGHORN NTDDI_VISTA
#define NTDDI_WIN6 NTDDI_VISTA
#define NTDDI_WIN6SP1 NTDDI_VISTASP1
#define NTDDI_WIN6SP2 NTDDI_VISTASP2
#define NTDDI_WS08 __NTDDI_WIN6 + __NTDDI_SP1
#define NTDDI_WIN7 __NTDDI_WIN61 + __NTDDI_SP0
/**
* Assign defaults
*/
#ifdef NTDDI_VERSION
# ifdef _WIN32_WINNT
# if _WIN32_WINNT != OSDIR(NTDDI_VERSION)
# error The _WIN32_WINNT value does not match NTDDI_VERSION
# endif
# else
# define _WIN32_WINNT OSVER(NTDDI_VERSION)
# ifndef WINVER
# define WINVER _WIN32_WINNT
# endif
# endif
#endif
#ifndef _WIN32_WINNT
# ifdef WINVER
# define _WIN32_WINNT WINVER
# else
# warning _WIN32_WINNT is defaulting to _WIN32_WINNT_WIN2K
# define _WIN32_WINNT _WIN32_WINNT_WIN2K
# endif
#endif
#ifndef WINVER
# define WINVER _WIN32_WINNT
#endif
#ifndef NTDDI_VERSION
# warning NTDDI_VERSION is defaulting to _WIN32_WINNT version SPK0
# define NTDDI_VERSION NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT)
#endif
#endif
|