Differences From Artifact [5400bf8ccf4a147f]:
- File
src/win32/winnt.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [217222ad3190ccc6]:
- File
src/win32/winnt.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
> 1 /***********************************************************************\
> 2 * winnt.d *
> 3 * *
> 4 * Windows API header module *
> 5 * *
> 6 * Translated from MinGW API for MS-Windows 3.12 *
> 7 * *
> 8 * Placed into public domain *
> 9 \***********************************************************************/
1 module win32.winnt; 10 module win32.winnt;
2 11
3 // Translated from Microsoft Platform SDK August 2001 Edition | 12 public import win32.basetsd, win32.windef, win32.winerror;
4 // by Y.Tomino (demoonlit@inter7.jp) <
5 <
6 import win32.windef; | 13 private import win32.w32api;
7 alias void _TEB; <
8 alias void _EXCEPTION_REGISTRATION_RECORD; <
9 private extern(C) { <
10 int memcmp(void*, void*, uint); <
11 void* memmove(void*, void*, uint); <
12 void* memcpy(void*, void*, uint); <
13 void* memset(void*, uint, uint); <
14 } | 14
> 15 /* Translation Notes:
> 16 The following macros are unneeded for D:
> 17 FIELD_OFFSET(t,f), CONTAINING_RECORD(address, type, field)
> 18 */
15 | 19
> 20 alias void VOID;
> 21 alias char CHAR, CCHAR;
> 22 alias wchar WCHAR;
> 23 alias bool BOOLEAN;
> 24 alias byte FCHAR;
16 // #ifndef _WINNT_ | 25 alias ubyte UCHAR;
17 // #define _WINNT_ | 26 alias short SHORT;
> 27 alias ushort LANGID, FSHORT;
> 28 alias uint LCID, FLONG, ACCESS_MASK;
> 29 alias long LONGLONG, USN;
> 30 alias ulong DWORDLONG, ULONGLONG;
18 | 31
19 // #ifdef __cplusplus <
20 // extern "C" { <
21 // #endif <
> 32 alias void* PVOID, LPVOID;
> 33 alias char* PSZ, PCHAR, PCCHAR, LPCH, PCH, LPSTR, PSTR;
> 34 alias wchar* PWCHAR, LPWCH, PWCH, LPWSTR, PWSTR;
> 35 alias bool* PBOOLEAN;
> 36 alias ubyte* PUCHAR;
> 37 alias short* PSHORT;
> 38 alias int* PLONG;
> 39 alias uint* PLCID, PACCESS_MASK;
> 40 alias long* PLONGLONG;
> 41 alias ulong* PDWORDLONG, PULONGLONG;
22 | 42
23 // #include <ctype.h> <
24 enum : uint { ANYSIZE_ARRAY = 1 } <
> 43 // FIXME(MinGW) for __WIN64
> 44 alias void* PVOID64;
25 | 45
26 // #if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && def <
27 // #... <
28 // #else <
29 // #define RESTRICTED_POINTER <
30 // #endif <
> 46 // const versions
> 47 alias CPtr!(char) LPCCH, PCSTR, LPCSTR;
> 48 alias CPtr!(wchar) LPCWCH, PCWCH, LPCWSTR, PCWSTR;
31 | 49
32 // #if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_ <
33 // #... <
34 // #if defined(_WIN64) <
35 // #... <
> 50 version (Unicode) {
> 51 alias WCHAR TCHAR, _TCHAR;
36 // #else | 52 } else {
37 // #... <
38 // #endif <
39 // #else <
40 // #define UNALIGNED <
41 // #define UNALIGNED64 <
42 // #endif <
> 53 alias CHAR TCHAR, _TCHAR;
43 | 54 }
44 // #if defined(_WIN64) || defined(_M_ALPHA) <
45 // #... <
46 // #... <
47 // #else <
48 const uint MAX_NATURAL_ALIGNMENT = DWORD.sizeof; <
49 enum : uint { MEMORY_ALLOCATION_ALIGNMENT = 8 } <
50 // #endif <
51 | 55
52 // #ifdef __cplusplus <
53 // #if _MSC_VER >= 1300 <
54 // #define TYPE_ALIGNMENT( t ) __alignof(t) <
55 // #endif <
56 // #else <
57 // #... <
58 // ... <
59 // #endif <
> 56 alias TCHAR TBYTE;
> 57 alias TCHAR* PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR;
> 58 alias CPtr!(TCHAR) LPCTSTR;
60 | 59
61 // #if defined(_WIN64) <
> 60 const char ANSI_NULL = '\0';
> 61 const wchar UNICODE_NULL = '\0';
62 | 62
63 // #... <
64 // ... <
> 63 const APPLICATION_ERROR_MASK = 0x20000000;
> 64 const ERROR_SEVERITY_SUCCESS = 0x00000000;
> 65 const ERROR_SEVERITY_INFORMATIONAL = 0x40000000;
> 66 const ERROR_SEVERITY_WARNING = 0x80000000;
> 67 const ERROR_SEVERITY_ERROR = 0xC0000000;
65 | 68
> 69 // MinGW: also in ddk/ntifs.h
> 70 enum : USHORT {
> 71 COMPRESSION_FORMAT_NONE = 0x0000,
> 72 COMPRESSION_FORMAT_DEFAULT = 0x0001,
> 73 COMPRESSION_FORMAT_LZNT1 = 0x0002,
> 74 COMPRESSION_ENGINE_STANDARD = 0x0000,
66 // #... | 75 COMPRESSION_ENGINE_MAXIMUM = 0x0100,
> 76 COMPRESSION_ENGINE_HIBER = 0x0200
67 | 77 }
68 // #else <
69 | 78
70 // #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) | 79 // ACCESS_DENIED_OBJECT_ACE, etc
> 80 const DWORD
> 81 ACE_OBJECT_TYPE_PRESENT = 0x00000001,
> 82 ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x00000002;
71 | 83
72 // #endif <
> 84 // ACE_HEADER.AceType
> 85 // also in ddk/ntifs.h
> 86 enum : BYTE {
> 87 ACCESS_ALLOWED_ACE_TYPE,
> 88 ACCESS_DENIED_ACE_TYPE,
> 89 SYSTEM_AUDIT_ACE_TYPE,
> 90 SYSTEM_ALARM_ACE_TYPE
73 | 91 }
74 // #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] <
75 | 92
76 // #if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_ <
77 // #... <
78 // ... <
79 // #if defined(_WIN64) <
80 // #... <
81 // #else <
82 // #... <
83 // #endif <
84 // #else | 93 // ACE_HEADER.AceFlags
85 // #if defined(_MAC) && defined(_MAC_INT_64) | 94 const BYTE
86 // #... | 95 OBJECT_INHERIT_ACE = 0x01,
87 // ... | 96 CONTAINER_INHERIT_ACE = 0x02,
88 // #else | 97 NO_PROPAGATE_INHERIT_ACE = 0x04,
89 // #define POINTER_64 | 98 INHERIT_ONLY_ACE = 0x08,
90 alias uint POINTER_64_INT; | 99 INHERITED_ACE = 0x10,
91 // #endif | 100 VALID_INHERIT_FLAGS = 0x1F,
92 alias void* POINTER_32; | 101 SUCCESSFUL_ACCESS_ACE_FLAG = 0x40,
93 // #endif | 102 FAILED_ACCESS_ACE_FLAG = 0x80;
94 | 103
95 // #if defined(_IA64_) || defined(_AMD64_) | 104 // Access Mask Format
96 // #... | 105 const ACCESS_MASK
97 // #else | 106 DELETE = 0x00010000,
98 alias POINTER_32 FIRMWARE_PTR; | 107 READ_CONTROL = 0x00020000,
99 // #endif | 108 WRITE_DAC = 0x00040000,
100 <
> 109 WRITE_OWNER = 0x00080000,
101 // #include <basetsd.h> | 110 SYNCHRONIZE = 0x00100000,
102 <
> 111 ACCESS_SYSTEM_SECURITY = 0x01000000,
103 // #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(M | 112 MAXIMUM_ALLOWED = 0x02000000,
104 // #define DECLSPEC_IMPORT __declspec(dllimport) | 113 GENERIC_READ = 0x80000000,
105 // #else | 114 GENERIC_WRITE = 0x40000000,
106 // #... | 115 GENERIC_EXECUTE = 0x20000000,
107 // #endif | 116 GENERIC_ALL = 0x10000000,
108 <
> 117 STANDARD_RIGHTS_REQUIRED = 0x000F0000,
109 // #ifndef DECLSPEC_NORETURN | 118 STANDARD_RIGHTS_READ = 0x00020000,
110 // #if (_MSC_VER >= 1200) && !defined(MIDL_PASS) | 119 STANDARD_RIGHTS_WRITE = 0x00020000,
111 // #define DECLSPEC_NORETURN __declspec(noreturn) | 120 STANDARD_RIGHTS_EXECUTE = 0x00020000,
112 // #else | 121 STANDARD_RIGHTS_ALL = 0x001F0000,
113 // #... | 122 SPECIFIC_RIGHTS_ALL = 0x0000FFFF;
114 // #endif <
115 // #endif <
116 | 123
117 // #ifndef DECLSPEC_ALIGN <
118 // #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) <
119 // #define DECLSPEC_ALIGN(x) __declspec(align(x)) <
120 // #else <
121 // #... <
122 // #endif <
123 // #endif <
124 | 124
125 // #ifndef DECLSPEC_CACHEALIGN <
126 // #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128) <
127 // #endif <
> 125 const DWORD INVALID_FILE_ATTRIBUTES = -1;
128 | 126
> 127 // MinGW: Also in ddk/winddk.h
> 128 const DWORD
> 129 FILE_LIST_DIRECTORY = 0x00000001,
> 130 FILE_READ_DATA = 0x00000001,
> 131 FILE_ADD_FILE = 0x00000002,
> 132 FILE_WRITE_DATA = 0x00000002,
> 133 FILE_ADD_SUBDIRECTORY = 0x00000004,
> 134 FILE_APPEND_DATA = 0x00000004,
> 135 FILE_CREATE_PIPE_INSTANCE = 0x00000004,
> 136 FILE_READ_EA = 0x00000008,
> 137 FILE_READ_PROPERTIES = 0x00000008,
129 // #ifndef DECLSPEC_UUID | 138 FILE_WRITE_EA = 0x00000010,
130 // #if (_MSC_VER >= 1100) && defined (__cplusplus) | 139 FILE_WRITE_PROPERTIES = 0x00000010,
131 // #define DECLSPEC_UUID(x) __declspec(uuid(x)) | 140 FILE_EXECUTE = 0x00000020,
132 // #else | 141 FILE_TRAVERSE = 0x00000020,
133 // #... | 142 FILE_DELETE_CHILD = 0x00000040,
134 // #endif | 143 FILE_READ_ATTRIBUTES = 0x00000080,
135 // #endif | 144 FILE_WRITE_ATTRIBUTES = 0x00000100;
136 | 145
137 // #ifndef DECLSPEC_NOVTABLE | 146 const DWORD
138 // #if (_MSC_VER >= 1100) && defined(__cplusplus) | 147 FILE_SHARE_READ = 0x00000001,
139 // #define DECLSPEC_NOVTABLE __declspec(novtable) | 148 FILE_SHARE_WRITE = 0x00000002,
140 // #else | 149 FILE_SHARE_DELETE = 0x00000004,
141 // #... | 150 FILE_SHARE_VALID_FLAGS = 0x00000007;
142 // #endif <
143 // #endif <
144 | 151
> 152 const DWORD
> 153 FILE_ATTRIBUTE_READONLY = 0x00000001,
145 // #ifndef DECLSPEC_SELECTANY | 154 FILE_ATTRIBUTE_HIDDEN = 0x00000002,
146 // #if (_MSC_VER >= 1100) | 155 FILE_ATTRIBUTE_SYSTEM = 0x00000004,
147 // #define DECLSPEC_SELECTANY __declspec(selectany) | 156 FILE_ATTRIBUTE_DIRECTORY = 0x00000010,
148 // #else | 157 FILE_ATTRIBUTE_ARCHIVE = 0x00000020,
149 // #... | 158 FILE_ATTRIBUTE_DEVICE = 0x00000040,
150 // #endif | 159 FILE_ATTRIBUTE_NORMAL = 0x00000080,
151 // #endif | 160 FILE_ATTRIBUTE_TEMPORARY = 0x00000100,
> 161 FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200,
> 162 FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400,
> 163 FILE_ATTRIBUTE_COMPRESSED = 0x00000800,
> 164 FILE_ATTRIBUTE_OFFLINE = 0x00001000,
> 165 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000,
> 166 FILE_ATTRIBUTE_ENCRYPTED = 0x00004000,
> 167 FILE_ATTRIBUTE_VALID_FLAGS = 0x00007fb7,
> 168 FILE_ATTRIBUTE_VALID_SET_FLAGS = 0x000031a7;
152 | 169
153 // #ifndef NOP_FUNCTION <
154 // #if (_MSC_VER >= 1210) <
155 // #... <
156 // #else <
157 // #... <
158 // #endif <
159 // #endif <
> 170 // These are not documented on MSDN
> 171 const FILE_COPY_STRUCTURED_STORAGE = 0x00000041;
> 172 const FILE_STRUCTURED_STORAGE = 0x00000441;
160 | 173
161 // #ifndef DECLSPEC_ADDRSAFE <
162 // #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) <
163 // #... <
164 // #else <
165 // #define DECLSPEC_ADDRSAFE | 174 // Nor are these
166 // #endif | 175 const FILE_VALID_OPTION_FLAGS = 0x00ffffff;
167 // #endif | 176 const FILE_VALID_PIPE_OPTION_FLAGS = 0x00000032;
> 177 const FILE_VALID_MAILSLOT_OPTION_FLAGS = 0x00000032;
> 178 const FILE_VALID_SET_FLAGS = 0x00000036;
168 | 179
169 // #ifndef FORCEINLINE <
170 // #if (_MSC_VER >= 1200) <
171 // #define FORCEINLINE __forceinline | 180 const ULONG
172 // #else | 181 FILE_SUPERSEDE = 0x00000000,
173 // #... | 182 FILE_OPEN = 0x00000001,
174 // #endif | 183 FILE_CREATE = 0x00000002,
175 // #endif | 184 FILE_OPEN_IF = 0x00000003,
> 185 FILE_OVERWRITE = 0x00000004,
> 186 FILE_OVERWRITE_IF = 0x00000005,
> 187 FILE_MAXIMUM_DISPOSITION = 0x00000005;
176 | 188
177 // #ifndef DECLSPEC_DEPRECATED <
178 // #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) <
179 // #define DECLSPEC_DEPRECATED __declspec(deprecated) <
180 // #define DEPRECATE_SUPPORTED | 189 const ULONG
181 // #else | 190 FILE_DIRECTORY_FILE = 0x00000001,
182 // #... | 191 FILE_WRITE_THROUGH = 0x00000002,
183 // #... | 192 FILE_SEQUENTIAL_ONLY = 0x00000004,
184 // #endif | 193 FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008,
185 // #endif | 194 FILE_SYNCHRONOUS_IO_ALERT = 0x00000010,
186 <
> 195 FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020,
187 alias void* PVOID; | 196 FILE_NON_DIRECTORY_FILE = 0x00000040,
188 deprecated alias void* PVOID64; /* warning: 64-bit */ | 197 FILE_CREATE_TREE_CONNECTION = 0x00000080,
189 <
> 198 FILE_COMPLETE_IF_OPLOCKED = 0x00000100,
190 // #if ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) && !defined(_M_AMD64) | 199 FILE_NO_EA_KNOWLEDGE = 0x00000200,
191 // #define NTAPI __stdcall | 200 FILE_OPEN_FOR_RECOVERY = 0x00000400,
192 // #else | 201 FILE_RANDOM_ACCESS = 0x00000800,
193 // #... | 202 FILE_DELETE_ON_CLOSE = 0x00001000,
194 // #... | 203 FILE_OPEN_BY_FILE_ID = 0x00002000,
195 // #endif | 204 FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000,
196 <
> 205 FILE_NO_COMPRESSION = 0x00008000,
197 // #if !defined(_NTSYSTEM_) | 206 FILE_RESERVE_OPFILTER = 0x00100000,
198 // #define NTSYSAPI DECLSPEC_IMPORT | 207 FILE_OPEN_REPARSE_POINT = 0x00200000,
199 // #define NTSYSCALLAPI DECLSPEC_IMPORT | 208 FILE_OPEN_NO_RECALL = 0x00400000,
200 // #else | 209 FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000;
201 // #... <
202 // #if defined(_NTDLLBUILD_) <
203 // #... <
204 // #else <
205 // #... <
206 // #endif <
207 | 210
208 // #endif <
209 | 211
> 212 const ACCESS_MASK
> 213 FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x01FF,
> 214 FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES
> 215 | FILE_EXECUTE | SYNCHRONIZE,
> 216 FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA
> 217 | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONI
> 218 FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA
210 // #ifndef VOID | 219 | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_AP
211 alias void VOID; | 220 | SYNCHRONIZE;
212 alias char CHAR; <
213 alias short SHORT; <
214 alias int LONG; <
215 // #endif <
216 | 221
> 222 // MinGW: end winddk.h
> 223 // MinGW: also in ddk/ntifs.h
> 224 const DWORD
> 225 FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001,
217 // #ifndef _MAC | 226 FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002,
218 alias wchar WCHAR; | 227 FILE_NOTIFY_CHANGE_NAME = 0x00000003,
219 // #else | 228 FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004,
220 <
> 229 FILE_NOTIFY_CHANGE_SIZE = 0x00000008,
221 // ... | 230 FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010,
222 // #endif | 231 FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020,
223 <
> 232 FILE_NOTIFY_CHANGE_CREATION = 0x00000040,
224 alias WCHAR* PWCHAR; | 233 FILE_NOTIFY_CHANGE_EA = 0x00000080,
225 alias WCHAR* LPWCH; | 234 FILE_NOTIFY_CHANGE_SECURITY = 0x00000100,
226 alias WCHAR* PWCH; | 235 FILE_NOTIFY_CHANGE_STREAM_NAME = 0x00000200,
227 alias WCHAR* LPCWCH; | 236 FILE_NOTIFY_CHANGE_STREAM_SIZE = 0x00000400,
228 alias WCHAR* PCWCH; | 237 FILE_NOTIFY_CHANGE_STREAM_WRITE = 0x00000800,
229 alias WCHAR* NWPSTR; | 238 FILE_NOTIFY_VALID_MASK = 0x00000fff;
230 alias WCHAR* LPWSTR; <
231 alias WCHAR* PWSTR; <
232 alias WCHAR* LPUWSTR; <
233 alias WCHAR* PUWSTR; <
234 | 239
> 240 const DWORD
> 241 FILE_CASE_SENSITIVE_SEARCH = 0x00000001,
> 242 FILE_CASE_PRESERVED_NAMES = 0x00000002,
> 243 FILE_UNICODE_ON_DISK = 0x00000004,
235 alias WCHAR* LPCWSTR; | 244 FILE_PERSISTENT_ACLS = 0x00000008,
236 alias WCHAR* PCWSTR; | 245 FILE_FILE_COMPRESSION = 0x00000010,
237 alias WCHAR* LPCUWSTR; | 246 FILE_VOLUME_QUOTAS = 0x00000020,
238 alias WCHAR* PCUWSTR; | 247 FILE_SUPPORTS_SPARSE_FILES = 0x00000040,
239 <
> 248 FILE_SUPPORTS_REPARSE_POINTS = 0x00000080,
240 alias CHAR* PCHAR; | 249 FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100,
241 alias CHAR* LPCH; | 250 FS_LFN_APIS = 0x00004000,
242 alias CHAR* PCH; | 251 FILE_VOLUME_IS_COMPRESSED = 0x00008000,
243 <
> 252 FILE_SUPPORTS_OBJECT_IDS = 0x00010000,
244 alias CHAR* LPCCH; | 253 FILE_SUPPORTS_ENCRYPTION = 0x00020000,
245 alias CHAR* PCCH; | 254 FILE_NAMED_STREAMS = 0x00040000,
246 alias CHAR* NPSTR; | 255 FILE_READ_ONLY_VOLUME = 0x00080000,
247 alias CHAR* LPSTR; | 256 FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000,
248 alias CHAR* PSTR; | 257 FILE_SUPPORTS_TRANSACTIONS = 0x00200000;
249 alias CHAR* LPCSTR; <
250 alias CHAR* PCSTR; <
251 | 258
> 259 // These are not documented on MSDN
> 260 const ACCESS_MASK
252 // #ifdef UNICODE // r_winnt | 261 IO_COMPLETION_QUERY_STATE = 1,
> 262 IO_COMPLETION_MODIFY_STATE = 2,
> 263 IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 3;
> 264 // MinGW: end ntifs.h
253 | 265
254 // #ifndef _TCHAR_DEFINED <
255 alias WCHAR TCHAR; <
256 alias WCHAR* PTCHAR; <
257 alias WCHAR TBYTE; | 266 // MinGW: also in ddk/winddk.h
258 alias WCHAR* PTBYTE; | 267 const DWORD
259 // #define _TCHAR_DEFINED | 268 DUPLICATE_CLOSE_SOURCE = 1,
260 // #endif /* !_TCHAR_DEFINED */ | 269 DUPLICATE_SAME_ACCESS = 2,
> 270 DUPLICATE_SAME_ATTRIBUTES = 4;
> 271 // MinGW: end winddk.k
261 | 272
262 alias LPWSTR LPTCH; <
263 alias LPWSTR PTCH; <
264 alias LPWSTR PTSTR; | 273 const DWORD
265 alias LPWSTR LPTSTR; | 274 MAILSLOT_NO_MESSAGE = -1,
266 alias LPCWSTR PCTSTR; | 275 MAILSLOT_WAIT_FOREVER = -1;
267 alias LPCWSTR LPCTSTR; <
268 alias LPUWSTR PUTSTR; <
269 alias LPUWSTR LPUTSTR; <
270 alias LPCUWSTR PCUTSTR; <
271 alias LPCUWSTR LPCUTSTR; <
272 alias LPWSTR LP; <
273 // #define __TEXT(quote) L##quote <
274 | 276
> 277 const ACCESS_MASK
> 278 PROCESS_TERMINATE = 0x0001,
> 279 PROCESS_CREATE_THREAD = 0x0002,
> 280 PROCESS_SET_SESSIONID = 0x0004,
> 281 PROCESS_VM_OPERATION = 0x0008,
> 282 PROCESS_VM_READ = 0x0010,
> 283 PROCESS_VM_WRITE = 0x0020,
275 // #else /* UNICODE */ // r_winnt | 284 PROCESS_DUP_HANDLE = 0x0040,
276 <
> 285 PROCESS_CREATE_PROCESS = 0x0080,
277 // #ifndef _TCHAR_DEFINED | 286 PROCESS_SET_QUOTA = 0x0100,
278 // ... | 287 PROCESS_SET_INFORMATION = 0x0200,
279 // #... | 288 PROCESS_QUERY_INFORMATION = 0x0400,
280 // #endif /* !_TCHAR_DEFINED */ | 289 PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0
281 | 290
282 // ... | 291 const ACCESS_MASK
283 // #... | 292 THREAD_TERMINATE = 0x0001,
284 <
> 293 THREAD_SUSPEND_RESUME = 0x0002,
285 // #endif /* UNICODE */ // r_winnt | 294 THREAD_GET_CONTEXT = 0x0008,
286 TCHAR[] TEXT(TCHAR[] quote){ return quote; } | 295 THREAD_SET_CONTEXT = 0x0010,
287 <
> 296 THREAD_SET_INFORMATION = 0x0020,
288 alias SHORT* PSHORT; | 297 THREAD_QUERY_INFORMATION = 0x0040,
289 alias LONG* PLONG; | 298 THREAD_SET_THREAD_TOKEN = 0x0080,
> 299 THREAD_IMPERSONATE = 0x0100,
> 300 THREAD_DIRECT_IMPERSONATION = 0x0200,
> 301 THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF
290 | 302
291 // #ifdef STRICT <
292 alias void* HANDLE; <
293 // #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct <
294 // #else | 303 // These are not documented on MSDN
295 // ... | 304 const THREAD_BASE_PRIORITY_LOWRT = 15;
296 // #... | 305 const THREAD_BASE_PRIORITY_MAX = 2;
297 // #endif | 306 const THREAD_BASE_PRIORITY_MIN = -2;
298 alias HANDLE* PHANDLE; | 307 const THREAD_BASE_PRIORITY_IDLE = -15;
299 | 308
300 alias BYTE FCHAR; | 309 const DWORD EXCEPTION_NONCONTINUABLE = 1;
301 alias WORD FSHORT; | 310 const size_t EXCEPTION_MAXIMUM_PARAMETERS = 15;
302 alias DWORD FLONG; <
303 | 311
> 312 // These are not documented on MSDN
304 // #ifndef _HRESULT_DEFINED | 313 const ACCESS_MASK
305 // #define _HRESULT_DEFINED | 314 MUTANT_QUERY_STATE = 1,
306 alias LONG HRESULT; | 315 MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUE
307 | 316
308 // #endif // !_HRESULT_DEFINED | 317 const ACCESS_MASK
309 <
> 318 TIMER_QUERY_STATE = 1,
310 // #ifdef __cplusplus | 319 TIMER_MODIFY_STATE = 2,
311 // #define EXTERN_C extern "C" | 320 TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUER
312 // #else | 321 | TIMER_MODIFY_STATE;
313 // #... <
314 // #endif <
315 | 322
> 323 const SID_IDENTIFIER_AUTHORITY
> 324 SECURITY_NULL_SID_AUTHORITY = {[5: 0]},
316 // #if defined(_WIN32) || defined(_MPPC_) | 325 SECURITY_WORLD_SID_AUTHORITY = {[5: 1]},
317 <
> 326 SECURITY_LOCAL_SID_AUTHORITY = {[5: 2]},
318 // #ifdef _68K_ | 327 SECURITY_CREATOR_SID_AUTHORITY = {[5: 3]},
319 // #... | 328 SECURITY_NON_UNIQUE_AUTHORITY = {[5: 4]},
320 // #else | 329 SECURITY_NT_AUTHORITY = {[5: 5]},
321 // #define STDMETHODCALLTYPE __stdcall | 330 SECURITY_MANDATORY_LABEL_AUTHORITY = {[5: 6]};
322 // #endif <
323 // #define STDMETHODVCALLTYPE __cdecl <
324 | 331
> 332 const DWORD
> 333 SECURITY_NULL_RID = 0,
325 // #define STDAPICALLTYPE __stdcall | 334 SECURITY_WORLD_RID = 0,
326 // #define STDAPIVCALLTYPE __cdecl | 335 SECURITY_LOCAL_RID = 0,
327 <
> 336 SECURITY_CREATOR_OWNER_RID = 0,
328 // #else | 337 SECURITY_CREATOR_GROUP_RID = 1,
329 <
> 338 SECURITY_DIALUP_RID = 1,
330 // #... | 339 SECURITY_NETWORK_RID = 2,
331 // #... | 340 SECURITY_BATCH_RID = 3,
332 <
> 341 SECURITY_INTERACTIVE_RID = 4,
333 // #... | 342 SECURITY_LOGON_IDS_RID = 5,
334 // #... | 343 SECURITY_SERVICE_RID = 6,
335 <
> 344 SECURITY_LOCAL_SYSTEM_RID = 18,
336 // #endif | 345 SECURITY_BUILTIN_DOMAIN_RID = 32,
337 <
> 346 SECURITY_PRINCIPAL_SELF_RID = 10,
338 // #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE | 347 SECURITY_CREATOR_OWNER_SERVER_RID = 2,
339 // #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE | 348 SECURITY_CREATOR_GROUP_SERVER_RID = 3,
340 <
> 349 SECURITY_LOGON_IDS_RID_COUNT = 3,
341 // #define STDMETHODIMP HRESULT STDMETHODCALLTYPE | 350 SECURITY_ANONYMOUS_LOGON_RID = 7,
342 // #define STDMETHODIMP_(type) type STDMETHODCALLTYPE | 351 SECURITY_PROXY_RID = 8,
343 <
> 352 SECURITY_ENTERPRISE_CONTROLLERS_RID = 9,
344 // #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE | 353 SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RI
345 // #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE | 354 SECURITY_AUTHENTICATED_USER_RID = 11,
346 <
> 355 SECURITY_RESTRICTED_CODE_RID = 12,
347 // #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE | 356 SECURITY_NT_NON_UNIQUE_RID = 21,
348 // #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE | 357 SID_REVISION = 1;
349 | 358
350 alias char CCHAR; <
351 alias DWORD LCID; | 359 enum : DWORD {
> 360 DOMAIN_USER_RID_ADMIN = 0x01F4,
352 alias PDWORD PLCID; | 361 DOMAIN_USER_RID_GUEST = 0x01F5,
353 alias WORD LANGID; | 362 DOMAIN_GROUP_RID_ADMINS = 0x0200,
354 enum : uint { APPLICATION_ERROR_MASK = 0x20000000 } | 363 DOMAIN_GROUP_RID_USERS = 0x0201,
355 enum : uint { ERROR_SEVERITY_SUCCESS = 0x00000000 } | 364 DOMAIN_ALIAS_RID_ADMINS = 0x0220,
356 enum : uint { ERROR_SEVERITY_INFORMATIONAL = 0x40000000 } | 365 DOMAIN_ALIAS_RID_USERS = 0x0221,
357 enum : uint { ERROR_SEVERITY_WARNING = 0x80000000 } | 366 DOMAIN_ALIAS_RID_GUESTS = 0x0222,
358 enum : uint { ERROR_SEVERITY_ERROR = 0xC0000000 } | 367 DOMAIN_ALIAS_RID_POWER_USERS = 0x0223,
359 <
> 368 DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x0224,
360 // #if defined(_M_IA64) && !defined(MIDL_PASS) | 369 DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x0225,
361 // ... | 370 DOMAIN_ALIAS_RID_PRINT_OPS = 0x0226,
362 // #endif | 371 DOMAIN_ALIAS_RID_BACKUP_OPS = 0x0227,
363 struct _FLOAT128 { | 372 DOMAIN_ALIAS_RID_REPLICATOR = 0x0228
364 __int64 LowPart; <
365 __int64 HighPart; <
366 } | 373 }
367 alias _FLOAT128 FLOAT128; <
368 | 374
> 375 enum : WORD {
> 376 SECURITY_MANDATORY_UNTRUSTED_RID = 0,
> 377 SECURITY_MANDATORY_LOW_RID = 0x1000,
369 alias FLOAT128* PFLOAT128; | 378 SECURITY_MANDATORY_MEDIUM_RID = 0x2000,
> 379 SECURITY_MANDATORY_HIGH_RID = 0x3000,
> 380 SECURITY_MANDATORY_SYSTEM_RID = 0x4000,
> 381 SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x5000,
> 382 SECURITY_MANDATORY_MAXIMUM_USER_RID = SECURITY_MANDATORY_SYSTEM_RID
370 | 383 }
371 // #define _ULONGLONG_ <
372 // #if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined <
373 // ... <
374 | 384
375 // #... <
376 // #else | 385 const TCHAR[]
377 <
> 386 SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege",
378 // #if defined(_MAC) && defined(_MAC_INT_64) | 387 SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege",
379 // ... | 388 SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege",
380 <
> 389 SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege",
381 // #... | 390 SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege",
382 // #else | 391 SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege",
383 alias double LONGLONG; | 392 SE_TCB_NAME = "SeTcbPrivilege",
384 alias double ULONGLONG; | 393 SE_SECURITY_NAME = "SeSecurityPrivilege",
385 // #endif //_MAC and int64 | 394 SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege",
386 <
> 395 SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege",
387 // #endif | 396 SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege",
388 <
> 397 SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege",
389 alias LONGLONG* PLONGLONG; | 398 SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege",
390 alias ULONGLONG* PULONGLONG; | 399 SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege",
391 <
> 400 SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege",
392 alias LONGLONG USN; | 401 SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege",
393 <
> 402 SE_BACKUP_NAME = "SeBackupPrivilege",
394 // #if defined(MIDL_PASS) | 403 SE_RESTORE_NAME = "SeRestorePrivilege",
395 // ... | 404 SE_SHUTDOWN_NAME = "SeShutdownPrivilege",
396 // #else // MIDL_PASS | 405 SE_DEBUG_NAME = "SeDebugPrivilege",
397 union _LARGE_INTEGER { | 406 SE_AUDIT_NAME = "SeAuditPrivilege",
398 struct _0 { | 407 SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege",
399 DWORD LowPart; | 408 SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege",
400 LONG HighPart; | 409 SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege",
401 } <
> 410 SE_CREATE_GLOBAL_NAME = "SeCreateGlobalPrivilege",
402 _0 _; | 411 SE_UNDOCK_NAME = "SeUndockPrivilege",
> 412 SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege",
> 413 SE_IMPERSONATE_NAME = "SeImpersonatePrivilege",
> 414 SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege",
> 415 SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege",
> 416 SE_TRUSTED_CREDMAN_ACCESS_NAME = "SeTrustedCredManAccessPrivilege",
> 417 SE_RELABEL_NAME = "SeRelabelPrivilege",
> 418 SE_INCREASE_WORKING_SET_NAME = "SeIncreaseWorkingSetPrivilege",
> 419 SE_TIME_ZONE_NAME = "SeTimeZonePrivilege",
> 420 SE_CREATE_SYMBOLIC_LINK_NAME = "SeCreateSymbolicLinkPrivilege";
403 | 421
404 struct _1 { <
405 DWORD LowPart; | 422 const DWORD
406 LONG HighPart; <
407 } <
408 _1 u; <
409 <
410 // #endif //MIDL_PASS <
411 LONGLONG QuadPart; <
412 } <
413 alias _LARGE_INTEGER LARGE_INTEGER; <
414 <
> 423 SE_GROUP_MANDATORY = 0x00000001,
415 alias LARGE_INTEGER* PLARGE_INTEGER; | 424 SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002,
416 <
> 425 SE_GROUP_ENABLED = 0x00000004,
417 // #if defined(MIDL_PASS) | 426 SE_GROUP_OWNER = 0x00000008,
418 // ... | 427 SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010,
419 // #else // MIDL_PASS | 428 SE_GROUP_INTEGRITY = 0x00000020,
420 union _ULARGE_INTEGER { | 429 SE_GROUP_INTEGRITY_ENABLED = 0x00000040,
421 struct _2 { | 430 SE_GROUP_RESOURCE = 0x20000000,
422 DWORD LowPart; | 431 SE_GROUP_LOGON_ID = 0xC0000000;
423 DWORD HighPart; <
424 } | 432
> 433 // Primary language identifiers
425 _2 _; | 434 enum : USHORT {
426 <
427 struct _3 { <
428 DWORD LowPart; <
429 DWORD HighPart; <
430 } <
431 _3 u; <
432 <
433 // #endif //MIDL_PASS <
434 ULONGLONG QuadPart; <
435 } <
436 alias _ULARGE_INTEGER ULARGE_INTEGER; <
437 <
438 alias ULARGE_INTEGER* PULARGE_INTEGER; <
439 <
440 struct _LUID { <
441 DWORD LowPart; <
442 LONG HighPart; <
443 } <
444 alias _LUID LUID; <
445 alias _LUID* PLUID; <
446 <
447 // #define _DWORDLONG_ <
448 alias ULONGLONG DWORDLONG; <
449 alias DWORDLONG* PDWORDLONG; <
450 <
451 // #if defined(MIDL_PASS) || defined(RC_INVOKED) <
452 <
453 // #... <
454 // #... <
455 <
456 // #... <
457 // #... <
458 // #... <
459 <
460 // #elif defined(_M_MRX000) <
461 <
462 // #... <
463 // #... <
464 <
465 // #... <
466 // #... <
467 // #... <
468 <
469 // #if defined (__cplusplus) <
470 // ... <
471 // #endif <
472 <
473 // ... <
474 <
475 // ... <
476 <
477 // ... <
478 <
479 // ... <
480 <
481 // ... <
482 <
483 // #if defined (__cplusplus) <
484 // ... <
485 // #endif <
486 <
487 // #... <
488 // #... <
489 <
490 // #... <
491 // #... <
492 // #... <
493 <
494 // #elif defined(_M_IX86) <
495 <
496 long Int32x32To64(int a, int b) { return (cast(long)a) * b; } <
497 ulong UInt32x32To64(uint a, uint b) { return (cast(ulong)a) * b; } <
498 <
499 extern(Windows) export ULONGLONG Int64ShllMod32( <
500 ULONGLONG Value, <
501 DWORD ShiftCount); <
502 <
503 extern(Windows) export LONGLONG Int64ShraMod32( <
504 LONGLONG Value, <
505 DWORD ShiftCount); <
506 <
507 extern(Windows) export ULONGLONG Int64ShrlMod32( <
508 ULONGLONG Value, <
509 DWORD ShiftCount); <
510 <
511 // #if _MSC_VER >= 1200 <
512 // #pragma warning(push) <
513 // #endif <
514 // #pragma warning(disable:4035) // re-enable below <
515 <
516 // __inline ULONGLONG Int64ShllMod32( ULONGLONG Value, DWORD ShiftCount <
517 <
518 // __inline LONGLONG Int64ShraMod32( LONGLONG Value, DWORD ShiftCount <
519 <
520 // __inline ULONGLONG Int64ShrlMod32( ULONGLONG Value, DWORD ShiftCount <
521 <
522 // #if _MSC_VER >= 1200 <
523 // #pragma warning(pop) <
524 // #else <
525 // #... <
526 // #endif <
527 <
528 // #elif defined(_M_ALPHA) <
529 <
530 // #... <
531 // #... <
532 <
533 // #... <
534 // #... <
535 // #... <
536 <
537 // #elif defined(_M_PPC) <
538 <
539 // #... <
540 // #... <
541 <
542 // #... <
543 // #... <
544 // #... <
545 <
546 // #elif defined(_68K_) || defined(_MPPC_) <
547 <
548 // #... <
549 // #... <
550 <
551 // #... <
552 // #... <
553 // #... <
554 <
555 // #elif defined(_M_IA64) || defined(_M_AMD64) <
556 <
557 // #... <
558 // #... <
559 <
560 // #... <
561 // #... <
562 // #... <
563 <
564 // #else <
565 <
566 // #... <
567 <
568 // #endif <
569 <
570 enum : CHAR { ANSI_NULL = 0 } <
571 enum : WCHAR { UNICODE_NULL = 0 } <
572 enum : WORD { UNICODE_STRING_MAX_BYTES = 65534 } <
573 enum : uint { UNICODE_STRING_MAX_CHARS = 32767 } <
574 alias BYTE BOOLEAN; <
575 alias BOOLEAN* PBOOLEAN; <
576 <
577 struct _LIST_ENTRY { <
578 _LIST_ENTRY *Flink; <
579 _LIST_ENTRY *Blink; <
580 } <
581 alias _LIST_ENTRY LIST_ENTRY; <
582 alias _LIST_ENTRY* PLIST_ENTRY; <
583 alias _LIST_ENTRY* RESTRICTED_POINTERPRLIST_ENTRY; <
584 <
585 struct _SINGLE_LIST_ENTRY { <
586 _SINGLE_LIST_ENTRY *Next; <
587 } <
588 alias _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY; <
589 alias _SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY; <
590 <
591 struct LIST_ENTRY32 { <
592 DWORD Flink; <
593 DWORD Blink; <
594 } <
595 <
596 alias LIST_ENTRY32* PLIST_ENTRY32; <
597 <
598 struct LIST_ENTRY64 { <
599 ULONGLONG Flink; <
600 ULONGLONG Blink; <
601 } <
602 <
603 alias LIST_ENTRY64* PLIST_ENTRY64; <
604 <
605 import win32.guiddef; <
606 <
607 // #ifndef __OBJECTID_DEFINED <
608 // #define __OBJECTID_DEFINED <
609 <
610 struct _OBJECTID { <
611 GUID Lineage; <
612 DWORD Uniquifier; <
613 } <
614 alias _OBJECTID OBJECTID; <
615 <
616 // #endif // !_OBJECTID_DEFINED <
617 <
618 enum : uint { MINCHAR = 0x80 } <
619 enum : uint { MAXCHAR = 0x7f } <
620 enum : uint { MINSHORT = 0x8000 } <
621 enum : uint { MAXSHORT = 0x7fff } <
622 enum : uint { MINLONG = 0x80000000 } <
623 enum : uint { MAXLONG = 0x7fffffff } <
624 enum : uint { MAXBYTE = 0xff } <
625 enum : uint { MAXWORD = 0xffff } <
626 enum : uint { MAXDWORD = 0xffffffff } <
627 <
628 // #define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field)) <
629 <
630 // #if(_WIN32_WINNT > 0x0500) <
631 <
632 // #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) <
633 <
634 // #define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RT <
635 <
636 // #define RTL_CONTAINS_FIELD(Struct, Size, Field) ( (((PCHAR)(&(Struct)->Field) <
637 <
638 // #define RTL_NUMBER_OF(A) (sizeof(A)/sizeof((A)[0])) <
639 <
640 // #define RTL_FIELD_TYPE(type, field) (((type*)0)->field) <
641 <
642 // #define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, <
643 <
644 // #define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2) ((FIELD_OFFSET(T, F2) > FIELD_O <
645 <
646 // #if defined(__cplusplus) <
647 // #define RTL_CONST_CAST(type) const_cast<type> <
648 // #else <
649 // #... <
650 // #endif <
651 <
652 // #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8) <
653 <
654 // #define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, fiel <
655 <
656 // #endif /* _WIN32_WINNT > 0x0500 */ <
657 <
658 // #define CONTAINING_RECORD(address, type, field) ((type *)( (PCHAR)(address) - <
659 <
660 enum : uint { VER_SERVER_NT = 0x80000000 } <
661 enum : uint { VER_WORKSTATION_NT = 0x40000000 } <
662 enum : uint { VER_SUITE_SMALLBUSINESS = 0x00000001 } <
663 enum : uint { VER_SUITE_ENTERPRISE = 0x00000002 } <
664 enum : uint { VER_SUITE_BACKOFFICE = 0x00000004 } <
665 enum : uint { VER_SUITE_COMMUNICATIONS = 0x00000008 } <
666 enum : uint { VER_SUITE_TERMINAL = 0x00000010 } <
667 enum : uint { VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x00000020 } <
668 enum : uint { VER_SUITE_EMBEDDEDNT = 0x00000040 } <
669 enum : uint { VER_SUITE_DATACENTER = 0x00000080 } <
670 enum : uint { VER_SUITE_SINGLEUSERTS = 0x00000100 } <
671 enum : uint { VER_SUITE_PERSONAL = 0x00000200 } <
672 enum : uint { VER_SUITE_BLADE = 0x00000400 } <
673 <
674 enum : uint { LANG_NEUTRAL = 0x00 } | 435 LANG_NEUTRAL,
675 enum : uint { LANG_INVARIANT = 0x7f } <
676 <
677 enum : uint { LANG_AFRIKAANS = 0x36 } <
678 enum : uint { LANG_ALBANIAN = 0x1c } <
679 enum : uint { LANG_ARABIC = 0x01 } | 436 LANG_ARABIC,
680 enum : uint { LANG_ARMENIAN = 0x2b } <
681 enum : uint { LANG_ASSAMESE = 0x4d } <
682 enum : uint { LANG_AZERI = 0x2c } <
683 enum : uint { LANG_BASQUE = 0x2d } <
684 enum : uint { LANG_BELARUSIAN = 0x23 } <
685 enum : uint { LANG_BENGALI = 0x45 } <
686 enum : uint { LANG_BULGARIAN = 0x02 } | 437 LANG_BULGARIAN,
687 enum : uint { LANG_CATALAN = 0x03 } | 438 LANG_CATALAN,
688 enum : uint { LANG_CHINESE = 0x04 } | 439 LANG_CHINESE,
689 enum : uint { LANG_CROATIAN = 0x1a } <
690 enum : uint { LANG_CZECH = 0x05 } | 440 LANG_CZECH,
691 enum : uint { LANG_DANISH = 0x06 } | 441 LANG_DANISH,
692 enum : uint { LANG_DIVEHI = 0x65 } <
693 enum : uint { LANG_DUTCH = 0x13 } <
> 442 LANG_GERMAN,
> 443 LANG_GREEK,
694 enum : uint { LANG_ENGLISH = 0x09 } | 444 LANG_ENGLISH,
695 enum : uint { LANG_ESTONIAN = 0x25 } <
696 enum : uint { LANG_FAEROESE = 0x38 } <
697 enum : uint { LANG_FARSI = 0x29 } <
> 445 LANG_SPANISH,
698 enum : uint { LANG_FINNISH = 0x0b } | 446 LANG_FINNISH,
699 enum : uint { LANG_FRENCH = 0x0c } | 447 LANG_FRENCH,
700 enum : uint { LANG_GALICIAN = 0x56 } <
701 enum : uint { LANG_GEORGIAN = 0x37 } <
702 enum : uint { LANG_GERMAN = 0x07 } <
703 enum : uint { LANG_GREEK = 0x08 } <
704 enum : uint { LANG_GUJARATI = 0x47 } <
705 enum : uint { LANG_HEBREW = 0x0d } | 448 LANG_HEBREW,
706 enum : uint { LANG_HINDI = 0x39 } <
707 enum : uint { LANG_HUNGARIAN = 0x0e } | 449 LANG_HUNGARIAN,
708 enum : uint { LANG_ICELANDIC = 0x0f } | 450 LANG_ICELANDIC,
709 enum : uint { LANG_INDONESIAN = 0x21 } <
710 enum : uint { LANG_ITALIAN = 0x10 } | 451 LANG_ITALIAN,
711 enum : uint { LANG_JAPANESE = 0x11 } | 452 LANG_JAPANESE,
712 enum : uint { LANG_KANNADA = 0x4b } <
713 enum : uint { LANG_KASHMIRI = 0x60 } <
714 enum : uint { LANG_KAZAK = 0x3f } <
715 enum : uint { LANG_KONKANI = 0x57 } <
716 enum : uint { LANG_KOREAN = 0x12 } | 453 LANG_KOREAN,
717 enum : uint { LANG_KYRGYZ = 0x40 } <
718 enum : uint { LANG_LATVIAN = 0x26 } <
719 enum : uint { LANG_LITHUANIAN = 0x27 } <
720 enum : uint { LANG_MACEDONIAN = 0x2f } <
721 enum : uint { LANG_MALAY = 0x3e } <
722 enum : uint { LANG_MALAYALAM = 0x4c } <
723 enum : uint { LANG_MANIPURI = 0x58 } <
724 enum : uint { LANG_MARATHI = 0x4e } <
725 enum : uint { LANG_MONGOLIAN = 0x50 } <
726 enum : uint { LANG_NEPALI = 0x61 } <
> 454 LANG_DUTCH,
727 enum : uint { LANG_NORWEGIAN = 0x14 } | 455 LANG_NORWEGIAN,
728 enum : uint { LANG_ORIYA = 0x48 } <
729 enum : uint { LANG_POLISH = 0x15 } | 456 LANG_POLISH,
730 enum : uint { LANG_PORTUGUESE = 0x16 } | 457 LANG_PORTUGUESE, // = 0x16
731 enum : uint { LANG_PUNJABI = 0x46 } <
732 enum : uint { LANG_ROMANIAN = 0x18 } | 458 LANG_ROMANIAN = 0x18,
733 enum : uint { LANG_RUSSIAN = 0x19 } | 459 LANG_RUSSIAN,
734 enum : uint { LANG_SANSKRIT = 0x4f } <
> 460 LANG_CROATIAN, // = 0x1A
735 enum : uint { LANG_SERBIAN = 0x1a } | 461 LANG_SERBIAN = 0x1A,
736 enum : uint { LANG_SINDHI = 0x59 } <
> 462 LANG_BOSNIAN = 0x1A,
737 enum : uint { LANG_SLOVAK = 0x1b } | 463 LANG_SLOVAK,
738 enum : uint { LANG_SLOVENIAN = 0x24 } <
739 enum : uint { LANG_SPANISH = 0x0a } <
740 enum : uint { LANG_SWAHILI = 0x41 } <
> 464 LANG_ALBANIAN,
741 enum : uint { LANG_SWEDISH = 0x1d } | 465 LANG_SWEDISH,
742 enum : uint { LANG_SYRIAC = 0x5a } <
743 enum : uint { LANG_TAMIL = 0x49 } <
744 enum : uint { LANG_TATAR = 0x44 } <
745 enum : uint { LANG_TELUGU = 0x4a } <
746 enum : uint { LANG_THAI = 0x1e } | 466 LANG_THAI,
747 enum : uint { LANG_TURKISH = 0x1f } | 467 LANG_TURKISH,
> 468 LANG_URDU,
> 469 LANG_INDONESIAN,
748 enum : uint { LANG_UKRAINIAN = 0x22 } | 470 LANG_UKRAINIAN,
749 enum : uint { LANG_URDU = 0x20 } <
750 enum : uint { LANG_UZBEK = 0x43 } <
> 471 LANG_BELARUSIAN,
> 472 LANG_SLOVENIAN,
> 473 LANG_ESTONIAN,
> 474 LANG_LATVIAN,
> 475 LANG_LITHUANIAN, // = 0x27
> 476 LANG_FARSI = 0x29,
> 477 LANG_PERSIAN = 0x29,
751 enum : uint { LANG_VIETNAMESE = 0x2a } | 478 LANG_VIETNAMESE,
> 479 LANG_ARMENIAN,
> 480 LANG_AZERI,
> 481 LANG_BASQUE,
> 482 LANG_LOWER_SORBIAN, // = 0x2E
> 483 LANG_UPPER_SORBIAN = 0x2E,
> 484 LANG_MACEDONIAN, // = 0x2F
> 485 LANG_TSWANA = 0x32,
> 486 LANG_XHOSA = 0x34,
> 487 LANG_ZULU,
> 488 LANG_AFRIKAANS,
> 489 LANG_GEORGIAN,
> 490 LANG_FAEROESE,
> 491 LANG_HINDI,
> 492 LANG_MALTESE,
> 493 LANG_SAMI,
> 494 LANG_IRISH, // = 0x3C
> 495 LANG_MALAY = 0x3E,
> 496 LANG_KAZAK,
> 497 LANG_KYRGYZ,
> 498 LANG_SWAHILI, // = 0x41
> 499 LANG_UZBEK = 0x43,
> 500 LANG_TATAR,
> 501 LANG_BENGALI,
> 502 LANG_PUNJABI,
> 503 LANG_GUJARATI,
> 504 LANG_ORIYA,
> 505 LANG_TAMIL,
> 506 LANG_TELUGU,
> 507 LANG_KANNADA,
> 508 LANG_MALAYALAM,
> 509 LANG_ASSAMESE,
> 510 LANG_MARATHI,
> 511 LANG_SANSKRIT,
> 512 LANG_MONGOLIAN,
> 513 LANG_TIBETAN,
> 514 LANG_WELSH,
> 515 LANG_KHMER,
> 516 LANG_LAO, // = 0x54
> 517 LANG_GALICIAN = 0x56,
> 518 LANG_KONKANI,
> 519 LANG_MANIPURI,
> 520 LANG_SINDHI,
> 521 LANG_SYRIAC,
> 522 LANG_SINHALESE, // = 0x5B
> 523 LANG_INUKTITUT = 0x5D,
> 524 LANG_AMHARIC,
> 525 LANG_TAMAZIGHT,
> 526 LANG_KASHMIRI,
> 527 LANG_NEPALI,
> 528 LANG_FRISIAN,
> 529 LANG_PASHTO,
> 530 LANG_FILIPINO,
> 531 LANG_DIVEHI, // = 0x65
> 532 LANG_HAUSA = 0x68,
> 533 LANG_YORUBA = 0x6A,
> 534 LANG_QUECHUA,
> 535 LANG_SOTHO,
> 536 LANG_BASHKIR,
> 537 LANG_LUXEMBOURGISH,
> 538 LANG_GREENLANDIC,
> 539 LANG_IGBO, // = 0x70
> 540 LANG_TIGRIGNA = 0x73,
> 541 LANG_YI = 0x78,
> 542 LANG_MAPUDUNGUN = 0x7A,
> 543 LANG_MOHAWK = 0x7C,
> 544 LANG_BRETON = 0x7E,
> 545 LANG_UIGHUR = 0x80,
> 546 LANG_MAORI,
> 547 LANG_OCCITAN,
> 548 LANG_CORSICAN,
> 549 LANG_ALSATIAN,
> 550 LANG_YAKUT,
> 551 LANG_KICHE,
> 552 LANG_KINYARWANDA,
> 553 LANG_WOLOF, // = 0x88
> 554 LANG_DARI = 0x8C,
> 555 LANG_MALAGASY, // = 0x8D
752 | 556
> 557 LANG_SERBIAN_NEUTRAL = 0x7C1A,
> 558 LANG_BOSNIAN_NEUTRAL = 0x781A,
> 559
> 560 LANG_INVARIANT = 0x7F
> 561 }
> 562
> 563
> 564 // Sublanguage identifiers
> 565 enum : USHORT {
753 enum : uint { SUBLANG_NEUTRAL = 0x00 } | 566 SUBLANG_NEUTRAL,
754 enum : uint { SUBLANG_DEFAULT = 0x01 } | 567 SUBLANG_DEFAULT,
755 enum : uint { SUBLANG_SYS_DEFAULT = 0x02 } | 568 SUBLANG_SYS_DEFAULT,
> 569 SUBLANG_CUSTOM_DEFAULT, // = 3
> 570 SUBLANG_UI_CUSTOM_DEFAULT = 3,
> 571 SUBLANG_CUSTOM_UNSPECIFIED, // = 4
756 | 572
> 573 SUBLANG_AFRIKAANS_SOUTH_AFRICA = 1,
> 574 SUBLANG_ALBANIAN_ALBANIA = 1,
> 575 SUBLANG_ALSATIAN_FRANCE = 1,
> 576 SUBLANG_AMHARIC_ETHIOPIA = 1,
> 577
757 enum : uint { SUBLANG_ARABIC_SAUDI_ARABIA = 0x01 } | 578 SUBLANG_ARABIC_SAUDI_ARABIA = 1,
758 enum : uint { SUBLANG_ARABIC_IRAQ = 0x02 } | 579 SUBLANG_ARABIC_IRAQ,
759 enum : uint { SUBLANG_ARABIC_EGYPT = 0x03 } | 580 SUBLANG_ARABIC_EGYPT,
760 enum : uint { SUBLANG_ARABIC_LIBYA = 0x04 } | 581 SUBLANG_ARABIC_LIBYA,
761 enum : uint { SUBLANG_ARABIC_ALGERIA = 0x05 } | 582 SUBLANG_ARABIC_ALGERIA,
762 enum : uint { SUBLANG_ARABIC_MOROCCO = 0x06 } | 583 SUBLANG_ARABIC_MOROCCO,
763 enum : uint { SUBLANG_ARABIC_TUNISIA = 0x07 } | 584 SUBLANG_ARABIC_TUNISIA,
764 enum : uint { SUBLANG_ARABIC_OMAN = 0x08 } | 585 SUBLANG_ARABIC_OMAN,
765 enum : uint { SUBLANG_ARABIC_YEMEN = 0x09 } | 586 SUBLANG_ARABIC_YEMEN,
766 enum : uint { SUBLANG_ARABIC_SYRIA = 0x0a } | 587 SUBLANG_ARABIC_SYRIA,
767 enum : uint { SUBLANG_ARABIC_JORDAN = 0x0b } | 588 SUBLANG_ARABIC_JORDAN,
768 enum : uint { SUBLANG_ARABIC_LEBANON = 0x0c } | 589 SUBLANG_ARABIC_LEBANON,
769 enum : uint { SUBLANG_ARABIC_KUWAIT = 0x0d } | 590 SUBLANG_ARABIC_KUWAIT,
770 enum : uint { SUBLANG_ARABIC_UAE = 0x0e } | 591 SUBLANG_ARABIC_UAE,
771 enum : uint { SUBLANG_ARABIC_BAHRAIN = 0x0f } | 592 SUBLANG_ARABIC_BAHRAIN,
772 enum : uint { SUBLANG_ARABIC_QATAR = 0x10 } | 593 SUBLANG_ARABIC_QATAR, // = 16
> 594
> 595 SUBLANG_ARMENIAN_ARMENIA = 1,
> 596 SUBLANG_ASSAMESE_INDIA = 1,
> 597
773 enum : uint { SUBLANG_AZERI_LATIN = 0x01 } | 598 SUBLANG_AZERI_LATIN = 1,
774 enum : uint { SUBLANG_AZERI_CYRILLIC = 0x02 } | 599 SUBLANG_AZERI_CYRILLIC, // = 2
> 600
> 601 SUBLANG_BASHKIR_RUSSIA = 1,
> 602 SUBLANG_BASQUE_BASQUE = 1,
> 603 SUBLANG_BELARUSIAN_BELARUS = 1,
> 604 SUBLANG_BENGALI_INDIA = 1,
> 605
> 606 SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN = 5,
> 607 SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 8,
> 608
> 609 SUBLANG_BRETON_FRANCE = 1,
> 610 SUBLANG_BULGARIAN_BULGARIA = 1,
> 611 SUBLANG_CATALAN_CATALAN = 1,
> 612
775 enum : uint { SUBLANG_CHINESE_TRADITIONAL = 0x01 } | 613 SUBLANG_CHINESE_TRADITIONAL = 1,
776 enum : uint { SUBLANG_CHINESE_SIMPLIFIED = 0x02 } | 614 SUBLANG_CHINESE_SIMPLIFIED,
777 enum : uint { SUBLANG_CHINESE_HONGKONG = 0x03 } | 615 SUBLANG_CHINESE_HONGKONG,
778 enum : uint { SUBLANG_CHINESE_SINGAPORE = 0x04 } | 616 SUBLANG_CHINESE_SINGAPORE,
779 enum : uint { SUBLANG_CHINESE_MACAU = 0x05 } | 617 SUBLANG_CHINESE_MACAU, // = 5
780 enum : uint { SUBLANG_DUTCH = 0x01 } <
> 618
> 619 SUBLANG_CORSICAN_FRANCE = 1,
> 620
> 621 SUBLANG_CROATIAN_CROATIA = 1,
> 622 SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN = 4,
> 623
> 624 SUBLANG_CZECH_CZECH_REPUBLIC = 1,
> 625 SUBLANG_DANISH_DENMARK = 1,
> 626 SUBLANG_DIVEHI_MALDIVES = 1,
> 627
> 628 SUBLANG_DUTCH = 1,
781 enum : uint { SUBLANG_DUTCH_BELGIAN = 0x02 } | 629 SUBLANG_DUTCH_BELGIAN, // = 2
> 630
782 enum : uint { SUBLANG_ENGLISH_US = 0x01 } | 631 SUBLANG_ENGLISH_US = 1,
783 enum : uint { SUBLANG_ENGLISH_UK = 0x02 } | 632 SUBLANG_ENGLISH_UK,
784 enum : uint { SUBLANG_ENGLISH_AUS = 0x03 } | 633 SUBLANG_ENGLISH_AUS,
785 enum : uint { SUBLANG_ENGLISH_CAN = 0x04 } | 634 SUBLANG_ENGLISH_CAN,
786 enum : uint { SUBLANG_ENGLISH_NZ = 0x05 } | 635 SUBLANG_ENGLISH_NZ,
787 enum : uint { SUBLANG_ENGLISH_EIRE = 0x06 } | 636 SUBLANG_ENGLISH_EIRE, // = 6
> 637 SUBLANG_ENGLISH_IRELAND = 6,
788 enum : uint { SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07 } | 638 SUBLANG_ENGLISH_SOUTH_AFRICA,
789 enum : uint { SUBLANG_ENGLISH_JAMAICA = 0x08 } | 639 SUBLANG_ENGLISH_JAMAICA,
790 enum : uint { SUBLANG_ENGLISH_CARIBBEAN = 0x09 } | 640 SUBLANG_ENGLISH_CARIBBEAN,
791 enum : uint { SUBLANG_ENGLISH_BELIZE = 0x0a } | 641 SUBLANG_ENGLISH_BELIZE,
792 enum : uint { SUBLANG_ENGLISH_TRINIDAD = 0x0b } | 642 SUBLANG_ENGLISH_TRINIDAD,
793 enum : uint { SUBLANG_ENGLISH_ZIMBABWE = 0x0c } | 643 SUBLANG_ENGLISH_ZIMBABWE,
794 enum : uint { SUBLANG_ENGLISH_PHILIPPINES = 0x0d } | 644 SUBLANG_ENGLISH_PHILIPPINES, // = 13
> 645 SUBLANG_ENGLISH_INDIA = 16,
> 646 SUBLANG_ENGLISH_MALAYSIA,
> 647 SUBLANG_ENGLISH_SINGAPORE, // = 18
> 648
> 649 SUBLANG_ESTONIAN_ESTONIA = 1,
> 650 SUBLANG_FAEROESE_FAROE_ISLANDS = 1,
> 651 SUBLANG_FILIPINO_PHILIPPINES = 1,
> 652 SUBLANG_FINNISH_FINLAND = 1,
> 653
795 enum : uint { SUBLANG_FRENCH = 0x01 } | 654 SUBLANG_FRENCH = 1,
796 enum : uint { SUBLANG_FRENCH_BELGIAN = 0x02 } | 655 SUBLANG_FRENCH_BELGIAN,
797 enum : uint { SUBLANG_FRENCH_CANADIAN = 0x03 } | 656 SUBLANG_FRENCH_CANADIAN,
798 enum : uint { SUBLANG_FRENCH_SWISS = 0x04 } | 657 SUBLANG_FRENCH_SWISS,
799 enum : uint { SUBLANG_FRENCH_LUXEMBOURG = 0x05 } | 658 SUBLANG_FRENCH_LUXEMBOURG,
800 enum : uint { SUBLANG_FRENCH_MONACO = 0x06 } | 659 SUBLANG_FRENCH_MONACO, // = 6
> 660
> 661 SUBLANG_FRISIAN_NETHERLANDS = 1,
> 662 SUBLANG_GALICIAN_GALICIAN = 1,
> 663 SUBLANG_GEORGIAN_GEORGIA = 1,
> 664
801 enum : uint { SUBLANG_GERMAN = 0x01 } | 665 SUBLANG_GERMAN = 1,
802 enum : uint { SUBLANG_GERMAN_SWISS = 0x02 } | 666 SUBLANG_GERMAN_SWISS,
803 enum : uint { SUBLANG_GERMAN_AUSTRIAN = 0x03 } | 667 SUBLANG_GERMAN_AUSTRIAN,
804 enum : uint { SUBLANG_GERMAN_LUXEMBOURG = 0x04 } | 668 SUBLANG_GERMAN_LUXEMBOURG,
805 enum : uint { SUBLANG_GERMAN_LIECHTENSTEIN = 0x05 } | 669 SUBLANG_GERMAN_LIECHTENSTEIN, // = 5
> 670
> 671 SUBLANG_GREEK_GREECE = 1,
> 672 SUBLANG_GREENLANDIC_GREENLAND = 1,
> 673 SUBLANG_GUJARATI_INDIA = 1,
> 674 SUBLANG_HAUSA_NIGERIA = 1,
> 675 SUBLANG_HEBREW_ISRAEL = 1,
> 676 SUBLANG_HINDI_INDIA = 1,
> 677 SUBLANG_HUNGARIAN_HUNGARY = 1,
> 678 SUBLANG_ICELANDIC_ICELAND = 1,
> 679 SUBLANG_IGBO_NIGERIA = 1,
> 680 SUBLANG_INDONESIAN_INDONESIA = 1,
> 681
> 682 SUBLANG_INUKTITUT_CANADA = 1,
> 683 SUBLANG_INUKTITUT_CANADA_LATIN = 1,
> 684
> 685 SUBLANG_IRISH_IRELAND = 1,
> 686
806 enum : uint { SUBLANG_ITALIAN = 0x01 } | 687 SUBLANG_ITALIAN = 1,
807 enum : uint { SUBLANG_ITALIAN_SWISS = 0x02 } | 688 SUBLANG_ITALIAN_SWISS, // = 2
808 // #if _WIN32_WINNT >= 0x0501 <
> 689
> 690 SUBLANG_JAPANESE_JAPAN = 1,
> 691
809 enum : uint { SUBLANG_KASHMIRI_SASIA = 0x02 } | 692 SUBLANG_KASHMIRI_INDIA = 2,
810 // #endif <
811 enum : uint { SUBLANG_KASHMIRI_INDIA = 0x02 } | 693 SUBLANG_KASHMIRI_SASIA = 2,
> 694
> 695 SUBLANG_KAZAK_KAZAKHSTAN = 1,
> 696 SUBLANG_KHMER_CAMBODIA = 1,
> 697 SUBLANG_KICHE_GUATEMALA = 1,
> 698 SUBLANG_KINYARWANDA_RWANDA = 1,
> 699 SUBLANG_KONKANI_INDIA = 1,
812 enum : uint { SUBLANG_KOREAN = 0x01 } | 700 SUBLANG_KOREAN = 1,
> 701 SUBLANG_KYRGYZ_KYRGYZSTAN = 1,
> 702 SUBLANG_LAO_LAO_PDR = 1,
> 703 SUBLANG_LATVIAN_LATVIA = 1,
> 704
813 enum : uint { SUBLANG_LITHUANIAN = 0x01 } | 705 SUBLANG_LITHUANIAN = 1,
> 706 SUBLANG_LITHUANIAN_LITHUANIA = 1,
> 707
> 708 SUBLANG_LOWER_SORBIAN_GERMANY = 1,
> 709 SUBLANG_LUXEMBOURGISH_LUXEMBOURG = 1,
> 710 SUBLANG_MACEDONIAN_MACEDONIA = 1,
> 711 SUBLANG_MALAYALAM_INDIA = 1,
> 712 SUBLANG_MALTESE_MALTA = 1,
> 713 SUBLANG_MAORI_NEW_ZEALAND = 1,
> 714 SUBLANG_MAPUDUNGUN_CHILE = 1,
> 715 SUBLANG_MARATHI_INDIA = 1,
> 716 SUBLANG_MOHAWK_MOHAWK = 1,
> 717
> 718 SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA = 1,
> 719 SUBLANG_MONGOLIAN_PRC, // = 2
> 720
814 enum : uint { SUBLANG_MALAY_MALAYSIA = 0x01 } | 721 SUBLANG_MALAY_MALAYSIA = 1,
815 enum : uint { SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02 } | 722 SUBLANG_MALAY_BRUNEI_DARUSSALAM, // = 2
> 723
> 724 SUBLANG_NEPALI_NEPAL = 1,
816 enum : uint { SUBLANG_NEPALI_INDIA = 0x02 } | 725 SUBLANG_NEPALI_INDIA, // = 2
> 726
817 enum : uint { SUBLANG_NORWEGIAN_BOKMAL = 0x01 } | 727 SUBLANG_NORWEGIAN_BOKMAL = 1,
818 enum : uint { SUBLANG_NORWEGIAN_NYNORSK = 0x02 } | 728 SUBLANG_NORWEGIAN_NYNORSK, // = 2
> 729
> 730 SUBLANG_OCCITAN_FRANCE = 1,
> 731 SUBLANG_ORIYA_INDIA = 1,
> 732 SUBLANG_PASHTO_AFGHANISTAN = 1,
> 733 SUBLANG_PERSIAN_IRAN = 1,
> 734 SUBLANG_POLISH_POLAND = 1,
> 735
> 736 SUBLANG_PORTUGUESE_BRAZILIAN = 1,
819 enum : uint { SUBLANG_PORTUGUESE = 0x02 } | 737 SUBLANG_PORTUGUESE = 2,
820 enum : uint { SUBLANG_PORTUGUESE_BRAZILIAN = 0x01 } | 738 SUBLANG_PORTUGUESE_PORTUGAL, // = 2
> 739
> 740 SUBLANG_PUNJABI_INDIA = 1,
> 741
> 742 SUBLANG_QUECHUA_BOLIVIA = 1,
> 743 SUBLANG_QUECHUA_ECUADOR,
> 744 SUBLANG_QUECHUA_PERU, // = 3
> 745
> 746 SUBLANG_ROMANIAN_ROMANIA = 1,
> 747 SUBLANG_ROMANSH_SWITZERLAND = 1,
> 748 SUBLANG_RUSSIAN_RUSSIA = 1,
> 749
> 750 SUBLANG_SAMI_NORTHERN_NORWAY = 1,
> 751 SUBLANG_SAMI_NORTHERN_SWEDEN,
> 752 SUBLANG_SAMI_NORTHERN_FINLAND, // = 3
> 753 SUBLANG_SAMI_SKOLT_FINLAND = 3,
> 754 SUBLANG_SAMI_INARI_FINLAND = 3,
> 755 SUBLANG_SAMI_LULE_NORWAY,
> 756 SUBLANG_SAMI_LULE_SWEDEN,
> 757 SUBLANG_SAMI_SOUTHERN_NORWAY,
> 758 SUBLANG_SAMI_SOUTHERN_SWEDEN, // = 7
> 759
> 760 SUBLANG_SANSKRIT_INDIA = 1,
> 761
821 enum : uint { SUBLANG_SERBIAN_LATIN = 0x02 } | 762 SUBLANG_SERBIAN_LATIN = 2,
822 enum : uint { SUBLANG_SERBIAN_CYRILLIC = 0x03 } | 763 SUBLANG_SERBIAN_CYRILLIC, // = 3
> 764 SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN = 6,
> 765 SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 7,
> 766
> 767 SUBLANG_SINDHI_AFGHANISTAN = 2,
> 768 SUBLANG_SINHALESE_SRI_LANKA = 1,
> 769 SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA = 1,
> 770 SUBLANG_SLOVAK_SLOVAKIA = 1,
> 771 SUBLANG_SLOVENIAN_SLOVENIA = 1,
> 772
823 enum : uint { SUBLANG_SPANISH = 0x01 } | 773 SUBLANG_SPANISH = 1,
824 enum : uint { SUBLANG_SPANISH_MEXICAN = 0x02 } | 774 SUBLANG_SPANISH_MEXICAN,
825 enum : uint { SUBLANG_SPANISH_MODERN = 0x03 } | 775 SUBLANG_SPANISH_MODERN,
826 enum : uint { SUBLANG_SPANISH_GUATEMALA = 0x04 } | 776 SUBLANG_SPANISH_GUATEMALA,
827 enum : uint { SUBLANG_SPANISH_COSTA_RICA = 0x05 } | 777 SUBLANG_SPANISH_COSTA_RICA,
828 enum : uint { SUBLANG_SPANISH_PANAMA = 0x06 } | 778 SUBLANG_SPANISH_PANAMA,
829 enum : uint { SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 0x07 } | 779 SUBLANG_SPANISH_DOMINICAN_REPUBLIC,
830 enum : uint { SUBLANG_SPANISH_VENEZUELA = 0x08 } | 780 SUBLANG_SPANISH_VENEZUELA,
831 enum : uint { SUBLANG_SPANISH_COLOMBIA = 0x09 } | 781 SUBLANG_SPANISH_COLOMBIA,
832 enum : uint { SUBLANG_SPANISH_PERU = 0x0a } | 782 SUBLANG_SPANISH_PERU,
833 enum : uint { SUBLANG_SPANISH_ARGENTINA = 0x0b } | 783 SUBLANG_SPANISH_ARGENTINA,
834 enum : uint { SUBLANG_SPANISH_ECUADOR = 0x0c } | 784 SUBLANG_SPANISH_ECUADOR,
835 enum : uint { SUBLANG_SPANISH_CHILE = 0x0d } | 785 SUBLANG_SPANISH_CHILE,
836 enum : uint { SUBLANG_SPANISH_URUGUAY = 0x0e } | 786 SUBLANG_SPANISH_URUGUAY,
837 enum : uint { SUBLANG_SPANISH_PARAGUAY = 0x0f } | 787 SUBLANG_SPANISH_PARAGUAY,
838 enum : uint { SUBLANG_SPANISH_BOLIVIA = 0x10 } | 788 SUBLANG_SPANISH_BOLIVIA,
839 enum : uint { SUBLANG_SPANISH_EL_SALVADOR = 0x11 } | 789 SUBLANG_SPANISH_EL_SALVADOR,
840 enum : uint { SUBLANG_SPANISH_HONDURAS = 0x12 } | 790 SUBLANG_SPANISH_HONDURAS,
841 enum : uint { SUBLANG_SPANISH_NICARAGUA = 0x13 } | 791 SUBLANG_SPANISH_NICARAGUA,
842 enum : uint { SUBLANG_SPANISH_PUERTO_RICO = 0x14 } | 792 SUBLANG_SPANISH_PUERTO_RICO,
> 793 SUBLANG_SPANISH_US, // = 21
> 794
843 enum : uint { SUBLANG_SWEDISH = 0x01 } | 795 SUBLANG_SWEDISH = 1,
> 796 SUBLANG_SWEDISH_SWEDEN = 1,
844 enum : uint { SUBLANG_SWEDISH_FINLAND = 0x02 } | 797 SUBLANG_SWEDISH_FINLAND, // = 2
> 798
> 799 SUBLANG_SYRIAC = 1,
> 800 SUBLANG_TAJIK_TAJIKISTAN = 1,
> 801 SUBLANG_TAMAZIGHT_ALGERIA_LATIN = 2,
> 802 SUBLANG_TAMIL_INDIA = 1,
> 803 SUBLANG_TATAR_RUSSIA = 1,
> 804 SUBLANG_TELUGU_INDIA = 1,
> 805 SUBLANG_THAI_THAILAND = 1,
> 806 SUBLANG_TIBETAN_PRC = 1,
> 807 SUBLANG_TIBETAN_BHUTAN = 2,
> 808 SUBLANG_TIGRIGNA_ERITREA = 1,
> 809 SUBLANG_TSWANA_SOUTH_AFRICA = 1,
> 810 SUBLANG_TURKISH_TURKEY = 1,
> 811 SUBLANG_TURKMEN_TURKMENISTAN = 1,
> 812 SUBLANG_UIGHUR_PRC = 1,
> 813 SUBLANG_UKRAINIAN_UKRAINE = 1,
> 814 SUBLANG_UPPER_SORBIAN_GERMANY = 1,
> 815
845 enum : uint { SUBLANG_URDU_PAKISTAN = 0x01 } | 816 SUBLANG_URDU_PAKISTAN = 1,
846 enum : uint { SUBLANG_URDU_INDIA = 0x02 } | 817 SUBLANG_URDU_INDIA, // = 2
> 818
847 enum : uint { SUBLANG_UZBEK_LATIN = 0x01 } | 819 SUBLANG_UZBEK_LATIN = 1,
848 enum : uint { SUBLANG_UZBEK_CYRILLIC = 0x02 } | 820 SUBLANG_UZBEK_CYRILLIC, // = 2
849 | 821
850 enum : uint { SORT_DEFAULT = 0x0 } <
> 822 SUBLANG_VIETNAMESE_VIETNAM = 1,
> 823 SUBLANG_WELSH_UNITED_KINGDOM = 1,
> 824 SUBLANG_WOLOF_SENEGAL = 1,
> 825 SUBLANG_YORUBA_NIGERIA = 1,
> 826 SUBLANG_XHOSA_SOUTH_AFRICA = 1,
> 827 SUBLANG_YAKUT_RUSSIA = 1,
> 828 SUBLANG_YI_PRC = 1,
> 829 SUBLANG_ZULU_SOUTH_AFRICA = 1
851 | 830 }
> 831
> 832 // This is not documented on MSDN
> 833 const NLS_VALID_LOCALE_MASK = 1048575;
> 834
> 835 // Sorting identifiers
> 836 enum : WORD {
> 837 SORT_DEFAULT = 0,
852 enum : uint { SORT_JAPANESE_XJIS = 0x0 } | 838 SORT_JAPANESE_XJIS = 0,
853 enum : uint { SORT_JAPANESE_UNICODE = 0x1 } | 839 SORT_JAPANESE_UNICODE = 1,
854 <
855 enum : uint { SORT_CHINESE_BIG5 = 0x0 } | 840 SORT_CHINESE_BIG5 = 0,
856 enum : uint { SORT_CHINESE_PRCP = 0x0 } | 841 SORT_CHINESE_PRCP = 0,
857 enum : uint { SORT_CHINESE_UNICODE = 0x1 } | 842 SORT_CHINESE_UNICODE = 1,
858 enum : uint { SORT_CHINESE_PRC = 0x2 } | 843 SORT_CHINESE_PRC = 2,
859 enum : uint { SORT_CHINESE_BOPOMOFO = 0x3 } | 844 SORT_CHINESE_BOPOMOFO = 3,
860 <
861 enum : uint { SORT_KOREAN_KSC = 0x0 } | 845 SORT_KOREAN_KSC = 0,
862 enum : uint { SORT_KOREAN_UNICODE = 0x1 } | 846 SORT_KOREAN_UNICODE = 1,
863 <
864 enum : uint { SORT_GERMAN_PHONE_BOOK = 0x1 } | 847 SORT_GERMAN_PHONE_BOOK = 1,
865 <
866 enum : uint { SORT_HUNGARIAN_DEFAULT = 0x0 } | 848 SORT_HUNGARIAN_DEFAULT = 0,
867 enum : uint { SORT_HUNGARIAN_TECHNICAL = 0x1 } | 849 SORT_HUNGARIAN_TECHNICAL = 1,
868 <
869 enum : uint { SORT_GEORGIAN_TRADITIONAL = 0x0 } | 850 SORT_GEORGIAN_TRADITIONAL = 0,
870 enum : uint { SORT_GEORGIAN_MODERN = 0x1 } | 851 SORT_GEORGIAN_MODERN = 1
871 | 852 }
> 853
872 WORD MAKELANGID(USHORT p, USHORT s) { return (((cast(WORD)(s)) << 10) | cast(WOR | 854 WORD MAKELANGID(USHORT p, USHORT s) { return cast(WORD)((s << 10) | p); }
873 WORD PRIMARYLANGID(WORD lgid) { return lgid & 0x3ff; } | 855 WORD PRIMARYLANGID(WORD lgid) { return cast(WORD)(lgid & 0x3FF); }
874 WORD SUBLANGID(WORD lgid) { return lgid >>> 10; } | 856 WORD SUBLANGID(WORD lgid) { return cast(WORD)(lgid >>> 10); }
875 | 857
876 enum : uint { NLS_VALID_LOCALE_MASK = 0x000fffff } <
877 <
878 DWORD MAKELCID(WORD lgid, WORD srtid) { return ((cast(DWORD)srtid) << 16) | (cas | 858 DWORD MAKELCID(WORD lgid, WORD srtid) { return (cast(DWORD) srtid << 16) | cast(
> 859 // ???
879 DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srt | 860 //DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, s
880 WORD LANGIDFROMLCID(LCID lcid) { return lcid; } | 861 WORD LANGIDFROMLCID(LCID lcid) { return cast(WORD) lcid; }
881 WORD SORTIDFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 16) & 0xf; } | 862 WORD SORTIDFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 16) & 0x0F); }
882 WORD SORTVERSIONFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 20) & 0xf; } | 863 WORD SORTVERSIONFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 20) & 0x0F);
883 | 864
884 enum : uint { LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL } | 865 const WORD LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL;
885 enum : uint { LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL } | 866 const WORD LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL;
886 <
887 enum : uint { LOCALE_SYSTEM_DEFAULT = (SORT_DEFAULT << 16) | LANG_SYSTEM_DEFAULT <
888 enum : uint { LOCALE_USER_DEFAULT = (SORT_DEFAULT << 16) | LANG_USER_DEFAULT } | 867 const DWORD LOCALE_NEUTRAL = (SORT_DEFAULT << 16)
> 868 | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL;
889 | 869
890 enum : uint { LOCALE_NEUTRAL = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | <
> 870 // ---
> 871 enum : BYTE {
> 872 ACL_REVISION = 2,
> 873 ACL_REVISION_DS = 4
891 | 874 }
892 enum : uint { LOCALE_INVARIANT = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) <
893 | 875
894 // #if ! defined(lint) <
895 // #... <
896 // #... <
897 // #... <
> 876 // These are not documented on MSDN
> 877 enum : BYTE {
> 878 ACL_REVISION1 = 1,
> 879 ACL_REVISION2,
> 880 ACL_REVISION3,
> 881 ACL_REVISION4 // = 4
898 | 882 }
899 // #else // lint <
900 | 883
901 // #define UNREFERENCED_PARAMETER(P) { (P) = (P); } <
902 // #define DBG_UNREFERENCED_PARAMETER(P) { (P) = (P); } <
903 // #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) { (V) = (V); } <
> 884 const BYTE
> 885 MIN_ACL_REVISION = 2,
> 886 MAX_ACL_REVISION = 4;
904 | 887
905 // #endif // lint <
> 888 /+
> 889 // These aren't necessary for D.
> 890 const MINCHAR=0x80;
> 891 const MAXCHAR=0x7f;
> 892 const MINSHORT=0x8000;
> 893 const MAXSHORT=0x7fff;
> 894 const MINLONG=0x80000000;
> 895 const MAXLONG=0x7fffffff;
> 896 const MAXBYTE=0xff;
> 897 const MAXWORD=0xffff;
> 898 const MAXDWORD=0xffffffff;
> 899 +/
906 | 900
907 // #if (_MSC_VER > 1200) <
908 // #define DEFAULT_UNREACHABLE default: __assume(0) <
909 // #else <
> 901 // SYSTEM_INFO.dwProcessorType
> 902 enum : DWORD {
> 903 PROCESSOR_INTEL_386 = 386,
> 904 PROCESSOR_INTEL_486 = 486,
> 905 PROCESSOR_INTEL_PENTIUM = 586,
> 906 PROCESSOR_MIPS_R4000 = 4000,
> 907 PROCESSOR_ALPHA_21064 = 21064,
> 908 PROCESSOR_INTEL_IA64 = 2200
910 | 909 }
911 // #... <
912 | 910
913 // #endif <
> 911 // SYSTEM_INFO.wProcessorArchitecture
> 912 enum : WORD {
> 913 PROCESSOR_ARCHITECTURE_INTEL,
> 914 PROCESSOR_ARCHITECTURE_MIPS,
> 915 PROCESSOR_ARCHITECTURE_ALPHA,
> 916 PROCESSOR_ARCHITECTURE_PPC,
> 917 PROCESSOR_ARCHITECTURE_SHX,
> 918 PROCESSOR_ARCHITECTURE_ARM,
> 919 PROCESSOR_ARCHITECTURE_IA64,
> 920 PROCESSOR_ARCHITECTURE_ALPHA64,
> 921 PROCESSOR_ARCHITECTURE_MSIL,
> 922 PROCESSOR_ARCHITECTURE_AMD64,
> 923 PROCESSOR_ARCHITECTURE_IA32_ON_WIN64, // = 10
> 924 PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF
914 | 925 }
915 // #ifndef WIN32_NO_STATUS <
916 | 926
917 enum : DWORD { STATUS_WAIT_0 = 0x00000000 } <
918 enum : DWORD { STATUS_ABANDONED_WAIT_0 = 0x00000080 } | 927 // IsProcessorFeaturePresent()
919 enum : DWORD { STATUS_USER_APC = 0x000000C0 } | 928 enum : DWORD {
920 enum : DWORD { STATUS_TIMEOUT = 0x00000102 } | 929 PF_FLOATING_POINT_PRECISION_ERRATA,
921 enum : DWORD { STATUS_PENDING = 0x00000103 } | 930 PF_FLOATING_POINT_EMULATED,
922 enum : DWORD { DBG_EXCEPTION_HANDLED = 0x00010001 } | 931 PF_COMPARE_EXCHANGE_DOUBLE,
923 enum : DWORD { DBG_CONTINUE = 0x00010002 } | 932 PF_MMX_INSTRUCTIONS_AVAILABLE,
924 enum : DWORD { STATUS_SEGMENT_NOTIFICATION = 0x40000005 } | 933 PF_PPC_MOVEMEM_64BIT_OK,
925 enum : DWORD { DBG_TERMINATE_THREAD = 0x40010003 } | 934 PF_ALPHA_BYTE_INSTRUCTIONS,
926 enum : DWORD { DBG_TERMINATE_PROCESS = 0x40010004 } | 935 PF_XMMI_INSTRUCTIONS_AVAILABLE,
927 enum : DWORD { DBG_CONTROL_C = 0x40010005 } | 936 PF_3DNOW_INSTRUCTIONS_AVAILABLE,
928 enum : DWORD { DBG_CONTROL_BREAK = 0x40010008 } | 937 PF_RDTSC_INSTRUCTION_AVAILABLE,
929 enum : DWORD { STATUS_GUARD_PAGE_VIOLATION = 0x80000001 } | 938 PF_PAE_ENABLED,
930 enum : DWORD { STATUS_DATATYPE_MISALIGNMENT = 0x80000002 } | 939 PF_XMMI64_INSTRUCTIONS_AVAILABLE
931 enum : DWORD { STATUS_BREAKPOINT = 0x80000003 } <
932 enum : DWORD { STATUS_SINGLE_STEP = 0x80000004 } <
933 enum : DWORD { DBG_EXCEPTION_NOT_HANDLED = 0x80010001 } <
934 enum : DWORD { STATUS_ACCESS_VIOLATION = 0xC0000005 } <
935 enum : DWORD { STATUS_IN_PAGE_ERROR = 0xC0000006 } <
936 enum : DWORD { STATUS_INVALID_HANDLE = 0xC0000008 } <
937 enum : DWORD { STATUS_NO_MEMORY = 0xC0000017 } <
938 enum : DWORD { STATUS_ILLEGAL_INSTRUCTION = 0xC000001D } <
939 enum : DWORD { STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025 } <
940 enum : DWORD { STATUS_INVALID_DISPOSITION = 0xC0000026 } <
941 enum : DWORD { STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C } <
942 enum : DWORD { STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D } <
943 enum : DWORD { STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E } <
944 enum : DWORD { STATUS_FLOAT_INEXACT_RESULT = 0xC000008F } <
945 enum : DWORD { STATUS_FLOAT_INVALID_OPERATION = 0xC0000090 } <
946 enum : DWORD { STATUS_FLOAT_OVERFLOW = 0xC0000091 } <
947 enum : DWORD { STATUS_FLOAT_STACK_CHECK = 0xC0000092 } <
948 enum : DWORD { STATUS_FLOAT_UNDERFLOW = 0xC0000093 } <
949 enum : DWORD { STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094 } <
950 enum : DWORD { STATUS_INTEGER_OVERFLOW = 0xC0000095 } <
951 enum : DWORD { STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096 } <
952 enum : DWORD { STATUS_STACK_OVERFLOW = 0xC00000FD } <
953 enum : DWORD { STATUS_CONTROL_C_EXIT = 0xC000013A } <
954 enum : DWORD { STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4 } <
955 enum : DWORD { STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5 } <
956 enum : DWORD { STATUS_REG_NAT_CONSUMPTION = 0xC00002C9 } <
957 // #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0 <
958 enum : DWORD { STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F } <
959 enum : DWORD { STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010 } <
960 // #endif <
961 | 940 }
962 // #endif <
963 enum : uint { MAXIMUM_WAIT_OBJECTS = 64 } <
964 | 941
965 alias MAXCHAR MAXIMUM_SUSPEND_COUNT; <
> 942 // MinGW: also in ddk/ntifs.h
> 943 enum : DWORD {
> 944 FILE_ACTION_ADDED = 1,
> 945 FILE_ACTION_REMOVED,
> 946 FILE_ACTION_MODIFIED,
> 947 FILE_ACTION_RENAMED_OLD_NAME,
> 948 FILE_ACTION_RENAMED_NEW_NAME,
> 949 FILE_ACTION_ADDED_STREAM,
> 950 FILE_ACTION_REMOVED_STREAM,
> 951 FILE_ACTION_MODIFIED_STREAM,
> 952 FILE_ACTION_REMOVED_BY_DELETE,
> 953 FILE_ACTION_ID_NOT_TUNNELLED,
> 954 FILE_ACTION_TUNNELLED_ID_COLLISION // = 11
966 | 955 }
967 alias ULONG_PTR KSPIN_LOCK; <
968 alias KSPIN_LOCK* PKSPIN_LOCK; <
> 956 // MinGW: end ntifs.h
969 | 957
970 // #if defined(_AMD64_) <
> 958 const DWORD
> 959 HEAP_NO_SERIALIZE = 0x01,
> 960 HEAP_GROWABLE = 0x02,
> 961 HEAP_GENERATE_EXCEPTIONS = 0x04,
> 962 HEAP_ZERO_MEMORY = 0x08,
> 963 HEAP_REALLOC_IN_PLACE_ONLY = 0x10,
> 964 HEAP_TAIL_CHECKING_ENABLED = 0x20,
> 965 HEAP_FREE_CHECKING_ENABLED = 0x40,
> 966 HEAP_DISABLE_COALESCE_ON_FREE = 0x80;
971 | 967
972 // #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) <
973 <
> 968 // These are not documented on MSDN
> 969 const HEAP_CREATE_ALIGN_16 = 0;
> 970 const HEAP_CREATE_ENABLE_TRACING = 0x020000;
> 971 const HEAP_MAXIMUM_TAG = 0x000FFF;
> 972 const HEAP_PSEUDO_TAG_FLAG = 0x008000;
> 973 const HEAP_TAG_SHIFT = 16;
974 // #... | 974 // ???
> 975 //MACRO #define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16)))
975 | 976
> 977 const ACCESS_MASK
> 978 KEY_QUERY_VALUE = 0x000001,
> 979 KEY_SET_VALUE = 0x000002,
> 980 KEY_CREATE_SUB_KEY = 0x000004,
> 981 KEY_ENUMERATE_SUB_KEYS = 0x000008,
> 982 KEY_NOTIFY = 0x000010,
> 983 KEY_CREATE_LINK = 0x000020,
> 984 KEY_WRITE = 0x020006,
976 // ... | 985 KEY_EXECUTE = 0x020019,
977 <
> 986 KEY_READ = 0x020019,
978 // #... | 987 KEY_ALL_ACCESS = 0x0F003F;
979 | 988
980 // #... | 989 static if (WINVER >= 0x502) {
981 <
> 990 const ACCESS_MASK
982 // ... | 991 KEY_WOW64_64KEY = 0x000100,
> 992 KEY_WOW64_32KEY = 0x000200;
983 | 993 }
984 // #... <
985 | 994
986 // ... | 995 const DWORD
987 <
> 996 REG_WHOLE_HIVE_VOLATILE = 1,
988 // ... | 997 REG_REFRESH_HIVE = 2,
> 998 REG_NO_LAZY_FLUSH = 4;
989 | 999
990 // ... <
991 <
> 1000 const DWORD
992 // ... | 1001 REG_OPTION_RESERVED = 0,
993 <
> 1002 REG_OPTION_NON_VOLATILE = 0,
994 // #... | 1003 REG_OPTION_VOLATILE = 1,
995 // #... | 1004 REG_OPTION_CREATE_LINK = 2,
996 // #... | 1005 REG_OPTION_BACKUP_RESTORE = 4,
997 // #... | 1006 REG_OPTION_OPEN_LINK = 8,
> 1007 REG_LEGAL_OPTION = 15;
998 | 1008
999 // #... <
1000 // #... | 1009 const SECURITY_INFORMATION
1001 <
> 1010 OWNER_SECURITY_INFORMATION = 0x00000001,
1002 // ... | 1011 GROUP_SECURITY_INFORMATION = 0x00000002,
1003 <
> 1012 DACL_SECURITY_INFORMATION = 0x00000004,
1004 // ... | 1013 SACL_SECURITY_INFORMATION = 0x00000008,
1005 <
> 1014 LABEL_SECURITY_INFORMATION = 0x00000010,
1006 // #... | 1015 UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000,
1007 // #... | 1016 UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000,
1008 <
> 1017 PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000,
1009 // ... | 1018 PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000;
1010 | 1019
1011 // ... | 1020 const DWORD MAXIMUM_PROCESSORS = 32;
1012 | 1021
1013 // ... | 1022 // VirtualAlloc(), etc
> 1023 // -------------------
1014 | 1024
1015 // ... <
1016 <
> 1025 enum : DWORD {
1017 // ... | 1026 PAGE_NOACCESS = 0x0001,
1018 <
> 1027 PAGE_READONLY = 0x0002,
1019 // ... | 1028 PAGE_READWRITE = 0x0004,
1020 <
> 1029 PAGE_WRITECOPY = 0x0008,
1021 // ... | 1030 PAGE_EXECUTE = 0x0010,
> 1031 PAGE_EXECUTE_READ = 0x0020,
> 1032 PAGE_EXECUTE_READWRITE = 0x0040,
> 1033 PAGE_EXECUTE_WRITECOPY = 0x0080,
> 1034 PAGE_GUARD = 0x0100,
> 1035 PAGE_NOCACHE = 0x0200
1022 | 1036 }
1023 // ... <
1024 | 1037
1025 // #... <
1026 // #... <
1027 // #... <
1028 // #... <
1029 // #... | 1038 enum : DWORD {
1030 // #... | 1039 MEM_COMMIT = 0x00001000,
1031 // #... | 1040 MEM_RESERVE = 0x00002000,
1032 // #... | 1041 MEM_DECOMMIT = 0x00004000,
1033 <
> 1042 MEM_RELEASE = 0x00008000,
1034 // #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) | 1043 MEM_FREE = 0x00010000,
1035 <
> 1044 MEM_PRIVATE = 0x00020000,
1036 // #if !defined(RC_INVOKED) | 1045 MEM_MAPPED = 0x00040000,
> 1046 MEM_RESET = 0x00080000,
> 1047 MEM_TOP_DOWN = 0x00100000,
> 1048 MEM_WRITE_WATCH = 0x00200000, // MinGW (???): 98/Me
> 1049 MEM_PHYSICAL = 0x00400000,
> 1050 MEM_4MB_PAGES = 0x80000000
1037 | 1051 }
1038 // #... <
1039 | 1052
1040 // #... <
1041 // #... <
1042 // #... <
1043 // #... <
1044 // #... | 1053 // MinGW: also in ddk/ntifs.h
1045 <
> 1054 // CreateFileMapping()
1046 // #... | 1055 const DWORD
1047 <
> 1056 SEC_BASED = 0x00200000,
1048 // #endif // !defined(RC_INVOKED) | 1057 SEC_NO_CHANGE = 0x00400000,
1049 <
> 1058 SEC_FILE = 0x00800000,
1050 // ... | 1059 SEC_IMAGE = 0x01000000,
1051 <
> 1060 SEC_VLM = 0x02000000,
1052 // ... | 1061 SEC_RESERVE = 0x04000000,
1053 <
> 1062 SEC_COMMIT = 0x08000000,
1054 // #... | 1063 SEC_NOCACHE = 0x10000000,
1055 <
> 1064 MEM_IMAGE = SEC_IMAGE;
1056 // ... | 1065 // MinGW: end ntifs.h
1057 | 1066
1058 // ... | 1067 // ???
1059 <
> 1068 const ACCESS_MASK
1060 // ... | 1069 SECTION_QUERY = 0x000001,
1061 <
> 1070 SECTION_MAP_WRITE = 0x000002,
1062 // ... | 1071 SECTION_MAP_READ = 0x000004,
1063 <
> 1072 SECTION_MAP_EXECUTE = 0x000008,
1064 // ... | 1073 SECTION_EXTEND_SIZE = 0x000010,
> 1074 SECTION_ALL_ACCESS = 0x0F001F;
1065 | 1075
1066 // ... <
1067 <
> 1076 // These are not documented on MSDN
1068 // ... | 1077 const MESSAGE_RESOURCE_UNICODE = 1;
1069 <
> 1078 const RTL_CRITSECT_TYPE = 0;
1070 // ... | 1079 const RTL_RESOURCE_TYPE = 1;
1071 | 1080
1072 // ... | 1081 // COFF file format
> 1082 // ----------------
1073 | 1083
1074 // #endif // _AMD64_ <
1075 <
> 1084 // IMAGE_FILE_HEADER.Characteristics
1076 // #ifdef _ALPHA_ // winnt | 1085 const WORD
1077 // ... | 1086 IMAGE_FILE_RELOCS_STRIPPED = 0x0001,
1078 // #if defined(_M_ALPHA) // winnt | 1087 IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002,
1079 // #... | 1088 IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004,
> 1089 IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008,
> 1090 IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010,
> 1091 IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020,
> 1092 IMAGE_FILE_BYTES_REVERSED_LO = 0x0080,
> 1093 IMAGE_FILE_32BIT_MACHINE = 0x0100,
> 1094 IMAGE_FILE_DEBUG_STRIPPED = 0x0200,
> 1095 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400,
> 1096 IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800,
1080 // #endif // winnt | 1097 IMAGE_FILE_SYSTEM = 0x1000,
1081 // #endif // winnt | 1098 IMAGE_FILE_DLL = 0x2000,
1082 <
1083 // #if defined(_M_ALPHA) <
1084 // #... <
1085 // #else <
1086 extern(Windows) export _TEB NtCurrentTeb(); <
1087 // #endif <
1088 <
1089 // #ifdef _ALPHA_ <
1090 <
> 1099 IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000,
1091 // #... | 1100 IMAGE_FILE_BYTES_REVERSED_HI = 0x8000;
1092 // #... <
1093 | 1101
> 1102 // IMAGE_FILE_HEADER.Machine
1094 // #if !defined(RC_INVOKED) | 1103 enum : WORD {
1095 <
> 1104 IMAGE_FILE_MACHINE_UNKNOWN = 0x0000,
1096 // #... | 1105 IMAGE_FILE_MACHINE_I386 = 0x014C,
1097 <
> 1106 IMAGE_FILE_MACHINE_R3000 = 0x0162,
1098 // #... | 1107 IMAGE_FILE_MACHINE_R4000 = 0x0166,
1099 // #... | 1108 IMAGE_FILE_MACHINE_R10000 = 0x0168,
1100 // #... | 1109 IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169,
1101 <
> 1110 IMAGE_FILE_MACHINE_ALPHA = 0x0184,
1102 // #... | 1111 IMAGE_FILE_MACHINE_SH3 = 0x01A2,
1103 <
> 1112 IMAGE_FILE_MACHINE_SH3DSP = 0x01A3,
1104 // #endif | 1113 IMAGE_FILE_MACHINE_SH4 = 0x01A6,
1105 <
> 1114 IMAGE_FILE_MACHINE_SH5 = 0x01A8,
1106 // #ifndef _PORTABLE_32BIT_CONTEXT | 1115 IMAGE_FILE_MACHINE_ARM = 0x01C0,
1107 <
> 1116 IMAGE_FILE_MACHINE_THUMB = 0x01C2,
1108 // ... | 1117 IMAGE_FILE_MACHINE_AM33 = 0x01D3,
1109 <
> 1118 IMAGE_FILE_MACHINE_POWERPC = 0x01F0,
1110 // ... | 1119 IMAGE_FILE_MACHINE_POWERPCFP = 0x01F1,
1111 <
> 1120 IMAGE_FILE_MACHINE_IA64 = 0x0200,
1112 // ... | 1121 IMAGE_FILE_MACHINE_MIPS16 = 0x0266,
1113 <
> 1122 IMAGE_FILE_MACHINE_MIPSFPU = 0x0366,
1114 // ... | 1123 IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466,
1115 <
> 1124 IMAGE_FILE_MACHINE_EBC = 0x0EBC,
1116 // ... | 1125 IMAGE_FILE_MACHINE_AMD64 = 0x8664,
> 1126 IMAGE_FILE_MACHINE_M32R = 0x9041
1117 | 1127 }
1118 // ... <
1119 | 1128
1120 // ... | 1129 // ???
1121 <
> 1130 enum {
1122 // #else | 1131 IMAGE_DOS_SIGNATURE = 0x5A4D,
1123 <
> 1132 IMAGE_OS2_SIGNATURE = 0x454E,
1124 // #... | 1133 IMAGE_OS2_SIGNATURE_LE = 0x454C,
1125 <
> 1134 IMAGE_VXD_SIGNATURE = 0x454C,
1126 // #endif // _PORTABLE_32BIT_CONTEXT | 1135 IMAGE_NT_SIGNATURE = 0x4550
1127 | 1136 }
1128 // #endif // _ALPHA_ <
1129 | 1137
> 1138 // IMAGE_OPTIONAL_HEADER.Magic
1130 // #ifdef _ALPHA_ | 1139 enum : WORD {
1131 <
> 1140 IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x010B,
1132 // ... | 1141 IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x0107,
> 1142 IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x020B
1133 | 1143 }
1134 // #endif // _ALPHA_ <
1135 | 1144
1136 // #ifdef _X86_ | 1145 // IMAGE_OPTIONAL_HEADER.Subsystem
1137 <
> 1146 enum : WORD {
1138 // #if !defined(MIDL_PASS) | 1147 IMAGE_SUBSYSTEM_UNKNOWN = 0,
1139 // #if !defined(RC_INVOKED) | 1148 IMAGE_SUBSYSTEM_NATIVE,
1140 <
> 1149 IMAGE_SUBSYSTEM_WINDOWS_GUI,
1141 // #if _MSC_VER >= 1200 | 1150 IMAGE_SUBSYSTEM_WINDOWS_CUI, // = 3
1142 // #pragma warning(push) | 1151 IMAGE_SUBSYSTEM_OS2_CUI = 5,
1143 // #endif | 1152 IMAGE_SUBSYSTEM_POSIX_CUI = 7,
1144 // #pragma warning(disable:4164) // disable C4164 warning so that apps that <
> 1153 IMAGE_SUBSYSTEM_NATIVE_WINDOWS,
> 1154 IMAGE_SUBSYSTEM_WINDOWS_CE_GUI,
> 1155 IMAGE_SUBSYSTEM_EFI_APPLICATION,
> 1156 IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER,
> 1157 IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER,
> 1158 IMAGE_SUBSYSTEM_EFI_ROM,
> 1159 IMAGE_SUBSYSTEM_XBOX, // = 14
> 1160 IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16
1145 | 1161 }
1146 // #ifdef _M_IX86 <
1147 // #pragma function(_enable) <
1148 // #pragma function(_disable) <
1149 // #endif <
1150 | 1162
1151 // #if _MSC_VER >= 1200 <
1152 // #pragma warning(pop) <
1153 // #else <
1154 // #... | 1163 // IMAGE_OPTIONAL_HEADER.DllCharacteristics
1155 // #endif | 1164 const WORD
1156 <
> 1165 IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040,
1157 // #endif | 1166 IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080,
1158 // #endif | 1167 IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100,
> 1168 IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200,
> 1169 IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400,
> 1170 IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800,
> 1171 IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000,
> 1172 IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000;
1159 | 1173
1160 // #if !defined(MIDL_PASS) && defined(_M_IX86) <
1161 // #if _MSC_VER >= 1200 <
1162 // #pragma warning(push) <
1163 // #endif | 1174 // ???
1164 // #pragma warning (disable:4035) // disable 4035 (function must return s <
1165 PVOID GetFiberData() { asm { mov EAX, FS:[0x10]; mov EAX, [EAX]; } } <
1166 PVOID GetCurrentFiber() { asm { mov EAX, FS:[0x10]; } } | 1175 const IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944;
1167 | 1176
1168 // #if _MSC_VER >= 1200 | 1177 const size_t
1169 // #pragma warning(pop) | 1178 IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16,
1170 // #else | 1179 IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56,
1171 // #... | 1180 IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28,
1172 // #endif | 1181 IMAGE_SIZEOF_NT_OPTIONAL_HEADER = 224,
1173 // #endif | 1182 IMAGE_SIZEOF_SHORT_NAME = 8,
1174 <
> 1183 IMAGE_SIZEOF_SECTION_HEADER = 40,
1175 enum : uint { SIZE_OF_80387_REGISTERS = 80 } | 1184 IMAGE_SIZEOF_SYMBOL = 18,
1176 <
> 1185 IMAGE_SIZEOF_AUX_SYMBOL = 18,
1177 // #if !defined(RC_INVOKED) | 1186 IMAGE_SIZEOF_RELOCATION = 10,
1178 <
> 1187 IMAGE_SIZEOF_BASE_RELOCATION = 8,
1179 enum : uint { CONTEXT_i386 = 0x00010000 } | 1188 IMAGE_SIZEOF_LINENUMBER = 6,
1180 enum : uint { CONTEXT_i486 = 0x00010000 } | 1189 IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60,
> 1190 SIZEOF_RFPO_DATA = 16;
1181 | 1191
1182 enum : uint { CONTEXT_CONTROL = CONTEXT_i386 | 0x00000001L } <
1183 enum : uint { CONTEXT_INTEGER = CONTEXT_i386 | 0x00000002L } | 1192 PIMAGE_SECTION_HEADER IMAGE_FIRST_SECTION(PIMAGE_NT_HEADERS h) {
1184 enum : uint { CONTEXT_SEGMENTS = CONTEXT_i386 | 0x00000004L } | 1193 return cast(PIMAGE_SECTION_HEADER)
1185 enum : uint { CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x00000008L } | 1194 (&h.OptionalHeader + h.FileHeader.SizeOfOptionalHeader);
1186 enum : uint { CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x00000010L } <
1187 enum : uint { CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x00000020L } <
1188 | 1195 }
1189 enum : uint { CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENT <
1190 | 1196
1191 // #endif <
1192 <
> 1197 // ImageDirectoryEntryToDataEx()
> 1198 enum : USHORT {
> 1199 IMAGE_DIRECTORY_ENTRY_EXPORT = 0,
> 1200 IMAGE_DIRECTORY_ENTRY_IMPORT,
> 1201 IMAGE_DIRECTORY_ENTRY_RESOURCE,
1193 enum : uint { MAXIMUM_SUPPORTED_EXTENSION = 512 } | 1202 IMAGE_DIRECTORY_ENTRY_EXCEPTION,
1194 <
> 1203 IMAGE_DIRECTORY_ENTRY_SECURITY,
1195 struct _FLOATING_SAVE_AREA { | 1204 IMAGE_DIRECTORY_ENTRY_BASERELOC,
1196 DWORD ControlWord; | 1205 IMAGE_DIRECTORY_ENTRY_DEBUG,
1197 DWORD StatusWord; | 1206 IMAGE_DIRECTORY_ENTRY_COPYRIGHT, // = 7
1198 DWORD TagWord; | 1207 IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7,
1199 DWORD ErrorOffset; | 1208 IMAGE_DIRECTORY_ENTRY_GLOBALPTR,
1200 DWORD ErrorSelector; | 1209 IMAGE_DIRECTORY_ENTRY_TLS,
1201 DWORD DataOffset; | 1210 IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG,
1202 DWORD DataSelector; | 1211 IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT,
1203 BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; | 1212 IMAGE_DIRECTORY_ENTRY_IAT,
1204 DWORD Cr0NpxState; | 1213 IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT,
> 1214 IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, // = 14
1205 } | 1215 }
1206 alias _FLOATING_SAVE_AREA FLOATING_SAVE_AREA; <
1207 | 1216
1208 alias FLOATING_SAVE_AREA* PFLOATING_SAVE_AREA; | 1217 // IMAGE_SECTION_HEADER.Characteristics
1209 <
1210 struct _CONTEXT { <
1211 <
1212 DWORD ContextFlags; <
1213 <
1214 DWORD Dr0; | 1218 const DWORD
> 1219 IMAGE_SCN_TYPE_REG = 0x00000000,
> 1220 IMAGE_SCN_TYPE_DSECT = 0x00000001,
> 1221 IMAGE_SCN_TYPE_NOLOAD = 0x00000002,
> 1222 IMAGE_SCN_TYPE_GROUP = 0x00000004,
> 1223 IMAGE_SCN_TYPE_NO_PAD = 0x00000008,
1215 DWORD Dr1; | 1224 IMAGE_SCN_TYPE_COPY = 0x00000010,
1216 DWORD Dr2; | 1225 IMAGE_SCN_CNT_CODE = 0x00000020,
1217 DWORD Dr3; | 1226 IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040,
1218 DWORD Dr6; | 1227 IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080,
1219 DWORD Dr7; | 1228 IMAGE_SCN_LNK_OTHER = 0x00000100,
1220 <
> 1229 IMAGE_SCN_LNK_INFO = 0x00000200,
1221 FLOATING_SAVE_AREA FloatSave; | 1230 IMAGE_SCN_TYPE_OVER = 0x00000400,
1222 <
> 1231 IMAGE_SCN_LNK_REMOVE = 0x00000800,
1223 DWORD SegGs; | 1232 IMAGE_SCN_LNK_COMDAT = 0x00001000,
1224 DWORD SegFs; | 1233 IMAGE_SCN_MEM_FARDATA = 0x00008000,
1225 DWORD SegEs; | 1234 IMAGE_SCN_GPREL = 0x00008000,
1226 DWORD SegDs; | 1235 IMAGE_SCN_MEM_PURGEABLE = 0x00020000,
1227 <
> 1236 IMAGE_SCN_MEM_16BIT = 0x00020000,
1228 DWORD Edi; | 1237 IMAGE_SCN_MEM_LOCKED = 0x00040000,
1229 DWORD Esi; | 1238 IMAGE_SCN_MEM_PRELOAD = 0x00080000,
1230 DWORD Ebx; | 1239 IMAGE_SCN_ALIGN_1BYTES = 0x00100000,
1231 DWORD Edx; | 1240 IMAGE_SCN_ALIGN_2BYTES = 0x00200000,
1232 DWORD Ecx; | 1241 IMAGE_SCN_ALIGN_4BYTES = 0x00300000,
1233 DWORD Eax; | 1242 IMAGE_SCN_ALIGN_8BYTES = 0x00400000,
1234 <
> 1243 IMAGE_SCN_ALIGN_16BYTES = 0x00500000,
1235 DWORD Ebp; | 1244 IMAGE_SCN_ALIGN_32BYTES = 0x00600000,
1236 DWORD Eip; | 1245 IMAGE_SCN_ALIGN_64BYTES = 0x00700000,
1237 DWORD SegCs; | 1246 IMAGE_SCN_ALIGN_128BYTES = 0x00800000,
1238 DWORD EFlags; | 1247 IMAGE_SCN_ALIGN_256BYTES = 0x00900000,
1239 DWORD Esp; | 1248 IMAGE_SCN_ALIGN_512BYTES = 0x00A00000,
1240 DWORD SegSs; | 1249 IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000,
1241 <
> 1250 IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000,
1242 BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; | 1251 IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000,
1243 } <
> 1252 IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000,
1244 alias _CONTEXT CONTEXT; | 1253 IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000,
1245 <
> 1254 IMAGE_SCN_MEM_DISCARDABLE = 0x02000000,
1246 alias CONTEXT* PCONTEXT; | 1255 IMAGE_SCN_MEM_NOT_CACHED = 0x04000000,
1247 <
> 1256 IMAGE_SCN_MEM_NOT_PAGED = 0x08000000,
1248 // #endif //_X86_ | 1257 IMAGE_SCN_MEM_SHARED = 0x10000000,
1249 <
> 1258 IMAGE_SCN_MEM_EXECUTE = 0x20000000,
1250 // #ifndef _LDT_ENTRY_DEFINED | 1259 IMAGE_SCN_MEM_READ = 0x40000000,
1251 // #define _LDT_ENTRY_DEFINED | 1260 IMAGE_SCN_MEM_WRITE = 0x80000000;
1252 | 1261
1253 struct _LDT_ENTRY { | 1262 /* The following constants are mostlydocumented at
1254 WORD LimitLow; | 1263 * http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923
1255 WORD BaseLow; | 1264 * but don't seem to be defined in the HTML docs.
1256 union { <
> 1265 */
1257 struct { | 1266 enum : SHORT {
1258 BYTE BaseMid; | 1267 IMAGE_SYM_UNDEFINED = 0,
1259 BYTE Flags1; | 1268 IMAGE_SYM_ABSOLUTE = -1,
1260 BYTE Flags2; | 1269 IMAGE_SYM_DEBUG = -2
1261 BYTE BaseHi; <
1262 } | 1270 }
1263 | 1271
1264 struct { <
> 1272 enum : ubyte {
> 1273 IMAGE_SYM_TYPE_NULL,
1265 // DWORD BaseMid : 8; | 1274 IMAGE_SYM_TYPE_VOID,
1266 // DWORD Type : 5; | 1275 IMAGE_SYM_TYPE_CHAR,
1267 // DWORD Dpl : 2; | 1276 IMAGE_SYM_TYPE_SHORT,
1268 // DWORD Pres : 1; | 1277 IMAGE_SYM_TYPE_INT,
1269 // DWORD LimitHi : 4; | 1278 IMAGE_SYM_TYPE_LONG,
1270 // DWORD Sys : 1; | 1279 IMAGE_SYM_TYPE_FLOAT,
1271 // DWORD Reserved_0 : 1; | 1280 IMAGE_SYM_TYPE_DOUBLE,
1272 // DWORD Default_Big : 1; | 1281 IMAGE_SYM_TYPE_STRUCT,
1273 // DWORD Granularity : 1; | 1282 IMAGE_SYM_TYPE_UNION,
1274 // DWORD BaseHi : 8; <
> 1283 IMAGE_SYM_TYPE_ENUM,
> 1284 IMAGE_SYM_TYPE_MOE,
> 1285 IMAGE_SYM_TYPE_BYTE,
> 1286 IMAGE_SYM_TYPE_WORD,
> 1287 IMAGE_SYM_TYPE_UINT,
> 1288 IMAGE_SYM_TYPE_DWORD // = 15
1275 } | 1289 }
1276 <
1277 } <
1278 <
1279 } <
1280 alias _LDT_ENTRY LDT_ENTRY; <
1281 alias _LDT_ENTRY* PLDT_ENTRY; | 1290 const IMAGE_SYM_TYPE_PCODE = 32768; // ???
1282 | 1291
1283 // #endif | 1292 enum : ubyte {
1284 <
> 1293 IMAGE_SYM_DTYPE_NULL,
1285 // #if defined(_MIPS_) | 1294 IMAGE_SYM_DTYPE_POINTER,
> 1295 IMAGE_SYM_DTYPE_FUNCTION,
> 1296 IMAGE_SYM_DTYPE_ARRAY
1286 | 1297 }
1287 // #... <
1288 // #... <
1289 | 1298
1290 // #if !defined(RC_INVOKED) | 1299 enum : BYTE {
1291 <
> 1300 IMAGE_SYM_CLASS_END_OF_FUNCTION = 0xFF,
1292 // #... | 1301 IMAGE_SYM_CLASS_NULL = 0,
1293 <
1294 // #... <
1295 // #... <
1296 // #... <
1297 // #... <
1298 // #... <
1299 <
1300 // #... <
1301 // ... <
1302 <
1303 // #endif <
1304 <
1305 // ... <
1306 <
1307 // ... <
1308 <
1309 // ... <
1310 <
> 1302 IMAGE_SYM_CLASS_AUTOMATIC,
> 1303 IMAGE_SYM_CLASS_EXTERNAL,
> 1304 IMAGE_SYM_CLASS_STATIC,
> 1305 IMAGE_SYM_CLASS_REGISTER,
> 1306 IMAGE_SYM_CLASS_EXTERNAL_DEF,
> 1307 IMAGE_SYM_CLASS_LABEL,
> 1308 IMAGE_SYM_CLASS_UNDEFINED_LABEL,
> 1309 IMAGE_SYM_CLASS_MEMBER_OF_STRUCT,
> 1310 IMAGE_SYM_CLASS_ARGUMENT,
> 1311 IMAGE_SYM_CLASS_STRUCT_TAG,
> 1312 IMAGE_SYM_CLASS_MEMBER_OF_UNION,
> 1313 IMAGE_SYM_CLASS_UNION_TAG,
> 1314 IMAGE_SYM_CLASS_TYPE_DEFINITION,
> 1315 IMAGE_SYM_CLASS_UNDEFINED_STATIC,
> 1316 IMAGE_SYM_CLASS_ENUM_TAG,
> 1317 IMAGE_SYM_CLASS_MEMBER_OF_ENUM,
> 1318 IMAGE_SYM_CLASS_REGISTER_PARAM,
> 1319 IMAGE_SYM_CLASS_BIT_FIELD, // = 18
1311 // ... | 1320 IMAGE_SYM_CLASS_FAR_EXTERNAL = 68,
1312 <
1313 // ... <
1314 <
1315 // ... <
1316 <
> 1321 IMAGE_SYM_CLASS_BLOCK = 100,
> 1322 IMAGE_SYM_CLASS_FUNCTION,
> 1323 IMAGE_SYM_CLASS_END_OF_STRUCT,
> 1324 IMAGE_SYM_CLASS_FILE,
> 1325 IMAGE_SYM_CLASS_SECTION,
1317 // ... | 1326 IMAGE_SYM_CLASS_WEAK_EXTERNAL,// = 105
> 1327 IMAGE_SYM_CLASS_CLR_TOKEN = 107
1318 | 1328 }
1319 // ... <
1320 | 1329
1321 // ... | 1330 enum : BYTE {
> 1331 IMAGE_COMDAT_SELECT_NODUPLICATES = 1,
> 1332 IMAGE_COMDAT_SELECT_ANY,
> 1333 IMAGE_COMDAT_SELECT_SAME_SIZE,
> 1334 IMAGE_COMDAT_SELECT_EXACT_MATCH,
> 1335 IMAGE_COMDAT_SELECT_ASSOCIATIVE,
> 1336 IMAGE_COMDAT_SELECT_LARGEST,
> 1337 IMAGE_COMDAT_SELECT_NEWEST // = 7
1322 | 1338 }
1323 // ... <
1324 | 1339
1325 // ... <
1326 <
1327 // ... <
1328 <
1329 // ... <
1330 <
1331 // ... | 1340 enum : DWORD {
> 1341 IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1,
> 1342 IMAGE_WEAK_EXTERN_SEARCH_LIBRARY,
> 1343 IMAGE_WEAK_EXTERN_SEARCH_ALIAS
1332 | 1344 }
1333 // ... <
1334 | 1345
1335 // ... <
1336 <
1337 // #... | 1346 enum : WORD {
1338 <
> 1347 IMAGE_REL_I386_ABSOLUTE = 0x0000,
1339 // #endif // MIPS | 1348 IMAGE_REL_I386_DIR16 = 0x0001,
1340 <
> 1349 IMAGE_REL_I386_REL16 = 0x0002,
1341 // #if defined(_MIPS_) | 1350 IMAGE_REL_I386_DIR32 = 0x0006,
1342 <
> 1351 IMAGE_REL_I386_DIR32NB = 0x0007,
1343 // ... | 1352 IMAGE_REL_I386_SEG12 = 0x0009,
1344 <
> 1353 IMAGE_REL_I386_SECTION = 0x000A,
1345 // #endif // MIPS | 1354 IMAGE_REL_I386_SECREL = 0x000B,
> 1355 IMAGE_REL_I386_TOKEN = 0x000C,
> 1356 IMAGE_REL_I386_SECREL7 = 0x000D,
> 1357 IMAGE_REL_I386_REL32 = 0x0014
1346 | 1358 }
1347 // #if defined(_PPC_) <
1348 | 1359
1349 // #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) <
1350 // ... <
1351 // #... | 1360 enum : WORD {
1352 // #elif defined(_M_PPC) | 1361 IMAGE_REL_AMD64_ABSOLUTE = 0x0000,
1353 // ... | 1362 IMAGE_REL_AMD64_ADDR64 = 0x0001,
1354 // #... | 1363 IMAGE_REL_AMD64_ADDR32 = 0x0002,
1355 // #endif | 1364 IMAGE_REL_AMD64_ADDR32NB = 0x0003,
1356 <
> 1365 IMAGE_REL_AMD64_REL32 = 0x0004,
1357 // #... | 1366 IMAGE_REL_AMD64_REL32_1 = 0x0005,
1358 // #... | 1367 IMAGE_REL_AMD64_REL32_2 = 0x0006,
1359 <
> 1368 IMAGE_REL_AMD64_REL32_3 = 0x0007,
1360 // #if !defined(RC_INVOKED) | 1369 IMAGE_REL_AMD64_REL32_4 = 0x0008,
1361 <
> 1370 IMAGE_REL_AMD64_REL32_5 = 0x0009,
1362 // #... | 1371 IMAGE_REL_AMD64_SECTION = 0x000A,
1363 // #... | 1372 IMAGE_REL_AMD64_SECREL = 0x000B,
1364 // #... | 1373 IMAGE_REL_AMD64_SECREL7 = 0x000C,
1365 // #... | 1374 IMAGE_REL_AMD64_TOKEN = 0x000D,
1366 <
> 1375 IMAGE_REL_AMD64_SREL32 = 0x000E,
1367 // #... | 1376 IMAGE_REL_AMD64_PAIR = 0x000F,
> 1377 IMAGE_REL_AMD64_SSPAN32 = 0x0010
1368 | 1378 }
1369 // #endif <
1370 | 1379
1371 // ... | 1380 enum : WORD {
1372 <
> 1381 IMAGE_REL_IA64_ABSOLUTE = 0x0000,
1373 // ... | 1382 IMAGE_REL_IA64_IMM14 = 0x0001,
1374 <
> 1383 IMAGE_REL_IA64_IMM22 = 0x0002,
1375 // ... | 1384 IMAGE_REL_IA64_IMM64 = 0x0003,
1376 <
> 1385 IMAGE_REL_IA64_DIR32 = 0x0004,
1377 // ... | 1386 IMAGE_REL_IA64_DIR64 = 0x0005,
1378 <
> 1387 IMAGE_REL_IA64_PCREL21B = 0x0006,
1379 // ... | 1388 IMAGE_REL_IA64_PCREL21M = 0x0007,
1380 <
> 1389 IMAGE_REL_IA64_PCREL21F = 0x0008,
1381 // ... | 1390 IMAGE_REL_IA64_GPREL22 = 0x0009,
1382 <
> 1391 IMAGE_REL_IA64_LTOFF22 = 0x000A,
1383 // ... | 1392 IMAGE_REL_IA64_SECTION = 0x000B,
1384 <
> 1393 IMAGE_REL_IA64_SECREL22 = 0x000C,
1385 // ... | 1394 IMAGE_REL_IA64_SECREL64I = 0x000D,
1386 <
> 1395 IMAGE_REL_IA64_SECREL32 = 0x000E,
1387 // ... | 1396 IMAGE_REL_IA64_DIR32NB = 0x0010,
1388 <
> 1397 IMAGE_REL_IA64_SREL14 = 0x0011,
1389 // ... | 1398 IMAGE_REL_IA64_SREL22 = 0x0012,
1390 <
> 1399 IMAGE_REL_IA64_SREL32 = 0x0013,
1391 // ... | 1400 IMAGE_REL_IA64_UREL32 = 0x0014,
1392 <
> 1401 IMAGE_REL_IA64_PCREL60X = 0x0015,
1393 // ... | 1402 IMAGE_REL_IA64_PCREL60B = 0x0016,
1394 <
> 1403 IMAGE_REL_IA64_PCREL60F = 0x0017,
1395 // ... | 1404 IMAGE_REL_IA64_PCREL60I = 0x0018,
1396 <
> 1405 IMAGE_REL_IA64_PCREL60M = 0x0019,
1397 // #endif // defined(_PPC_) | 1406 IMAGE_REL_IA64_IMMGPREL64 = 0x001A,
> 1407 IMAGE_REL_IA64_TOKEN = 0x001B,
> 1408 IMAGE_REL_IA64_GPREL32 = 0x001C,
> 1409 IMAGE_REL_IA64_ADDEND = 0x001F
1398 | 1410 }
1399 // #if defined(_MPPC_) <
1400 | 1411
1401 // #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) <
1402 // ... <
1403 // #... | 1412 enum : WORD {
1404 // #elif defined(_M_PPC) | 1413 IMAGE_REL_SH3_ABSOLUTE = 0x0000,
1405 // ... | 1414 IMAGE_REL_SH3_DIRECT16 = 0x0001,
1406 // #... | 1415 IMAGE_REL_SH3_DIRECT32 = 0x0002,
1407 // #endif | 1416 IMAGE_REL_SH3_DIRECT8 = 0x0003,
1408 <
> 1417 IMAGE_REL_SH3_DIRECT8_WORD = 0x0004,
1409 // #... | 1418 IMAGE_REL_SH3_DIRECT8_LONG = 0x0005,
1410 // #... | 1419 IMAGE_REL_SH3_DIRECT4 = 0x0006,
1411 <
> 1420 IMAGE_REL_SH3_DIRECT4_WORD = 0x0007,
1412 // #if !defined(RC_INVOKED) | 1421 IMAGE_REL_SH3_DIRECT4_LONG = 0x0008,
1413 <
> 1422 IMAGE_REL_SH3_PCREL8_WORD = 0x0009,
1414 // #... | 1423 IMAGE_REL_SH3_PCREL8_LONG = 0x000A,
1415 // #... | 1424 IMAGE_REL_SH3_PCREL12_WORD = 0x000B,
1416 // #... | 1425 IMAGE_REL_SH3_STARTOF_SECTION = 0x000C,
1417 // #... | 1426 IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D,
1418 <
> 1427 IMAGE_REL_SH3_SECTION = 0x000E,
1419 // #... | 1428 IMAGE_REL_SH3_SECREL = 0x000F,
1420 <
> 1429 IMAGE_REL_SH3_DIRECT32_NB = 0x0010,
1421 // #endif | 1430 IMAGE_REL_SH3_GPREL4_LONG = 0x0011,
1422 <
> 1431 IMAGE_REL_SH3_TOKEN = 0x0012,
1423 // ... | 1432 IMAGE_REL_SHM_PCRELPT = 0x0013,
1424 <
> 1433 IMAGE_REL_SHM_REFLO = 0x0014,
1425 // ... | 1434 IMAGE_REL_SHM_REFHALF = 0x0015,
1426 <
> 1435 IMAGE_REL_SHM_RELLO = 0x0016,
1427 // ... | 1436 IMAGE_REL_SHM_RELHALF = 0x0017,
1428 <
> 1437 IMAGE_REL_SHM_PAIR = 0x0018,
1429 // ... | 1438 IMAGE_REL_SHM_NOMODE = 0x8000
1430 | 1439 }
1431 // ... <
1432 | 1440
> 1441 enum : WORD {
1433 // ... | 1442 IMAGE_REL_M32R_ABSOLUTE = 0x0000,
1434 <
> 1443 IMAGE_REL_M32R_ADDR32 = 0x0001,
1435 // ... | 1444 IMAGE_REL_M32R_ADDR32NB = 0x0002,
1436 <
> 1445 IMAGE_REL_M32R_ADDR24 = 0x0003,
1437 // ... | 1446 IMAGE_REL_M32R_GPREL16 = 0x0004,
1438 <
> 1447 IMAGE_REL_M32R_PCREL24 = 0x0005,
1439 // ... | 1448 IMAGE_REL_M32R_PCREL16 = 0x0006,
1440 <
> 1449 IMAGE_REL_M32R_PCREL8 = 0x0007,
1441 // ... | 1450 IMAGE_REL_M32R_REFHALF = 0x0008,
1442 <
> 1451 IMAGE_REL_M32R_REFHI = 0x0009,
1443 // ... | 1452 IMAGE_REL_M32R_REFLO = 0x000A,
1444 <
> 1453 IMAGE_REL_M32R_PAIR = 0x000B,
1445 // ... | 1454 IMAGE_REL_M32R_SECTION = 0x000C,
1446 <
> 1455 IMAGE_REL_M32R_SECREL = 0x000D,
1447 // ... | 1456 IMAGE_REL_M32R_TOKEN = 0x000E
1448 | 1457 }
1449 // #endif // defined(_MPPC_) <
1450 | 1458
> 1459 enum : WORD {
1451 // #if !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_ | 1460 IMAGE_REL_MIPS_ABSOLUTE = 0x0000,
1452 <
> 1461 IMAGE_REL_MIPS_REFHALF = 0x0001,
1453 // ... | 1462 IMAGE_REL_MIPS_REFWORD = 0x0002,
1454 // #if defined(_M_IA64) // winnt | 1463 IMAGE_REL_MIPS_JMPADDR = 0x0003,
1455 // #... | 1464 IMAGE_REL_MIPS_REFHI = 0x0004,
1456 // #endif // winnt | 1465 IMAGE_REL_MIPS_REFLO = 0x0005,
1457 <
> 1466 IMAGE_REL_MIPS_GPREL = 0x0006,
1458 // #if defined(_M_IA64) | 1467 IMAGE_REL_MIPS_LITERAL = 0x0007,
1459 // #... | 1468 IMAGE_REL_MIPS_SECTION = 0x000A,
1460 // #else | 1469 IMAGE_REL_MIPS_SECREL = 0x000B,
1461 // ... | 1470 IMAGE_REL_MIPS_SECRELLO = 0x000C,
1462 // #endif | 1471 IMAGE_REL_MIPS_SECRELHI = 0x000D,
1463 <
> 1472 IMAGE_REL_MIPS_JMPADDR16 = 0x0010,
1464 // #... | 1473 IMAGE_REL_MIPS_REFWORDNB = 0x0022,
1465 // #... | 1474 IMAGE_REL_MIPS_PAIR = 0x0025
1466 | 1475 }
1467 // #endif // !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && de <
1468 | 1476
1469 // #ifdef _IA64_ <
1470 | 1477
> 1478 enum : WORD {
> 1479 IMAGE_REL_ALPHA_ABSOLUTE,
1471 // #if !defined(RC_INVOKED) | 1480 IMAGE_REL_ALPHA_REFLONG,
1472 <
1473 // #... <
1474 <
1475 // #... <
1476 // #... <
1477 // #... <
1478 // #... <
1479 // #... <
1480 // #... <
1481 <
1482 // #... <
1483 // #... <
1484 <
> 1481 IMAGE_REL_ALPHA_REFQUAD,
> 1482 IMAGE_REL_ALPHA_GPREL32,
> 1483 IMAGE_REL_ALPHA_LITERAL,
> 1484 IMAGE_REL_ALPHA_LITUSE,
> 1485 IMAGE_REL_ALPHA_GPDISP,
> 1486 IMAGE_REL_ALPHA_BRADDR,
> 1487 IMAGE_REL_ALPHA_HINT,
> 1488 IMAGE_REL_ALPHA_INLINE_REFLONG,
> 1489 IMAGE_REL_ALPHA_REFHI,
> 1490 IMAGE_REL_ALPHA_REFLO,
> 1491 IMAGE_REL_ALPHA_PAIR,
> 1492 IMAGE_REL_ALPHA_MATCH,
> 1493 IMAGE_REL_ALPHA_SECTION,
1485 // #endif // !defined(RC_INVOKED) | 1494 IMAGE_REL_ALPHA_SECREL,
> 1495 IMAGE_REL_ALPHA_REFLONGNB,
> 1496 IMAGE_REL_ALPHA_SECRELLO,
> 1497 IMAGE_REL_ALPHA_SECRELHI // = 18
1486 | 1498 }
1487 // ... <
1488 | 1499
1489 // ... <
1490 <
1491 // ... | 1500 enum : WORD {
> 1501 IMAGE_REL_PPC_ABSOLUTE,
> 1502 IMAGE_REL_PPC_ADDR64,
> 1503 IMAGE_REL_PPC_ADDR32,
> 1504 IMAGE_REL_PPC_ADDR24,
> 1505 IMAGE_REL_PPC_ADDR16,
> 1506 IMAGE_REL_PPC_ADDR14,
> 1507 IMAGE_REL_PPC_REL24,
> 1508 IMAGE_REL_PPC_REL14,
> 1509 IMAGE_REL_PPC_TOCREL16,
> 1510 IMAGE_REL_PPC_TOCREL14,
> 1511 IMAGE_REL_PPC_ADDR32NB,
> 1512 IMAGE_REL_PPC_SECREL,
> 1513 IMAGE_REL_PPC_SECTION,
> 1514 IMAGE_REL_PPC_IFGLUE,
> 1515 IMAGE_REL_PPC_IMGLUE,
> 1516 IMAGE_REL_PPC_SECREL16,
> 1517 IMAGE_REL_PPC_REFHI,
> 1518 IMAGE_REL_PPC_REFLO,
> 1519 IMAGE_REL_PPC_PAIR // = 18
1492 | 1520 }
1493 // ... <
1494 | 1521
1495 // ... | 1522 // ???
1496 <
1497 // ... <
1498 <
1499 // ... <
1500 <
1501 // ... <
1502 <
1503 // ... <
1504 <
1505 // ... <
1506 <
1507 // ... <
1508 <
1509 // ... <
1510 <
1511 // ... <
1512 <
1513 // ... <
1514 <
> 1523 const IMAGE_REL_PPC_TYPEMASK = 0x00FF;
1515 // ... | 1524 const IMAGE_REL_PPC_NEG = 0x0100;
1516 <
> 1525 const IMAGE_REL_PPC_BRTAKEN = 0x0200;
1517 // ... | 1526 const IMAGE_REL_PPC_BRNTAKEN = 0x0400;
> 1527 const IMAGE_REL_PPC_TOCDEFN = 0x0800;
1518 | 1528
1519 // ... <
1520 <
1521 // ... <
1522 <
1523 // ... <
1524 <
1525 // ... <
1526 <
1527 // ... <
1528 <
1529 // ... <
1530 <
1531 // ... <
1532 <
1533 // ... <
1534 <
1535 // ... <
1536 <
1537 // ... <
1538 <
1539 // ... <
1540 <
1541 // #endif // _IA64_ <
1542 <
1543 // #ifdef _IA64_ <
1544 <
1545 // ... <
1546 <
1547 // #endif // _IA64_ <
1548 <
1549 enum : uint { EXCEPTION_NONCONTINUABLE = 0x1 } <
1550 enum : uint { EXCEPTION_MAXIMUM_PARAMETERS = 15 } <
1551 <
1552 struct _EXCEPTION_RECORD { <
1553 DWORD ExceptionCode; <
1554 DWORD ExceptionFlags; <
1555 _EXCEPTION_RECORD *ExceptionRecord; <
1556 PVOID ExceptionAddress; <
1557 DWORD NumberParameters; <
1558 ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; <
1559 } <
1560 alias _EXCEPTION_RECORD EXCEPTION_RECORD; <
1561 <
1562 alias EXCEPTION_RECORD* PEXCEPTION_RECORD; <
1563 <
1564 struct _EXCEPTION_RECORD32 { <
1565 DWORD ExceptionCode; <
1566 DWORD ExceptionFlags; <
1567 DWORD ExceptionRecord; <
1568 DWORD ExceptionAddress; <
1569 DWORD NumberParameters; <
1570 DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; <
1571 } <
1572 alias _EXCEPTION_RECORD32 EXCEPTION_RECORD32; <
1573 alias _EXCEPTION_RECORD32* PEXCEPTION_RECORD32; <
1574 <
1575 struct _EXCEPTION_RECORD64 { <
1576 DWORD ExceptionCode; <
1577 DWORD ExceptionFlags; <
1578 DWORD64 ExceptionRecord; <
1579 DWORD64 ExceptionAddress; <
1580 DWORD NumberParameters; <
1581 DWORD __unusedAlignment; <
1582 DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; <
1583 } <
1584 alias _EXCEPTION_RECORD64 EXCEPTION_RECORD64; <
1585 alias _EXCEPTION_RECORD64* PEXCEPTION_RECORD64; <
1586 <
1587 struct _EXCEPTION_POINTERS { <
1588 PEXCEPTION_RECORD ExceptionRecord; <
1589 PCONTEXT ContextRecord; <
1590 } <
1591 alias _EXCEPTION_POINTERS EXCEPTION_POINTERS; <
1592 alias _EXCEPTION_POINTERS* PEXCEPTION_POINTERS; <
1593 <
1594 alias PVOID PACCESS_TOKEN; <
1595 alias PVOID PSECURITY_DESCRIPTOR; <
1596 alias PVOID PSID; <
1597 <
1598 alias DWORD ACCESS_MASK; <
1599 alias ACCESS_MASK* PACCESS_MASK; <
1600 <
1601 enum : uint { DELETE = 0x00010000 } <
1602 enum : uint { READ_CONTROL = 0x00020000 } <
1603 enum : uint { WRITE_DAC = 0x00040000 } <
1604 enum : uint { WRITE_OWNER = 0x00080000 } <
1605 enum : uint { SYNCHRONIZE = 0x00100000 } <
1606 <
1607 enum : uint { STANDARD_RIGHTS_REQUIRED = 0x000F0000 } <
1608 <
1609 enum : uint { STANDARD_RIGHTS_READ = READ_CONTROL } <
1610 enum : uint { STANDARD_RIGHTS_WRITE = READ_CONTROL } <
1611 enum : uint { STANDARD_RIGHTS_EXECUTE = READ_CONTROL } <
1612 <
1613 enum : uint { STANDARD_RIGHTS_ALL = 0x001F0000 } <
1614 <
1615 enum : uint { SPECIFIC_RIGHTS_ALL = 0x0000FFFF } <
1616 <
1617 enum : uint { ACCESS_SYSTEM_SECURITY = 0x01000000 } <
1618 <
1619 enum : uint { MAXIMUM_ALLOWED = 0x02000000 } <
1620 <
1621 enum : uint { GENERIC_READ = 0x80000000 } <
1622 enum : uint { GENERIC_WRITE = 0x40000000 } <
1623 enum : uint { GENERIC_EXECUTE = 0x20000000 } <
1624 enum : uint { GENERIC_ALL = 0x10000000 } <
1625 <
1626 struct _GENERIC_MAPPING { <
1627 ACCESS_MASK GenericRead; <
1628 ACCESS_MASK GenericWrite; <
1629 ACCESS_MASK GenericExecute; <
1630 ACCESS_MASK GenericAll; <
1631 } <
1632 alias _GENERIC_MAPPING GENERIC_MAPPING; <
1633 <
1634 alias GENERIC_MAPPING* PGENERIC_MAPPING; <
1635 <
1636 align(4): <
1637 <
1638 struct _LUID_AND_ATTRIBUTES { <
1639 LUID Luid; <
1640 DWORD Attributes; <
1641 } <
1642 alias _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES; <
1643 alias _LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES; <
1644 <
1645 alias LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; <
1646 alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY; <
1647 <
1648 align: <
1649 <
1650 // #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED <
1651 // #define SID_IDENTIFIER_AUTHORITY_DEFINED <
1652 struct _SID_IDENTIFIER_AUTHORITY { <
1653 BYTE Value[6]; <
1654 } <
1655 alias _SID_IDENTIFIER_AUTHORITY SID_IDENTIFIER_AUTHORITY; <
1656 alias _SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY; <
1657 <
1658 // #endif <
1659 <
1660 // #ifndef SID_DEFINED <
1661 // #define SID_DEFINED <
1662 struct _SID { <
1663 BYTE Revision; <
1664 BYTE SubAuthorityCount; <
1665 SID_IDENTIFIER_AUTHORITY IdentifierAuthority; <
1666 // #ifdef MIDL_PASS <
1667 // ... <
1668 // #else // MIDL_PASS <
1669 DWORD SubAuthority[ANYSIZE_ARRAY]; <
1670 // #endif // MIDL_PASS <
1671 } <
1672 alias _SID SID; <
1673 alias _SID* PISID; <
1674 <
1675 // #endif <
1676 <
1677 enum : uint { SID_REVISION = 1 } <
1678 enum : uint { SID_MAX_SUB_AUTHORITIES = 15 } <
1679 enum : uint { SID_RECOMMENDED_SUB_AUTHORITIES = 1 } <
1680 <
1681 // #ifndef MIDL_PASS <
1682 const uint SECURITY_MAX_SID_SIZE = SID.sizeof - DWORD.sizeof + (SID_MAX_SUB_AUTH <
1683 // #endif // MIDL_PASS <
1684 <
1685 alias int _SID_NAME_USE; <
1686 enum { 1529 enum {
1687 SidTypeUser = 1, | 1530 IMAGE_REL_BASED_ABSOLUTE,
1688 SidTypeGroup, | 1531 IMAGE_REL_BASED_HIGH,
1689 SidTypeDomain, | 1532 IMAGE_REL_BASED_LOW,
1690 SidTypeAlias, | 1533 IMAGE_REL_BASED_HIGHLOW,
1691 SidTypeWellKnownGroup, | 1534 IMAGE_REL_BASED_HIGHADJ,
1692 SidTypeDeletedAccount, | 1535 IMAGE_REL_BASED_MIPS_JMPADDR
1693 SidTypeInvalid, <
> 1536 }
1694 SidTypeUnknown, | 1537 // End of constants documented in pecoff.doc
1695 SidTypeComputer, <
1696 } | 1538
1697 alias _SID_NAME_USE SID_NAME_USE; <
1698 alias _SID_NAME_USE* PSID_NAME_USE; <
> 1539 const size_t IMAGE_ARCHIVE_START_SIZE = 8;
1699 | 1540
> 1541 const TCHAR[]
> 1542 IMAGE_ARCHIVE_START = "!<arch>\n",
1700 struct _SID_AND_ATTRIBUTES { | 1543 IMAGE_ARCHIVE_END = "`\n",
1701 PSID Sid; | 1544 IMAGE_ARCHIVE_PAD = "\n",
1702 DWORD Attributes; | 1545 IMAGE_ARCHIVE_LINKER_MEMBER = "/ ",
> 1546 IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// ";
1703 } | 1547
1704 alias _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES; <
1705 alias _SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES; | 1548 const IMAGE_ORDINAL_FLAG32 = 0x80000000;
1706 | 1549
1707 alias SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; | 1550 ulong IMAGE_ORDINAL64(ulong Ordinal) { return Ordinal & 0xFFFF; }
1708 alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY; | 1551 uint IMAGE_ORDINAL32(uint Ordinal) { return Ordinal & 0xFFFF; }
1709 | 1552
1710 // #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} | 1553 bool IMAGE_SNAP_BY_ORDINAL32(uint Ordinal) {
1711 // #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} | 1554 return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0;
1712 // #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} <
1713 // #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} <
1714 // #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} <
1715 // #define SECURITY_RESOURCE_MANAGER_AUTHORITY {0,0,0,0,0,9} <
1716 | 1555 }
1717 enum : uint { SECURITY_NULL_RID = 0x00000000 } <
1718 enum : uint { SECURITY_WORLD_RID = 0x00000000 } <
1719 enum : uint { SECURITY_LOCAL_RID = 0x00000000 } <
1720 | 1556
1721 enum : uint { SECURITY_CREATOR_OWNER_RID = 0x00000000 } <
1722 enum : uint { SECURITY_CREATOR_GROUP_RID = 0x00000001 } <
> 1557 const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000;
1723 | 1558
1724 enum : uint { SECURITY_CREATOR_OWNER_SERVER_RID = 0x00000002 } <
1725 enum : uint { SECURITY_CREATOR_GROUP_SERVER_RID = 0x00000003 } <
> 1559 bool IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal) {
> 1560 return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0;
1726 | 1561 }
1727 // #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} <
1728 | 1562
> 1563 // ???
> 1564 const IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000;
> 1565 const IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000;
> 1566
> 1567 enum : DWORD {
> 1568 IMAGE_DEBUG_TYPE_UNKNOWN,
> 1569 IMAGE_DEBUG_TYPE_COFF,
> 1570 IMAGE_DEBUG_TYPE_CODEVIEW,
> 1571 IMAGE_DEBUG_TYPE_FPO,
1729 enum : uint { SECURITY_DIALUP_RID = 0x00000001 } | 1572 IMAGE_DEBUG_TYPE_MISC,
1730 enum : uint { SECURITY_NETWORK_RID = 0x00000002 } | 1573 IMAGE_DEBUG_TYPE_EXCEPTION,
1731 enum : uint { SECURITY_BATCH_RID = 0x00000003 } | 1574 IMAGE_DEBUG_TYPE_FIXUP,
1732 enum : uint { SECURITY_INTERACTIVE_RID = 0x00000004 } | 1575 IMAGE_DEBUG_TYPE_OMAP_TO_SRC,
1733 enum : uint { SECURITY_SERVICE_RID = 0x00000006 } | 1576 IMAGE_DEBUG_TYPE_OMAP_FROM_SRC,
1734 enum : uint { SECURITY_ANONYMOUS_LOGON_RID = 0x00000007 } | 1577 IMAGE_DEBUG_TYPE_BORLAND // = 9
1735 enum : uint { SECURITY_PROXY_RID = 0x00000008 } <
1736 enum : uint { SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x00000009 } <
1737 alias SECURITY_ENTERPRISE_CONTROLLERS_RID SECURITY_SERVER_LOGON_RID; <
1738 enum : uint { SECURITY_PRINCIPAL_SELF_RID = 0x0000000A } <
1739 enum : uint { SECURITY_AUTHENTICATED_USER_RID = 0x0000000B } <
1740 enum : uint { SECURITY_RESTRICTED_CODE_RID = 0x0000000C } <
1741 enum : uint { SECURITY_TERMINAL_SERVER_RID = 0x0000000D } <
1742 enum : uint { SECURITY_REMOTE_LOGON_RID = 0x0000000E } <
1743 | 1578 }
1744 enum : uint { SECURITY_LOGON_IDS_RID = 0x00000005 } <
1745 enum : uint { SECURITY_LOGON_IDS_RID_COUNT = 3 } <
1746 | 1579
1747 enum : uint { SECURITY_LOCAL_SYSTEM_RID = 0x00000012 } <
1748 enum : uint { SECURITY_LOCAL_SERVICE_RID = 0x00000013 } <
1749 enum : uint { SECURITY_NETWORK_SERVICE_RID = 0x00000014 } <
> 1580 enum : ubyte {
> 1581 FRAME_FPO,
> 1582 FRAME_TRAP,
> 1583 FRAME_TSS,
> 1584 FRAME_NONFPO
1750 | 1585 }
1751 enum : uint { SECURITY_NT_NON_UNIQUE = 0x00000015 } <
1752 enum : uint { SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT = 3 } <
1753 | 1586
1754 enum : uint { SECURITY_BUILTIN_DOMAIN_RID = 0x00000020 } <
> 1587 // ???
> 1588 const IMAGE_DEBUG_MISC_EXENAME = 1;
1755 | 1589
1756 enum : uint { DOMAIN_USER_RID_ADMIN = 0x000001F4 } <
1757 enum : uint { DOMAIN_USER_RID_GUEST = 0x000001F5 } <
1758 enum : uint { DOMAIN_USER_RID_KRBTGT = 0x000001F6 } <
> 1590 // ???
> 1591 const N_BTMASK = 0x000F;
> 1592 const N_TMASK = 0x0030;
> 1593 const N_TMASK1 = 0x00C0;
> 1594 const N_TMASK2 = 0x00F0;
> 1595 const N_BTSHFT = 4;
> 1596 const N_TSHIFT = 2;
1759 | 1597
> 1598 const int
> 1599 IS_TEXT_UNICODE_ASCII16 = 0x0001,
> 1600 IS_TEXT_UNICODE_STATISTICS = 0x0002,
> 1601 IS_TEXT_UNICODE_CONTROLS = 0x0004,
> 1602 IS_TEXT_UNICODE_SIGNATURE = 0x0008,
1760 enum : uint { DOMAIN_GROUP_RID_ADMINS = 0x00000200 } | 1603 IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010,
1761 enum : uint { DOMAIN_GROUP_RID_USERS = 0x00000201 } | 1604 IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020,
1762 enum : uint { DOMAIN_GROUP_RID_GUESTS = 0x00000202 } | 1605 IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040,
1763 enum : uint { DOMAIN_GROUP_RID_COMPUTERS = 0x00000203 } | 1606 IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080,
1764 enum : uint { DOMAIN_GROUP_RID_CONTROLLERS = 0x00000204 } | 1607 IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100,
1765 enum : uint { DOMAIN_GROUP_RID_CERT_ADMINS = 0x00000205 } | 1608 IS_TEXT_UNICODE_ODD_LENGTH = 0x0200,
1766 enum : uint { DOMAIN_GROUP_RID_SCHEMA_ADMINS = 0x00000206 } | 1609 IS_TEXT_UNICODE_NULL_BYTES = 0x1000,
1767 enum : uint { DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 0x00000207 } | 1610 IS_TEXT_UNICODE_UNICODE_MASK = 0x000F,
1768 enum : uint { DOMAIN_GROUP_RID_POLICY_ADMINS = 0x00000208 } | 1611 IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0,
> 1612 IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00,
> 1613 IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000;
1769 | 1614
1770 enum : uint { DOMAIN_ALIAS_RID_ADMINS = 0x00000220 } <
1771 enum : uint { DOMAIN_ALIAS_RID_USERS = 0x00000221 } <
1772 enum : uint { DOMAIN_ALIAS_RID_GUESTS = 0x00000222 } | 1615 const DWORD
1773 enum : uint { DOMAIN_ALIAS_RID_POWER_USERS = 0x00000223 } | 1616 SERVICE_KERNEL_DRIVER = 0x0001,
1774 <
> 1617 SERVICE_FILE_SYSTEM_DRIVER = 0x0002,
1775 enum : uint { DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x00000224 } | 1618 SERVICE_ADAPTER = 0x0004,
1776 enum : uint { DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x00000225 } | 1619 SERVICE_RECOGNIZER_DRIVER = 0x0008,
1777 enum : uint { DOMAIN_ALIAS_RID_PRINT_OPS = 0x00000226 } | 1620 SERVICE_WIN32_OWN_PROCESS = 0x0010,
1778 enum : uint { DOMAIN_ALIAS_RID_BACKUP_OPS = 0x00000227 } | 1621 SERVICE_WIN32_SHARE_PROCESS = 0x0020,
> 1622 SERVICE_INTERACTIVE_PROCESS = 0x0100,
> 1623 SERVICE_DRIVER = 0x000B,
> 1624 SERVICE_WIN32 = 0x0030,
> 1625 SERVICE_TYPE_ALL = 0x013F;
1779 | 1626
1780 enum : uint { DOMAIN_ALIAS_RID_REPLICATOR = 0x00000228 } <
1781 enum : uint { DOMAIN_ALIAS_RID_RAS_SERVERS = 0x00000229 } <
1782 enum : uint { DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x0000022A } <
1783 enum : uint { DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x0000022B } <
1784 enum : uint { DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x0000022C } | 1627 enum : DWORD {
> 1628 SERVICE_BOOT_START = 0,
> 1629 SERVICE_SYSTEM_START = 1,
> 1630 SERVICE_AUTO_START = 2,
> 1631 SERVICE_DEMAND_START = 3,
> 1632 SERVICE_DISABLED = 4
1785 | 1633 }
1786 const LUID SYSTEM_LUID = {LowPart: 0x3e7, HighPart: 0x0}; <
1787 const LUID ANONYMOUS_LOGON_LUID = {LowPart: 0x3e6, HighPart: 0x0}; <
1788 const LUID LOCALSERVICE_LUID = {LowPart: 0x3e5, HighPart: 0x0}; <
1789 const LUID NETWORKSERVICE_LUID = {LowPart: 0x3e4, HighPart: 0x0}; <
1790 | 1634
1791 enum : uint { SE_GROUP_MANDATORY = 0x00000001 } <
1792 enum : uint { SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 } | 1635 enum : DWORD {
1793 enum : uint { SE_GROUP_ENABLED = 0x00000004 } | 1636 SERVICE_ERROR_IGNORE = 0,
1794 enum : uint { SE_GROUP_OWNER = 0x00000008 } | 1637 SERVICE_ERROR_NORMAL = 1,
1795 enum : uint { SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 } | 1638 SERVICE_ERROR_SEVERE = 2,
1796 enum : uint { SE_GROUP_LOGON_ID = 0xC0000000 } | 1639 SERVICE_ERROR_CRITICAL = 3
1797 enum : uint { SE_GROUP_RESOURCE = 0x20000000 } <
1798 | 1640 }
1799 enum : uint { ACL_REVISION = 2 } <
1800 enum : uint { ACL_REVISION_DS = 4 } <
1801 | 1641
> 1642
> 1643 const uint
> 1644 SE_OWNER_DEFAULTED = 0x0001,
1802 enum : uint { ACL_REVISION1 = 1 } | 1645 SE_GROUP_DEFAULTED = 0x0002,
1803 enum { MIN_ACL_REVISION = 2 } | 1646 SE_DACL_PRESENT = 0x0004,
1804 enum : uint { ACL_REVISION2 = 2 } | 1647 SE_DACL_DEFAULTED = 0x0008,
1805 enum : uint { ACL_REVISION3 = 3 } | 1648 SE_SACL_PRESENT = 0x0010,
1806 enum : uint { ACL_REVISION4 = 4 } | 1649 SE_SACL_DEFAULTED = 0x0020,
1807 alias ACL_REVISION4 MAX_ACL_REVISION; | 1650 SE_DACL_AUTO_INHERIT_REQ = 0x0100,
> 1651 SE_SACL_AUTO_INHERIT_REQ = 0x0200,
> 1652 SE_DACL_AUTO_INHERITED = 0x0400,
> 1653 SE_SACL_AUTO_INHERITED = 0x0800,
> 1654 SE_DACL_PROTECTED = 0x1000,
> 1655 SE_SACL_PROTECTED = 0x2000,
> 1656 SE_SELF_RELATIVE = 0x8000;
1808 | 1657
1809 struct _ACL { <
1810 BYTE AclRevision; <
1811 BYTE Sbz1; <
> 1658 enum SECURITY_IMPERSONATION_LEVEL {
> 1659 SecurityAnonymous,
> 1660 SecurityIdentification,
> 1661 SecurityImpersonation,
> 1662 SecurityDelegation
> 1663 }
> 1664 alias SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL;
> 1665
> 1666 alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;
> 1667 alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE;
> 1668
> 1669 const size_t SECURITY_DESCRIPTOR_MIN_LENGTH = 20;
> 1670
> 1671 const DWORD
> 1672 SECURITY_DESCRIPTOR_REVISION = 1,
> 1673 SECURITY_DESCRIPTOR_REVISION1 = 1;
> 1674
> 1675 const DWORD
> 1676 SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001,
> 1677 SE_PRIVILEGE_ENABLED = 0x00000002,
> 1678 SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000;
> 1679
> 1680 const DWORD PRIVILEGE_SET_ALL_NECESSARY = 1;
> 1681
> 1682 const SECURITY_IMPERSONATION_LEVEL
> 1683 SECURITY_MAX_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.Security
> 1684 DEFAULT_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.Security
> 1685
> 1686 const BOOLEAN
> 1687 SECURITY_DYNAMIC_TRACKING = true,
> 1688 SECURITY_STATIC_TRACKING = false;
> 1689
> 1690 // also in ddk/ntifs.h
> 1691 const DWORD
> 1692 TOKEN_ASSIGN_PRIMARY = 0x0001,
> 1693 TOKEN_DUPLICATE = 0x0002,
> 1694 TOKEN_IMPERSONATE = 0x0004,
> 1695 TOKEN_QUERY = 0x0008,
> 1696 TOKEN_QUERY_SOURCE = 0x0010,
> 1697 TOKEN_ADJUST_PRIVILEGES = 0x0020,
> 1698 TOKEN_ADJUST_GROUPS = 0x0040,
> 1699 TOKEN_ADJUST_DEFAULT = 0x0080,
> 1700
> 1701 TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED
> 1702 | TOKEN_ASSIGN_PRIMARY
> 1703 | TOKEN_DUPLICATE
> 1704 | TOKEN_IMPERSONATE
> 1705 | TOKEN_QUERY
> 1706 | TOKEN_QUERY_SOURCE
> 1707 | TOKEN_ADJUST_PRIVILEGES
> 1708 | TOKEN_ADJUST_GROUPS
> 1709 | TOKEN_ADJUST_DEFAULT,
> 1710 TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY,
> 1711 TOKEN_WRITE = STANDARD_RIGHTS_WRITE
> 1712 | TOKEN_ADJUST_PRIVILEGES
> 1713 | TOKEN_ADJUST_GROUPS
> 1714 | TOKEN_ADJUST_DEFAULT,
> 1715 TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE;
> 1716
> 1717 const size_t TOKEN_SOURCE_LENGTH = 8;
> 1718 // end ddk/ntifs.h
> 1719
1812 WORD AclSize; | 1720 enum : DWORD {
> 1721 DLL_PROCESS_DETACH,
> 1722 DLL_PROCESS_ATTACH,
> 1723 DLL_THREAD_ATTACH,
> 1724 DLL_THREAD_DETACH
> 1725 }
> 1726
1813 WORD AceCount; | 1727 enum : DWORD {
> 1728 DBG_CONTINUE = 0x00010002,
> 1729 DBG_TERMINATE_THREAD = 0x40010003,
> 1730 DBG_TERMINATE_PROCESS = 0x40010004,
> 1731 DBG_CONTROL_C = 0x40010005,
> 1732 DBG_CONTROL_BREAK = 0x40010008,
> 1733 DBG_EXCEPTION_NOT_HANDLED = 0x80010001
> 1734 }
> 1735
1814 WORD Sbz2; | 1736 enum : DWORD {
> 1737 TAPE_ABSOLUTE_POSITION,
> 1738 TAPE_LOGICAL_POSITION,
> 1739 TAPE_PSEUDO_LOGICAL_POSITION
1815 } | 1740 }
1816 alias _ACL ACL; <
1817 | 1741
1818 alias ACL* PACL; <
> 1742 enum : DWORD {
> 1743 TAPE_REWIND,
> 1744 TAPE_ABSOLUTE_BLOCK,
> 1745 TAPE_LOGICAL_BLOCK,
> 1746 TAPE_PSEUDO_LOGICAL_BLOCK,
> 1747 TAPE_SPACE_END_OF_DATA,
> 1748 TAPE_SPACE_RELATIVE_BLOCKS,
> 1749 TAPE_SPACE_FILEMARKS,
> 1750 TAPE_SPACE_SEQUENTIAL_FMKS,
> 1751 TAPE_SPACE_SETMARKS,
> 1752 TAPE_SPACE_SEQUENTIAL_SMKS
1819 | 1753 }
> 1754
> 1755 const DWORD
> 1756 TAPE_DRIVE_FIXED = 0x00000001,
> 1757 TAPE_DRIVE_SELECT = 0x00000002,
> 1758 TAPE_DRIVE_INITIATOR = 0x00000004,
> 1759 TAPE_DRIVE_ERASE_SHORT = 0x00000010,
> 1760 TAPE_DRIVE_ERASE_LONG = 0x00000020,
> 1761 TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040,
> 1762 TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080,
> 1763 TAPE_DRIVE_TAPE_CAPACITY = 0x00000100,
> 1764 TAPE_DRIVE_TAPE_REMAINING = 0x00000200,
> 1765 TAPE_DRIVE_FIXED_BLOCK = 0x00000400,
> 1766 TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800,
> 1767 TAPE_DRIVE_WRITE_PROTECT = 0x00001000,
> 1768 TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000,
> 1769 TAPE_DRIVE_ECC = 0x00010000,
> 1770 TAPE_DRIVE_COMPRESSION = 0x00020000,
> 1771 TAPE_DRIVE_PADDING = 0x00040000,
> 1772 TAPE_DRIVE_REPORT_SMKS = 0x00080000,
> 1773 TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000,
> 1774 TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000,
> 1775 TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000,
> 1776 TAPE_DRIVE_EJECT_MEDIA = 0x01000000,
> 1777 TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000,
> 1778 TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000,
> 1779 TAPE_DRIVE_RESERVED_BIT = 0x80000000;
> 1780
> 1781 const DWORD
> 1782 TAPE_DRIVE_LOAD_UNLOAD = 0x80000001,
> 1783 TAPE_DRIVE_TENSION = 0x80000002,
> 1784 TAPE_DRIVE_LOCK_UNLOCK = 0x80000004,
> 1785 TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008,
> 1786 TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010,
> 1787 TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020,
> 1788 TAPE_DRIVE_TENSION_IMMED = 0x80000040,
> 1789 TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080,
> 1790 TAPE_DRIVE_SET_ECC = 0x80000100,
> 1791 TAPE_DRIVE_SET_COMPRESSION = 0x80000200,
> 1792 TAPE_DRIVE_SET_PADDING = 0x80000400,
> 1793 TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800,
> 1794 TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000,
> 1795 TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000,
> 1796 TAPE_DRIVE_LOGICAL_BLK = 0x80004000,
> 1797 TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000,
> 1798 TAPE_DRIVE_END_OF_DATA = 0x80010000,
> 1799 TAPE_DRIVE_RELATIVE_BLKS = 0x80020000,
> 1800 TAPE_DRIVE_FILEMARKS = 0x80040000,
> 1801 TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000,
> 1802 TAPE_DRIVE_SETMARKS = 0x80100000,
> 1803 TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000,
> 1804 TAPE_DRIVE_REVERSE_POSITION = 0x80400000,
> 1805 TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000,
> 1806 TAPE_DRIVE_WRITE_SETMARKS = 0x81000000,
> 1807 TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000,
> 1808 TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000,
> 1809 TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000,
> 1810 TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000,
> 1811 TAPE_DRIVE_FORMAT = 0xA0000000,
> 1812 TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000,
> 1813 TAPE_DRIVE_HIGH_FEATURES = 0x80000000;
> 1814
> 1815 enum : DWORD {
> 1816 TAPE_FIXED_PARTITIONS = 0,
> 1817 TAPE_SELECT_PARTITIONS = 1,
> 1818 TAPE_INITIATOR_PARTITIONS = 2
> 1819 }
> 1820
> 1821 enum : DWORD {
> 1822 TAPE_SETMARKS,
> 1823 TAPE_FILEMARKS,
> 1824 TAPE_SHORT_FILEMARKS,
> 1825 TAPE_LONG_FILEMARKS
> 1826 }
> 1827
> 1828 enum : DWORD {
> 1829 TAPE_ERASE_SHORT,
> 1830 TAPE_ERASE_LONG
> 1831 }
> 1832
> 1833 enum : DWORD {
> 1834 TAPE_LOAD,
> 1835 TAPE_UNLOAD,
> 1836 TAPE_TENSION,
> 1837 TAPE_LOCK,
> 1838 TAPE_UNLOCK,
> 1839 TAPE_FORMAT
> 1840 }
> 1841
> 1842 enum : ULONG32 {
> 1843 VER_PLATFORM_WIN32s,
> 1844 VER_PLATFORM_WIN32_WINDOWS,
> 1845 VER_PLATFORM_WIN32_NT
> 1846 }
> 1847
> 1848 enum : UCHAR {
> 1849 VER_NT_WORKSTATION = 1,
> 1850 VER_NT_DOMAIN_CONTROLLER,
> 1851 VER_NT_SERVER
> 1852 }
> 1853
> 1854 const USHORT
> 1855 VER_SUITE_SMALLBUSINESS = 0x0001,
> 1856 VER_SUITE_ENTERPRISE = 0x0002,
> 1857 VER_SUITE_BACKOFFICE = 0x0004,
> 1858 VER_SUITE_TERMINAL = 0x0010,
> 1859 VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x0020,
> 1860 VER_SUITE_EMBEDDEDNT = 0x0040,
> 1861 VER_SUITE_DATACENTER = 0x0080,
> 1862 VER_SUITE_SINGLEUSERTS = 0x0100,
> 1863 VER_SUITE_PERSONAL = 0x0200,
> 1864 VER_SUITE_BLADE = 0x0400,
> 1865 VER_SUITE_STORAGE_SERVER = 0x2000,
> 1866 VER_SUITE_COMPUTE_SERVER = 0x4000;
> 1867
> 1868 const ULONG
> 1869 WT_EXECUTEDEFAULT = 0x00000000,
> 1870 WT_EXECUTEINIOTHREAD = 0x00000001,
> 1871 WT_EXECUTEINWAITTHREAD = 0x00000004,
> 1872 WT_EXECUTEONLYONCE = 0x00000008,
> 1873 WT_EXECUTELONGFUNCTION = 0x00000010,
> 1874 WT_EXECUTEINTIMERTHREAD = 0x00000020,
> 1875 WT_EXECUTEINPERSISTENTTHREAD = 0x00000080,
> 1876 WT_TRANSFER_IMPERSONATION = 0x00000100;
> 1877
> 1878 static if (_WIN32_WINNT_ONLY) {
> 1879 static if (_WIN32_WINNT >= 0x500) {
> 1880 const DWORD
> 1881 VER_MINORVERSION = 0x01,
> 1882 VER_MAJORVERSION = 0x02,
> 1883 VER_BUILDNUMBER = 0x04,
> 1884 VER_PLATFORMID = 0x08,
> 1885 VER_SERVICEPACKMINOR = 0x10,
> 1886 VER_SERVICEPACKMAJOR = 0x20,
> 1887 VER_SUITENAME = 0x40,
> 1888 VER_PRODUCT_TYPE = 0x80;
> 1889
> 1890 enum : DWORD {
> 1891 VER_EQUAL = 1,
> 1892 VER_GREATER,
> 1893 VER_GREATER_EQUAL,
> 1894 VER_LESS,
> 1895 VER_LESS_EQUAL,
> 1896 VER_AND,
> 1897 VER_OR // = 7
> 1898 }
> 1899 }
> 1900
> 1901 static if (_WIN32_WINNT >= 0x501) {
> 1902 enum : ULONG {
> 1903 ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION =
> 1904 ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION,
> 1905 ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION,
> 1906 ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION,
> 1907 ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION,
> 1908 ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION,
> 1909 ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // =
> 1910 ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES =
> 1911 }
> 1912 }
> 1913 }
> 1914
> 1915 // Macros
> 1916 BYTE BTYPE(BYTE x) { return cast(BYTE) (x & N_BTMASK); }
> 1917 bool ISPTR(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHF
> 1918 bool ISFCN(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSH
> 1919 bool ISARY(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)
> 1920 bool ISTAG(uint x) {
> 1921 return x == IMAGE_SYM_CLASS_STRUCT_TAG
> 1922 || x == IMAGE_SYM_CLASS_UNION_TAG
> 1923 || x == IMAGE_SYM_CLASS_ENUM_TAG;
> 1924 }
> 1925 uint INCREF(uint x) {
> 1926 return ((x & ~N_BTMASK) << N_TSHIFT) | (IMAGE_SYM_DTYPE_POINTER << N_BTS
> 1927 | (x & N_BTMASK);
> 1928 }
> 1929 uint DECREF(uint x) { return ((x >>> N_TSHIFT) & ~N_BTMASK) | (x & N_BTMASK); }
> 1930
> 1931 const DWORD TLS_MINIMUM_AVAILABLE = 64;
> 1932
> 1933 const ULONG
> 1934 IO_REPARSE_TAG_RESERVED_ZERO = 0,
> 1935 IO_REPARSE_TAG_RESERVED_ONE = 1,
> 1936 IO_REPARSE_TAG_RESERVED_RANGE = IO_REPARSE_TAG_RESERVED_ONE,
> 1937 IO_REPARSE_TAG_SYMBOLIC_LINK = IO_REPARSE_TAG_RESERVED_ZERO,
> 1938 IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003,
> 1939 IO_REPARSE_TAG_SYMLINK = 0xA000000C,
> 1940 IO_REPARSE_TAG_VALID_VALUES = 0xE000FFFF;
> 1941
> 1942 /* Although these are semantically boolean, they are documented and
> 1943 * implemented to return ULONG; this behaviour is preserved for compatibili
> 1944 */
> 1945 ULONG IsReparseTagMicrosoft(ULONG x) { return x & 0x80000000; }
> 1946 ULONG IsReparseTagHighLatency(ULONG x) { return x & 0x40000000; }
> 1947 ULONG IsReparseTagNameSurrogate(ULONG x) { return x & 0x20000000; }
> 1948
> 1949 bool IsReparseTagValid(ULONG x) {
> 1950 return !(x & ~IO_REPARSE_TAG_VALID_VALUES) && (x > IO_REPARSE_TAG_RESERV
> 1951 }
> 1952
> 1953 // Doesn't seem to make sense, but anyway....
> 1954 ULONG WT_SET_MAX_THREADPOOL_THREADS(ref ULONG Flags, ushort Limit) {
> 1955 return Flags |= Limit << 16;
> 1956 }
> 1957
> 1958 import win32.basetyps;
> 1959 /* also in win32.basetyps
> 1960 struct GUID {
> 1961 uint Data1;
> 1962 ushort Data2;
> 1963 ushort Data3;
> 1964 ubyte Data4[8];
> 1965 }
> 1966 alias GUID* REFGUID, LPGUID;
> 1967 */
> 1968
> 1969 struct GENERIC_MAPPING {
> 1970 ACCESS_MASK GenericRead;
> 1971 ACCESS_MASK GenericWrite;
> 1972 ACCESS_MASK GenericExecute;
> 1973 ACCESS_MASK GenericAll;
> 1974 }
> 1975 alias GENERIC_MAPPING* PGENERIC_MAPPING;
> 1976
1820 struct _ACE_HEADER { | 1977 struct ACE_HEADER {
1821 BYTE AceType; | 1978 BYTE AceType;
1822 BYTE AceFlags; | 1979 BYTE AceFlags;
1823 WORD AceSize; | 1980 WORD AceSize;
1824 } | 1981 }
1825 alias _ACE_HEADER ACE_HEADER; <
1826 <
1827 alias ACE_HEADER* PACE_HEADER; 1982 alias ACE_HEADER* PACE_HEADER;
1828 1983
1829 enum : uint { ACCESS_MIN_MS_ACE_TYPE = 0x0 } <
1830 enum : uint { ACCESS_ALLOWED_ACE_TYPE = 0x0 } <
1831 enum : uint { ACCESS_DENIED_ACE_TYPE = 0x1 } <
1832 enum : uint { SYSTEM_AUDIT_ACE_TYPE = 0x2 } <
1833 enum : uint { SYSTEM_ALARM_ACE_TYPE = 0x3 } <
1834 enum : uint { ACCESS_MAX_MS_V2_ACE_TYPE = 0x3 } <
1835 <
1836 enum : uint { ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 0x4 } <
1837 enum : uint { ACCESS_MAX_MS_V3_ACE_TYPE = 0x4 } <
1838 <
1839 enum : uint { ACCESS_MIN_MS_OBJECT_ACE_TYPE = 0x5 } <
1840 enum : uint { ACCESS_ALLOWED_OBJECT_ACE_TYPE = 0x5 } <
1841 enum : uint { ACCESS_DENIED_OBJECT_ACE_TYPE = 0x6 } <
1842 enum : uint { SYSTEM_AUDIT_OBJECT_ACE_TYPE = 0x7 } <
1843 enum : uint { SYSTEM_ALARM_OBJECT_ACE_TYPE = 0x8 } <
1844 enum : uint { ACCESS_MAX_MS_OBJECT_ACE_TYPE = 0x8 } <
1845 <
1846 enum : uint { ACCESS_MAX_MS_V4_ACE_TYPE = 0x8 } <
1847 enum : uint { ACCESS_MAX_MS_ACE_TYPE = 0x8 } <
1848 <
1849 enum : uint { ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 0x9 } <
1850 enum : uint { ACCESS_DENIED_CALLBACK_ACE_TYPE = 0xA } <
1851 enum : uint { ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 0xB } <
1852 enum : uint { ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 0xC } <
1853 enum : uint { SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 0xD } <
1854 enum : uint { SYSTEM_ALARM_CALLBACK_ACE_TYPE = 0xE } <
1855 enum : uint { SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 0xF } <
1856 enum : uint { SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 0x10 } <
1857 <
1858 enum : uint { ACCESS_MAX_MS_V5_ACE_TYPE = 0x10 } <
1859 <
1860 enum : uint { OBJECT_INHERIT_ACE = 0x1 } <
1861 enum : uint { CONTAINER_INHERIT_ACE = 0x2 } <
1862 enum : uint { NO_PROPAGATE_INHERIT_ACE = 0x4 } <
1863 enum : uint { INHERIT_ONLY_ACE = 0x8 } <
1864 enum : uint { INHERITED_ACE = 0x10 } <
1865 enum : uint { VALID_INHERIT_FLAGS = 0x1F } <
1866 <
1867 enum : uint { SUCCESSFUL_ACCESS_ACE_FLAG = 0x40 } <
1868 enum : uint { FAILED_ACCESS_ACE_FLAG = 0x80 } <
1869 <
1870 struct _ACCESS_ALLOWED_ACE { | 1984 struct ACCESS_ALLOWED_ACE {
1871 ACE_HEADER Header; | 1985 ACE_HEADER Header;
1872 ACCESS_MASK Mask; | 1986 ACCESS_MASK Mask;
1873 DWORD SidStart; | 1987 DWORD SidStart;
1874 } 1988 }
1875 alias _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE; <
1876 <
1877 alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE; 1989 alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE;
1878 1990
1879 struct _ACCESS_DENIED_ACE { | 1991 struct ACCESS_DENIED_ACE {
1880 ACE_HEADER Header; | 1992 ACE_HEADER Header;
1881 ACCESS_MASK Mask; | 1993 ACCESS_MASK Mask;
1882 DWORD SidStart; | 1994 DWORD SidStart;
1883 } 1995 }
1884 alias _ACCESS_DENIED_ACE ACCESS_DENIED_ACE; <
1885 <
1886 alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE; 1996 alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE;
1887 1997
1888 struct _SYSTEM_AUDIT_ACE { | 1998 struct SYSTEM_AUDIT_ACE {
1889 ACE_HEADER Header; | 1999 ACE_HEADER Header;
1890 ACCESS_MASK Mask; | 2000 ACCESS_MASK Mask;
1891 DWORD SidStart; | 2001 DWORD SidStart;
1892 } 2002 }
1893 alias _SYSTEM_AUDIT_ACE SYSTEM_AUDIT_ACE; | 2003 alias SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
1894 2004
1895 alias SYSTEM_AUDIT_ACE* PSYSTEM_AUDIT_ACE; <
1896 <
1897 struct _SYSTEM_ALARM_ACE { | 2005 struct SYSTEM_ALARM_ACE {
1898 ACE_HEADER Header; | 2006 ACE_HEADER Header;
1899 ACCESS_MASK Mask; | 2007 ACCESS_MASK Mask;
1900 DWORD SidStart; | 2008 DWORD SidStart;
1901 } 2009 }
1902 alias _SYSTEM_ALARM_ACE SYSTEM_ALARM_ACE; <
1903 <
1904 alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE; 2010 alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE;
1905 2011
1906 struct _ACCESS_ALLOWED_OBJECT_ACE { | 2012 struct ACCESS_ALLOWED_OBJECT_ACE {
1907 ACE_HEADER Header; | 2013 ACE_HEADER Header;
1908 ACCESS_MASK Mask; | 2014 ACCESS_MASK Mask;
1909 DWORD Flags; | 2015 DWORD Flags;
1910 GUID ObjectType; | 2016 GUID ObjectType;
1911 GUID InheritedObjectType; | 2017 GUID InheritedObjectType;
1912 DWORD SidStart; | 2018 DWORD SidStart;
1913 } | 2019 }
1914 alias _ACCESS_ALLOWED_OBJECT_ACE ACCESS_ALLOWED_OBJECT_ACE; <
1915 alias _ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE; | 2020 alias ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE;
1916 | 2021
1917 struct _ACCESS_DENIED_OBJECT_ACE { | 2022 struct ACCESS_DENIED_OBJECT_ACE {
1918 ACE_HEADER Header; | 2023 ACE_HEADER Header;
1919 ACCESS_MASK Mask; | 2024 ACCESS_MASK Mask;
1920 DWORD Flags; | 2025 DWORD Flags;
1921 GUID ObjectType; | 2026 GUID ObjectType;
1922 GUID InheritedObjectType; | 2027 GUID InheritedObjectType;
1923 DWORD SidStart; | 2028 DWORD SidStart;
1924 } | 2029 }
1925 alias _ACCESS_DENIED_OBJECT_ACE ACCESS_DENIED_OBJECT_ACE; <
1926 alias _ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE; | 2030 alias ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE;
1927 | 2031
1928 struct _SYSTEM_AUDIT_OBJECT_ACE { | 2032 struct SYSTEM_AUDIT_OBJECT_ACE {
1929 ACE_HEADER Header; | 2033 ACE_HEADER Header;
1930 ACCESS_MASK Mask; | 2034 ACCESS_MASK Mask;
1931 DWORD Flags; | 2035 DWORD Flags;
1932 GUID ObjectType; | 2036 GUID ObjectType;
1933 GUID InheritedObjectType; | 2037 GUID InheritedObjectType;
1934 DWORD SidStart; | 2038 DWORD SidStart;
1935 } | 2039 }
1936 alias _SYSTEM_AUDIT_OBJECT_ACE SYSTEM_AUDIT_OBJECT_ACE; <
1937 alias _SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE; | 2040 alias SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE;
1938 | 2041
1939 struct _SYSTEM_ALARM_OBJECT_ACE { | 2042 struct SYSTEM_ALARM_OBJECT_ACE {
1940 ACE_HEADER Header; | 2043 ACE_HEADER Header;
1941 ACCESS_MASK Mask; | 2044 ACCESS_MASK Mask;
1942 DWORD Flags; | 2045 DWORD Flags;
1943 GUID ObjectType; | 2046 GUID ObjectType;
1944 GUID InheritedObjectType; | 2047 GUID InheritedObjectType;
1945 DWORD SidStart; | 2048 DWORD SidStart;
1946 } | 2049 }
1947 alias _SYSTEM_ALARM_OBJECT_ACE SYSTEM_ALARM_OBJECT_ACE; <
1948 alias _SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE; | 2050 alias SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE;
1949 | 2051
> 2052 struct ACL {
> 2053 BYTE AclRevision;
> 2054 BYTE Sbz1;
> 2055 WORD AclSize;
1950 struct _ACCESS_ALLOWED_CALLBACK_ACE { | 2056 WORD AceCount;
1951 ACE_HEADER Header; <
1952 ACCESS_MASK Mask; <
1953 DWORD SidStart; | 2057 WORD Sbz2;
1954 } | 2058 }
1955 alias _ACCESS_ALLOWED_CALLBACK_ACE ACCESS_ALLOWED_CALLBACK_ACE; <
1956 alias _ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE; <
> 2059 alias ACL* PACL;
1957 | 2060
1958 struct _ACCESS_DENIED_CALLBACK_ACE { <
1959 ACE_HEADER Header; <
1960 ACCESS_MASK Mask; <
> 2061 struct ACL_REVISION_INFORMATION {
1961 DWORD SidStart; | 2062 DWORD AclRevision;
1962 } | 2063 }
1963 alias _ACCESS_DENIED_CALLBACK_ACE ACCESS_DENIED_CALLBACK_ACE; <
1964 alias _ACCESS_DENIED_CALLBACK_ACE* PACCESS_DENIED_CALLBACK_ACE; <
1965 | 2064
1966 struct _SYSTEM_AUDIT_CALLBACK_ACE { <
1967 ACE_HEADER Header; <
1968 ACCESS_MASK Mask; <
> 2065 struct ACL_SIZE_INFORMATION {
1969 DWORD SidStart; | 2066 DWORD AceCount;
> 2067 DWORD AclBytesInUse;
> 2068 DWORD AclBytesFree;
1970 } | 2069 }
1971 alias _SYSTEM_AUDIT_CALLBACK_ACE SYSTEM_AUDIT_CALLBACK_ACE; <
1972 alias _SYSTEM_AUDIT_CALLBACK_ACE* PSYSTEM_AUDIT_CALLBACK_ACE; <
1973 | 2070
> 2071 version (X86) {
> 2072 // ???
> 2073 const SIZE_OF_80387_REGISTERS = 80;
> 2074 const CONTEXT_i386 = 0x010000;
> 2075 const CONTEXT_i486 = 0x010000;
> 2076 const CONTEXT_CONTROL = CONTEXT_i386 | 0x01;
> 2077 const CONTEXT_INTEGER = CONTEXT_i386 | 0x02;
> 2078 const CONTEXT_SEGMENTS = CONTEXT_i386 | 0x04;
> 2079 const CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x08;
1974 struct _SYSTEM_ALARM_CALLBACK_ACE { | 2080 const CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x10;
1975 ACE_HEADER Header; | 2081 const CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x20;
1976 ACCESS_MASK Mask; | 2082 const CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER |
1977 DWORD SidStart; | 2083 const MAXIMUM_SUPPORTED_EXTENSION = 512;
1978 } | 2084
1979 alias _SYSTEM_ALARM_CALLBACK_ACE SYSTEM_ALARM_CALLBACK_ACE; | 2085 struct FLOATING_SAVE_AREA {
1980 alias _SYSTEM_ALARM_CALLBACK_ACE* PSYSTEM_ALARM_CALLBACK_ACE; | 2086 DWORD ControlWord;
1981 <
> 2087 DWORD StatusWord;
1982 struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { | 2088 DWORD TagWord;
1983 ACE_HEADER Header; | 2089 DWORD ErrorOffset;
1984 ACCESS_MASK Mask; | 2090 DWORD ErrorSelector;
1985 DWORD Flags; | 2091 DWORD DataOffset;
1986 GUID ObjectType; | 2092 DWORD DataSelector;
1987 GUID InheritedObjectType; | 2093 BYTE[80] RegisterArea;
1988 DWORD SidStart; | 2094 DWORD Cr0NpxState;
1989 } | 2095 }
1990 alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ACCESS_ALLOWED_CALLBACK_OBJECT_ACE; <
1991 alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE* PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; <
1992 | 2096
> 2097 struct CONTEXT {
> 2098 DWORD ContextFlags;
1993 struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { | 2099 DWORD Dr0;
1994 ACE_HEADER Header; | 2100 DWORD Dr1;
1995 ACCESS_MASK Mask; | 2101 DWORD Dr2;
1996 DWORD Flags; | 2102 DWORD Dr3;
1997 GUID ObjectType; | 2103 DWORD Dr6;
1998 GUID InheritedObjectType; | 2104 DWORD Dr7;
> 2105 FLOATING_SAVE_AREA FloatSave;
1999 DWORD SidStart; | 2106 DWORD SegGs;
2000 } <
2001 alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE ACCESS_DENIED_CALLBACK_OBJECT_ACE; | 2107 DWORD SegFs;
2002 alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE* PACCESS_DENIED_CALLBACK_OBJECT_ACE; | 2108 DWORD SegEs;
2003 <
> 2109 DWORD SegDs;
2004 struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { | 2110 DWORD Edi;
2005 ACE_HEADER Header; | 2111 DWORD Esi;
2006 ACCESS_MASK Mask; | 2112 DWORD Ebx;
2007 DWORD Flags; | 2113 DWORD Edx;
2008 GUID ObjectType; | 2114 DWORD Ecx;
2009 GUID InheritedObjectType; | 2115 DWORD Eax;
> 2116 DWORD Ebp;
> 2117 DWORD Eip;
2010 DWORD SidStart; | 2118 DWORD SegCs;
> 2119 DWORD EFlags;
> 2120 DWORD Esp;
> 2121 DWORD SegSs;
> 2122 BYTE[MAXIMUM_SUPPORTED_EXTENSION] ExtendedRegisters;
2011 } | 2123 }
2012 alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE SYSTEM_AUDIT_CALLBACK_OBJECT_ACE; <
2013 alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE* PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; <
2014 | 2124
2015 struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { <
2016 ACE_HEADER Header; <
2017 ACCESS_MASK Mask; <
2018 DWORD Flags; <
2019 GUID ObjectType; | 2125 } else {
2020 GUID InheritedObjectType; | 2126 static assert(false, "Unsupported CPU");
2021 DWORD SidStart; | 2127 // Versions for PowerPC, Alpha, SHX, and MIPS removed.
2022 } | 2128 }
2023 alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE SYSTEM_ALARM_CALLBACK_OBJECT_ACE; <
2024 alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE* PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; <
2025 | 2129
2026 enum : uint { ACE_OBJECT_TYPE_PRESENT = 0x1 } <
2027 enum : uint { ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 } <
> 2130 alias CONTEXT* PCONTEXT, LPCONTEXT;
2028 | 2131
> 2132 struct EXCEPTION_RECORD {
> 2133 DWORD ExceptionCode;
> 2134 DWORD ExceptionFlags;
2029 alias int _ACL_INFORMATION_CLASS; | 2135 EXCEPTION_RECORD* ExceptionRecord;
2030 enum { | 2136 PVOID ExceptionAddress;
2031 AclRevisionInformation = 1, | 2137 DWORD NumberParameters;
2032 AclSizeInformation, | 2138 DWORD[EXCEPTION_MAXIMUM_PARAMETERS] ExceptionInformation;
2033 } | 2139 }
2034 alias _ACL_INFORMATION_CLASS ACL_INFORMATION_CLASS; | 2140 alias EXCEPTION_RECORD* PEXCEPTION_RECORD, LPEXCEPTION_RECORD;
2035 | 2141
2036 struct _ACL_REVISION_INFORMATION { | 2142 struct EXCEPTION_POINTERS {
2037 DWORD AclRevision; | 2143 PEXCEPTION_RECORD ExceptionRecord;
> 2144 PCONTEXT ContextRecord;
2038 } | 2145 }
2039 alias _ACL_REVISION_INFORMATION ACL_REVISION_INFORMATION; <
> 2146 alias EXCEPTION_POINTERS* PEXCEPTION_POINTERS, LPEXCEPTION_POINTERS;
2040 | 2147
2041 alias ACL_REVISION_INFORMATION* PACL_REVISION_INFORMATION; <
2042 <
> 2148 union LARGE_INTEGER {
2043 struct _ACL_SIZE_INFORMATION { | 2149 struct {
2044 DWORD AceCount; | 2150 uint LowPart;
2045 DWORD AclBytesInUse; | 2151 int HighPart;
2046 DWORD AclBytesFree; <
2047 } | 2152 }
2048 alias _ACL_SIZE_INFORMATION ACL_SIZE_INFORMATION; <
> 2153 long QuadPart;
2049 | 2154 }
2050 alias ACL_SIZE_INFORMATION* PACL_SIZE_INFORMATION; <
> 2155 alias LARGE_INTEGER* PLARGE_INTEGER;
2051 | 2156
> 2157 union ULARGE_INTEGER {
2052 enum : uint { SECURITY_DESCRIPTOR_REVISION = 1 } | 2158 struct {
2053 enum : uint { SECURITY_DESCRIPTOR_REVISION1 = 1 } | 2159 uint LowPart;
> 2160 uint HighPart;
2054 | 2161 }
2055 const uint SECURITY_DESCRIPTOR_MIN_LENGTH = SECURITY_DESCRIPTOR.sizeof; <
> 2162 ulong QuadPart;
2056 | 2163 }
2057 alias WORD SECURITY_DESCRIPTOR_CONTROL; <
2058 alias WORD* PSECURITY_DESCRIPTOR_CONTROL; | 2164 alias ULARGE_INTEGER* PULARGE_INTEGER;
2059 | 2165
2060 enum : uint { SE_OWNER_DEFAULTED = 0x0001 } | 2166 alias LARGE_INTEGER LUID;
2061 enum : uint { SE_GROUP_DEFAULTED = 0x0002 } | 2167 alias LUID* PLUID;
2062 enum : uint { SE_DACL_PRESENT = 0x0004 } <
> 2168
2063 enum : uint { SE_DACL_DEFAULTED = 0x0008 } | 2169 const LUID SYSTEM_LUID = { QuadPart:999 };
2064 enum : uint { SE_SACL_PRESENT = 0x0010 } <
2065 enum : uint { SE_SACL_DEFAULTED = 0x0020 } <
2066 enum : uint { SE_DACL_AUTO_INHERIT_REQ = 0x0100 } <
2067 enum : uint { SE_SACL_AUTO_INHERIT_REQ = 0x0200 } <
2068 enum : uint { SE_DACL_AUTO_INHERITED = 0x0400 } <
2069 enum : uint { SE_SACL_AUTO_INHERITED = 0x0800 } <
2070 enum : uint { SE_DACL_PROTECTED = 0x1000 } <
2071 enum : uint { SE_SACL_PROTECTED = 0x2000 } <
2072 enum : uint { SE_RM_CONTROL_VALID = 0x4000 } <
2073 enum : uint { SE_SELF_RELATIVE = 0x8000 } <
2074 | 2170
2075 struct _SECURITY_DESCRIPTOR_RELATIVE { <
2076 BYTE Revision; <
2077 BYTE Sbz1; <
2078 SECURITY_DESCRIPTOR_CONTROL Control; <
> 2171 align(4) struct LUID_AND_ATTRIBUTES {
> 2172 LUID Luid;
2079 DWORD Owner; | 2173 DWORD Attributes;
> 2174 }
> 2175 alias LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES;
> 2176
> 2177 struct PRIVILEGE_SET {
2080 DWORD Group; | 2178 DWORD PrivilegeCount;
2081 DWORD Sacl; | 2179 DWORD Control;
> 2180 LUID_AND_ATTRIBUTES _Privilege;
> 2181
> 2182 LUID_AND_ATTRIBUTES* Privilege() { return &_Privilege; }
> 2183 }
> 2184 alias PRIVILEGE_SET* PPRIVILEGE_SET;
> 2185
> 2186 struct SECURITY_ATTRIBUTES {
2082 DWORD Dacl; | 2187 DWORD nLength;
> 2188 LPVOID lpSecurityDescriptor;
> 2189 BOOL bInheritHandle;
2083 } | 2190 }
2084 alias _SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR_RELATIVE; <
2085 alias _SECURITY_DESCRIPTOR_RELATIVE* PISECURITY_DESCRIPTOR_RELATIVE; | 2191 alias SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES;
2086 | 2192
2087 struct _SECURITY_DESCRIPTOR { | 2193 struct SECURITY_QUALITY_OF_SERVICE {
2088 BYTE Revision; | 2194 DWORD Length;
2089 BYTE Sbz1; | 2195 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
2090 SECURITY_DESCRIPTOR_CONTROL Control; | 2196 SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
2091 PSID Owner; | 2197 BOOLEAN EffectiveOnly;
2092 PSID Group; <
> 2198 }
2093 PACL Sacl; | 2199 alias SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;
2094 PACL Dacl; <
2095 } | 2200
2096 alias _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR; <
2097 alias _SECURITY_DESCRIPTOR* PISECURITY_DESCRIPTOR; <
> 2201 alias PVOID PACCESS_TOKEN;
2098 | 2202
> 2203 struct SE_IMPERSONATION_STATE {
> 2204 PACCESS_TOKEN Token;
2099 struct _OBJECT_TYPE_LIST { | 2205 BOOLEAN CopyOnOpen;
2100 WORD Level; | 2206 BOOLEAN EffectiveOnly;
2101 WORD Sbz; | 2207 SECURITY_IMPERSONATION_LEVEL Level;
2102 GUID *ObjectType; <
2103 } | 2208 }
2104 alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST; <
> 2209 alias SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE;
> 2210
2105 alias _OBJECT_TYPE_LIST* POBJECT_TYPE_LIST; | 2211 struct SID_IDENTIFIER_AUTHORITY {
> 2212 BYTE[6] Value;
2106 | 2213 }
2107 enum : uint { ACCESS_OBJECT_GUID = 0 } <
2108 enum : uint { ACCESS_PROPERTY_SET_GUID = 1 } | 2214 alias SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY, LPSID_IDENTIFIER_AUTH
2109 enum : uint { ACCESS_PROPERTY_GUID = 2 } <
2110 | 2215
2111 enum : uint { ACCESS_MAX_LEVEL = 4 } <
> 2216 alias PVOID PSID;
2112 | 2217
> 2218 struct SID {
2113 alias int _AUDIT_EVENT_TYPE; | 2219 BYTE Revision;
2114 enum { | 2220 BYTE SubAuthorityCount;
2115 AuditEventObjectAccess, | 2221 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
2116 AuditEventDirectoryServiceAccess, | 2222 DWORD _SubAuthority;
2117 } | 2223
2118 alias _AUDIT_EVENT_TYPE AUDIT_EVENT_TYPE; | 2224 DWORD* SubAuthority() { return &_SubAuthority; }
2119 alias _AUDIT_EVENT_TYPE* PAUDIT_EVENT_TYPE; <
2120 | 2225 }
2121 enum : uint { AUDIT_ALLOW_NO_PRIVILEGE = 0x1 } <
> 2226 alias SID* PISID;
2122 | 2227
> 2228 struct SID_AND_ATTRIBUTES {
2123 const char[] ACCESS_DS_SOURCE_A = "DS"; | 2229 PSID Sid;
2124 const wchar[] ACCESS_DS_SOURCE_W = "DS"; | 2230 DWORD Attributes;
2125 const char[] ACCESS_DS_OBJECT_TYPE_NAME_A = "Directory Service Object"; <
> 2231 }
2126 const wchar[] ACCESS_DS_OBJECT_TYPE_NAME_W = "Directory Service Object"; | 2232 alias SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES;
2127 | 2233
2128 enum : uint { SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 } | 2234 struct TOKEN_SOURCE {
2129 enum : uint { SE_PRIVILEGE_ENABLED = 0x00000002 } | 2235 CHAR[TOKEN_SOURCE_LENGTH] SourceName;
2130 enum : uint { SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 } | 2236 LUID SourceIdentifier;
2131 | 2237 }
2132 enum : uint { PRIVILEGE_SET_ALL_NECESSARY = 1 } | 2238 alias TOKEN_SOURCE* PTOKEN_SOURCE;
2133 | 2239
2134 struct _PRIVILEGE_SET { | 2240 struct TOKEN_CONTROL {
2135 DWORD PrivilegeCount; | 2241 LUID TokenId;
2136 DWORD Control; | 2242 LUID AuthenticationId;
2137 LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; | 2243 LUID ModifiedId;
> 2244 TOKEN_SOURCE TokenSource;
2138 } | 2245 }
2139 alias _PRIVILEGE_SET PRIVILEGE_SET; <
2140 alias _PRIVILEGE_SET* PPRIVILEGE_SET; | 2246 alias TOKEN_CONTROL* PTOKEN_CONTROL;
2141 | 2247
2142 const TCHAR[] SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"; | 2248 struct TOKEN_DEFAULT_DACL {
2143 const TCHAR[] SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"; | 2249 PACL DefaultDacl;
2144 const TCHAR[] SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"; <
> 2250 }
2145 const TCHAR[] SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"; | 2251 alias TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL;
2146 const TCHAR[] SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"; <
> 2252
2147 const TCHAR[] SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"; | 2253 struct TOKEN_GROUPS {
2148 const TCHAR[] SE_TCB_NAME = "SeTcbPrivilege"; | 2254 DWORD GroupCount;
2149 const TCHAR[] SE_SECURITY_NAME = "SeSecurityPrivilege"; | 2255 SID_AND_ATTRIBUTES _Groups;
2150 const TCHAR[] SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"; <
2151 const TCHAR[] SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"; <
2152 const TCHAR[] SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"; <
2153 const TCHAR[] SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"; <
2154 const TCHAR[] SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"; <
2155 const TCHAR[] SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"; <
2156 const TCHAR[] SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"; <
2157 const TCHAR[] SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"; <
2158 const TCHAR[] SE_BACKUP_NAME = "SeBackupPrivilege"; <
2159 const TCHAR[] SE_RESTORE_NAME = "SeRestorePrivilege"; <
2160 const TCHAR[] SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; <
2161 const TCHAR[] SE_DEBUG_NAME = "SeDebugPrivilege"; <
2162 const TCHAR[] SE_AUDIT_NAME = "SeAuditPrivilege"; <
2163 const TCHAR[] SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"; <
2164 const TCHAR[] SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"; <
2165 const TCHAR[] SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"; <
2166 const TCHAR[] SE_UNDOCK_NAME = "SeUndockPrivilege"; <
2167 const TCHAR[] SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege"; <
2168 const TCHAR[] SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege"; <
2169 const TCHAR[] SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege"; <
2170 | 2256
2171 alias int _SECURITY_IMPERSONATION_LEVEL; <
2172 enum { <
2173 SecurityAnonymous, <
2174 SecurityIdentification, <
2175 SecurityImpersonation, <
2176 SecurityDelegation, <
> 2257 SID_AND_ATTRIBUTES* Groups() { return &_Groups; }
2177 } | 2258 }
2178 alias _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL; <
2179 alias _SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL; <
> 2259 alias TOKEN_GROUPS* PTOKEN_GROUPS, LPTOKEN_GROUPS;
2180 | 2260
2181 alias SecurityDelegation SECURITY_MAX_IMPERSONATION_LEVEL; <
2182 alias SecurityAnonymous SECURITY_MIN_IMPERSONATION_LEVEL; <
2183 alias SecurityImpersonation DEFAULT_IMPERSONATION_LEVEL; <
2184 bit VALID_IMPERSONATION_LEVEL(SECURITY_IMPERSONATION_LEVEL L){ return (L >= SECU <
> 2261 struct TOKEN_OWNER {
> 2262 PSID Owner;
2185 | 2263 }
2186 enum : uint { TOKEN_ASSIGN_PRIMARY = 0x0001 } <
2187 enum : uint { TOKEN_DUPLICATE = 0x0002 } <
2188 enum : uint { TOKEN_IMPERSONATE = 0x0004 } <
2189 enum : uint { TOKEN_QUERY = 0x0008 } <
2190 enum : uint { TOKEN_QUERY_SOURCE = 0x0010 } <
2191 enum : uint { TOKEN_ADJUST_PRIVILEGES = 0x0020 } <
2192 enum : uint { TOKEN_ADJUST_GROUPS = 0x0040 } <
2193 enum : uint { TOKEN_ADJUST_DEFAULT = 0x0080 } <
2194 enum : uint { TOKEN_ADJUST_SESSIONID = 0x0100 } <
> 2264 alias TOKEN_OWNER* PTOKEN_OWNER;
2195 | 2265
2196 enum : uint { TOKEN_ALL_ACCESS_P = STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMA <
> 2266 struct TOKEN_PRIMARY_GROUP {
> 2267 PSID PrimaryGroup;
2197 | 2268 }
2198 // #if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_W <
2199 enum : uint { TOKEN_ALL_ACCESS = TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID } <
2200 // #else <
2201 // #... <
2202 // #endif <
> 2269 alias TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP;
2203 | 2270
2204 enum : uint { TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY } <
> 2271 struct TOKEN_PRIVILEGES {
> 2272 DWORD PrivilegeCount;
> 2273 LUID_AND_ATTRIBUTES _Privileges;
2205 | 2274
2206 enum : uint { TOKEN_WRITE = STANDARD_RIGHTS_WRITE | TOKEN_ADJUST_PRIVILEGES | TO <
> 2275 LUID_AND_ATTRIBUTES* Privileges() { return &_Privileges; }
2207 | 2276 }
2208 enum : uint { TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE } <
> 2277 alias TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES, LPTOKEN_PRIVILEGES;
2209 | 2278
2210 alias int _TOKEN_TYPE; | 2279 enum TOKEN_TYPE {
2211 enum { <
2212 TokenPrimary = 1, | 2280 TokenPrimary = 1,
2213 TokenImpersonation, | 2281 TokenImpersonation
2214 } | 2282 }
2215 alias _TOKEN_TYPE TOKEN_TYPE; <
2216 <
2217 alias TOKEN_TYPE* PTOKEN_TYPE; 2283 alias TOKEN_TYPE* PTOKEN_TYPE;
2218 2284
2219 alias int _TOKEN_INFORMATION_CLASS; <
2220 enum { <
2221 TokenUser = 1, <
2222 TokenGroups, <
2223 TokenPrivileges, <
2224 TokenOwner, <
2225 TokenPrimaryGroup, <
2226 TokenDefaultDacl, <
2227 TokenSource, <
2228 TokenType, <
2229 TokenImpersonationLevel, <
2230 TokenStatistics, <
2231 TokenRestrictedSids, <
2232 TokenSessionId, <
2233 TokenGroupsAndPrivileges, <
2234 TokenSessionReference, <
2235 TokenSandBoxInert, <
2236 } <
2237 alias _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS; <
2238 alias _TOKEN_INFORMATION_CLASS* PTOKEN_INFORMATION_CLASS; <
2239 <
2240 struct _TOKEN_USER { <
2241 SID_AND_ATTRIBUTES User; <
2242 } <
2243 alias _TOKEN_USER TOKEN_USER; <
2244 alias _TOKEN_USER* PTOKEN_USER; <
2245 <
2246 struct _TOKEN_GROUPS { <
2247 DWORD GroupCount; <
2248 SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; <
2249 } <
2250 alias _TOKEN_GROUPS TOKEN_GROUPS; <
2251 alias _TOKEN_GROUPS* PTOKEN_GROUPS; <
2252 <
2253 struct _TOKEN_PRIVILEGES { <
2254 DWORD PrivilegeCount; <
2255 LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; <
2256 } <
2257 alias _TOKEN_PRIVILEGES TOKEN_PRIVILEGES; <
2258 alias _TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES; <
2259 <
2260 struct _TOKEN_OWNER { <
2261 PSID Owner; <
2262 } <
2263 alias _TOKEN_OWNER TOKEN_OWNER; <
2264 alias _TOKEN_OWNER* PTOKEN_OWNER; <
2265 <
2266 struct _TOKEN_PRIMARY_GROUP { <
2267 PSID PrimaryGroup; <
2268 } <
2269 alias _TOKEN_PRIMARY_GROUP TOKEN_PRIMARY_GROUP; <
2270 alias _TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP; <
2271 <
2272 struct _TOKEN_DEFAULT_DACL { <
2273 PACL DefaultDacl; <
2274 } <
2275 alias _TOKEN_DEFAULT_DACL TOKEN_DEFAULT_DACL; <
2276 alias _TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL; <
2277 <
2278 struct _TOKEN_GROUPS_AND_PRIVILEGES { <
2279 DWORD SidCount; <
2280 DWORD SidLength; <
2281 PSID_AND_ATTRIBUTES Sids; <
2282 DWORD RestrictedSidCount; <
2283 DWORD RestrictedSidLength; <
2284 PSID_AND_ATTRIBUTES RestrictedSids; <
2285 DWORD PrivilegeCount; <
2286 DWORD PrivilegeLength; <
2287 PLUID_AND_ATTRIBUTES Privileges; <
2288 LUID AuthenticationId; <
2289 } <
2290 alias _TOKEN_GROUPS_AND_PRIVILEGES TOKEN_GROUPS_AND_PRIVILEGES; <
2291 alias _TOKEN_GROUPS_AND_PRIVILEGES* PTOKEN_GROUPS_AND_PRIVILEGES; <
2292 <
2293 enum : uint { TOKEN_SOURCE_LENGTH = 8 } <
2294 <
2295 struct _TOKEN_SOURCE { <
2296 CHAR SourceName[TOKEN_SOURCE_LENGTH]; <
2297 LUID SourceIdentifier; <
2298 } <
2299 alias _TOKEN_SOURCE TOKEN_SOURCE; <
2300 alias _TOKEN_SOURCE* PTOKEN_SOURCE; <
2301 <
2302 struct _TOKEN_STATISTICS { | 2285 struct TOKEN_STATISTICS {
2303 LUID TokenId; | 2286 LUID TokenId;
2304 LUID AuthenticationId; | 2287 LUID AuthenticationId;
2305 LARGE_INTEGER ExpirationTime; | 2288 LARGE_INTEGER ExpirationTime;
2306 TOKEN_TYPE TokenType; | 2289 TOKEN_TYPE TokenType;
2307 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; | 2290 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
2308 DWORD DynamicCharged; | 2291 DWORD DynamicCharged;
2309 DWORD DynamicAvailable; | 2292 DWORD DynamicAvailable;
2310 DWORD GroupCount; | 2293 DWORD GroupCount;
2311 DWORD PrivilegeCount; | 2294 DWORD PrivilegeCount;
2312 LUID ModifiedId; | 2295 LUID ModifiedId;
2313 } | 2296 }
2314 alias _TOKEN_STATISTICS TOKEN_STATISTICS; <
2315 alias _TOKEN_STATISTICS* PTOKEN_STATISTICS; | 2297 alias TOKEN_STATISTICS* PTOKEN_STATISTICS;
2316 | 2298
2317 struct _TOKEN_CONTROL { <
2318 LUID TokenId; <
2319 LUID AuthenticationId; <
2320 LUID ModifiedId; <
2321 TOKEN_SOURCE TokenSource; <
> 2299 struct TOKEN_USER {
> 2300 SID_AND_ATTRIBUTES User;
2322 } | 2301 }
2323 alias _TOKEN_CONTROL TOKEN_CONTROL; <
2324 alias _TOKEN_CONTROL* PTOKEN_CONTROL; <
2325 <
2326 enum : uint { SECURITY_DYNAMIC_TRACKING = TRUE } <
2327 enum : uint { SECURITY_STATIC_TRACKING = FALSE } <
2328 <
2329 alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE; <
2330 alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE; <
2331 <
2332 struct _SECURITY_QUALITY_OF_SERVICE { <
2333 DWORD Length; <
2334 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; <
2335 SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; <
2336 BOOLEAN EffectiveOnly; <
2337 } <
2338 alias _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE; <
2339 alias _SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE; <
2340 <
2341 struct _SE_IMPERSONATION_STATE { <
2342 PACCESS_TOKEN Token; <
2343 BOOLEAN CopyOnOpen; <
2344 BOOLEAN EffectiveOnly; <
2345 SECURITY_IMPERSONATION_LEVEL Level; <
2346 } <
2347 alias _SE_IMPERSONATION_STATE SE_IMPERSONATION_STATE; <
2348 alias _SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE; <
2349 <
2350 enum : uint { DISABLE_MAX_PRIVILEGE = 0x1 } <
2351 enum : uint { SANDBOX_INERT = 0x2 } <
> 2302 alias TOKEN_USER* PTOKEN_USER;
2352 2303
2353 alias DWORD SECURITY_INFORMATION; 2304 alias DWORD SECURITY_INFORMATION;
2354 alias DWORD* PSECURITY_INFORMATION; | 2305 alias SECURITY_INFORMATION* PSECURITY_INFORMATION;
> 2306 alias WORD SECURITY_DESCRIPTOR_CONTROL;
> 2307 alias SECURITY_DESCRIPTOR_CONTROL* PSECURITY_DESCRIPTOR_CONTROL;
2355 | 2308
2356 enum : uint { OWNER_SECURITY_INFORMATION = 0x00000001 } <
2357 enum : uint { GROUP_SECURITY_INFORMATION = 0x00000002 } <
2358 enum : uint { DACL_SECURITY_INFORMATION = 0x00000004 } | 2309 struct SECURITY_DESCRIPTOR {
2359 enum : uint { SACL_SECURITY_INFORMATION = 0x00000008 } | 2310 BYTE Revision;
> 2311 BYTE Sbz1;
> 2312 SECURITY_DESCRIPTOR_CONTROL Control;
> 2313 PSID Owner;
> 2314 PSID Group;
> 2315 PACL Sacl;
> 2316 PACL Dacl;
2360 | 2317 }
2361 enum : uint { PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 } <
2362 enum : uint { PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 } <
2363 enum : uint { UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 } <
2364 enum : uint { UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 } <
> 2318 alias SECURITY_DESCRIPTOR* PSECURITY_DESCRIPTOR, PISECURITY_DESCRIPTOR;
2365 | 2319
2366 enum : uint { PROCESS_TERMINATE = 0x0001 } <
2367 enum : uint { PROCESS_CREATE_THREAD = 0x0002 } <
2368 enum : uint { PROCESS_SET_SESSIONID = 0x0004 } <
2369 enum : uint { PROCESS_VM_OPERATION = 0x0008 } | 2320 enum TOKEN_INFORMATION_CLASS {
2370 enum : uint { PROCESS_VM_READ = 0x0010 } | 2321 TokenUser = 1,
2371 enum : uint { PROCESS_VM_WRITE = 0x0020 } | 2322 TokenGroups,
2372 enum : uint { PROCESS_DUP_HANDLE = 0x0040 } | 2323 TokenPrivileges,
2373 enum : uint { PROCESS_CREATE_PROCESS = 0x0080 } | 2324 TokenOwner,
2374 enum : uint { PROCESS_SET_QUOTA = 0x0100 } | 2325 TokenPrimaryGroup,
2375 enum : uint { PROCESS_SET_INFORMATION = 0x0200 } | 2326 TokenDefaultDacl,
2376 enum : uint { PROCESS_QUERY_INFORMATION = 0x0400 } | 2327 TokenSource,
2377 enum : uint { PROCESS_SUSPEND_RESUME = 0x0800 } | 2328 TokenType,
2378 enum : uint { PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFF | 2329 TokenImpersonationLevel,
2379 <
> 2330 TokenStatistics,
2380 // #if defined(_WIN64) | 2331 TokenRestrictedSids,
2381 <
2382 // #... <
2383 <
> 2332 TokenSessionId,
> 2333 TokenGroupsAndPrivileges,
> 2334 TokenSessionReference,
2384 // #else | 2335 TokenSandBoxInert,
2385 <
> 2336 TokenAuditPolicy,
2386 enum : uint { MAXIMUM_PROCESSORS = 32 } | 2337 TokenOrigin
2387 | 2338 }
2388 // #endif <
2389 | 2339
> 2340 enum SID_NAME_USE {
2390 enum : uint { THREAD_TERMINATE = 0x0001 } | 2341 SidTypeUser = 1,
2391 enum : uint { THREAD_SUSPEND_RESUME = 0x0002 } | 2342 SidTypeGroup,
2392 enum : uint { THREAD_GET_CONTEXT = 0x0008 } | 2343 SidTypeDomain,
2393 enum : uint { THREAD_SET_CONTEXT = 0x0010 } | 2344 SidTypeAlias,
2394 enum : uint { THREAD_SET_INFORMATION = 0x0020 } | 2345 SidTypeWellKnownGroup,
2395 enum : uint { THREAD_QUERY_INFORMATION = 0x0040 } | 2346 SidTypeDeletedAccount,
2396 enum : uint { THREAD_SET_THREAD_TOKEN = 0x0080 } | 2347 SidTypeInvalid,
2397 enum : uint { THREAD_IMPERSONATE = 0x0100 } | 2348 SidTypeUnknown,
2398 enum : uint { THREAD_DIRECT_IMPERSONATION = 0x0200 } | 2349 SidTypeComputer
2399 | 2350 }
2400 enum : uint { THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF | 2351 alias SID_NAME_USE* PSID_NAME_USE;
2401 | 2352
2402 enum : uint { JOB_OBJECT_ASSIGN_PROCESS = 0x0001 } <
2403 enum : uint { JOB_OBJECT_SET_ATTRIBUTES = 0x0002 } <
2404 enum : uint { JOB_OBJECT_QUERY = 0x0004 } <
2405 enum : uint { JOB_OBJECT_TERMINATE = 0x0008 } <
2406 enum : uint { JOB_OBJECT_SET_SECURITY_ATTRIBUTES = 0x0010 } <
2407 enum : uint { JOB_OBJECT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0 <
2408 <
2409 struct _JOB_SET_ARRAY { <
2410 HANDLE JobHandle; <
2411 DWORD MemberLevel; <
2412 DWORD Flags; <
2413 } <
2414 alias _JOB_SET_ARRAY JOB_SET_ARRAY; <
2415 alias _JOB_SET_ARRAY* PJOB_SET_ARRAY; <
2416 <
2417 enum : uint { TLS_MINIMUM_AVAILABLE = 64 } <
2418 <
2419 struct _NT_TIB { <
2420 _EXCEPTION_REGISTRATION_RECORD *ExceptionList; <
2421 PVOID StackBase; <
2422 PVOID StackLimit; <
2423 PVOID SubSystemTib; <
2424 union { <
2425 PVOID FiberData; <
2426 DWORD Version; <
2427 } <
2428 <
2429 PVOID ArbitraryUserPointer; <
2430 _NT_TIB *Self; <
2431 } <
2432 alias _NT_TIB NT_TIB; <
2433 <
2434 alias NT_TIB* PNT_TIB; <
2435 <
2436 struct _NT_TIB32 { <
2437 DWORD ExceptionList; <
2438 DWORD StackBase; <
2439 DWORD StackLimit; <
2440 DWORD SubSystemTib; <
2441 union { <
2442 DWORD FiberData; <
2443 DWORD Version; <
2444 } <
2445 <
2446 DWORD ArbitraryUserPointer; <
2447 DWORD Self; <
2448 } <
2449 alias _NT_TIB32 NT_TIB32; <
2450 alias _NT_TIB32* PNT_TIB32; <
2451 <
2452 struct _NT_TIB64 { <
2453 DWORD64 ExceptionList; <
2454 DWORD64 StackBase; <
2455 DWORD64 StackLimit; <
2456 DWORD64 SubSystemTib; <
2457 union { <
2458 DWORD64 FiberData; <
2459 DWORD Version; <
2460 } <
2461 <
2462 DWORD64 ArbitraryUserPointer; <
2463 DWORD64 Self; <
2464 } <
2465 alias _NT_TIB64 NT_TIB64; <
2466 alias _NT_TIB64* PNT_TIB64; <
2467 <
2468 // #if !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) <
2469 // #... <
2470 // #endif <
2471 <
2472 enum : uint { THREAD_BASE_PRIORITY_LOWRT = 15 } <
2473 enum : uint { THREAD_BASE_PRIORITY_MAX = 2 } <
2474 enum { THREAD_BASE_PRIORITY_MIN = -2 } <
2475 enum { THREAD_BASE_PRIORITY_IDLE = -15 } <
2476 <
2477 struct _QUOTA_LIMITS { | 2353 struct QUOTA_LIMITS {
2478 SIZE_T PagedPoolLimit; | 2354 SIZE_T PagedPoolLimit;
2479 SIZE_T NonPagedPoolLimit; | 2355 SIZE_T NonPagedPoolLimit;
2480 SIZE_T MinimumWorkingSetSize; | 2356 SIZE_T MinimumWorkingSetSize;
2481 SIZE_T MaximumWorkingSetSize; | 2357 SIZE_T MaximumWorkingSetSize;
2482 SIZE_T PagefileLimit; | 2358 SIZE_T PagefileLimit;
2483 LARGE_INTEGER TimeLimit; | 2359 LARGE_INTEGER TimeLimit;
2484 } | 2360 }
2485 alias _QUOTA_LIMITS QUOTA_LIMITS; <
2486 <
2487 alias QUOTA_LIMITS* PQUOTA_LIMITS; 2361 alias QUOTA_LIMITS* PQUOTA_LIMITS;
2488 2362
2489 struct _IO_COUNTERS { | 2363 struct IO_COUNTERS {
2490 ULONGLONG ReadOperationCount; | 2364 ULONGLONG ReadOperationCount;
2491 ULONGLONG WriteOperationCount; | 2365 ULONGLONG WriteOperationCount;
2492 ULONGLONG OtherOperationCount; | 2366 ULONGLONG OtherOperationCount;
2493 ULONGLONG ReadTransferCount; | 2367 ULONGLONG ReadTransferCount;
2494 ULONGLONG WriteTransferCount; | 2368 ULONGLONG WriteTransferCount;
2495 ULONGLONG OtherTransferCount; | 2369 ULONGLONG OtherTransferCount;
2496 } 2370 }
2497 alias _IO_COUNTERS IO_COUNTERS; <
2498 <
2499 alias IO_COUNTERS* PIO_COUNTERS; 2371 alias IO_COUNTERS* PIO_COUNTERS;
2500 2372
2501 struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { | 2373 struct FILE_NOTIFY_INFORMATION {
2502 LARGE_INTEGER TotalUserTime; | 2374 DWORD NextEntryOffset;
2503 LARGE_INTEGER TotalKernelTime; <
2504 LARGE_INTEGER ThisPeriodTotalUserTime; <
2505 LARGE_INTEGER ThisPeriodTotalKernelTime; <
2506 DWORD TotalPageFaultCount; <
2507 DWORD TotalProcesses; <
2508 DWORD ActiveProcesses; | 2375 DWORD Action;
2509 DWORD TotalTerminatedProcesses; <
> 2376 DWORD FileNameLength;
> 2377 WCHAR _FileName;
2510 } | 2378
2511 alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_ACCOUNTING_INFORMA <
2512 alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFOR <
> 2379 WCHAR* FileName() { return &_FileName; }
2513 | 2380 }
2514 struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { <
2515 LARGE_INTEGER PerProcessUserTimeLimit; <
2516 LARGE_INTEGER PerJobUserTimeLimit; <
> 2381 alias FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION;
> 2382
> 2383 struct TAPE_ERASE {
2517 DWORD LimitFlags; | 2384 DWORD Type;
> 2385 BOOLEAN Immediate;
> 2386 }
> 2387 alias TAPE_ERASE* PTAPE_ERASE;
> 2388
> 2389 struct TAPE_GET_DRIVE_PARAMETERS {
2518 SIZE_T MinimumWorkingSetSize; | 2390 BOOLEAN ECC;
2519 SIZE_T MaximumWorkingSetSize; | 2391 BOOLEAN Compression;
2520 DWORD ActiveProcessLimit; | 2392 BOOLEAN DataPadding;
2521 ULONG_PTR Affinity; | 2393 BOOLEAN ReportSetmarks;
2522 DWORD PriorityClass; | 2394 DWORD DefaultBlockSize;
2523 DWORD SchedulingClass; | 2395 DWORD MaximumBlockSize;
> 2396 DWORD MinimumBlockSize;
> 2397 DWORD MaximumPartitionCount;
> 2398 DWORD FeaturesLow;
> 2399 DWORD FeaturesHigh;
> 2400 DWORD EOTWarningZoneSize;
2524 } | 2401 }
2525 alias _JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_BASIC_LIMIT_INFORMATION; <
2526 alias _JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION; <
> 2402 alias TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS;
2527 | 2403
2528 struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { <
2529 JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; <
2530 IO_COUNTERS IoInfo; <
2531 SIZE_T ProcessMemoryLimit; <
2532 SIZE_T JobMemoryLimit; | 2404 struct TAPE_GET_MEDIA_PARAMETERS {
2533 SIZE_T PeakProcessMemoryUsed; | 2405 LARGE_INTEGER Capacity;
2534 SIZE_T PeakJobMemoryUsed; | 2406 LARGE_INTEGER Remaining;
> 2407 DWORD BlockSize;
> 2408 DWORD PartitionCount;
> 2409 BOOLEAN WriteProtected;
2535 } | 2410 }
2536 alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION JOBOBJECT_EXTENDED_LIMIT_INFORMATION <
2537 alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATI <
> 2411 alias TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS;
2538 | 2412
2539 struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { <
2540 DWORD NumberOfAssignedProcesses; <
2541 DWORD NumberOfProcessIdsInList; | 2413 struct TAPE_GET_POSITION {
2542 ULONG_PTR ProcessIdList[1]; | 2414 ULONG Type;
> 2415 ULONG Partition;
> 2416 ULONG OffsetLow;
> 2417 ULONG OffsetHigh;
2543 } | 2418 }
2544 alias _JOBOBJECT_BASIC_PROCESS_ID_LIST JOBOBJECT_BASIC_PROCESS_ID_LIST; <
2545 alias _JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST; <
> 2419 alias TAPE_GET_POSITION* PTAPE_GET_POSITION;
2546 | 2420
2547 struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { <
2548 DWORD UIRestrictionsClass; <
> 2421 struct TAPE_PREPARE {
> 2422 DWORD Operation;
> 2423 BOOLEAN Immediate;
2549 } | 2424 }
2550 alias _JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_BASIC_UI_RESTRICTIONS; <
2551 alias _JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS; <
> 2425 alias TAPE_PREPARE* PTAPE_PREPARE;
2552 | 2426
2553 struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { <
2554 DWORD SecurityLimitFlags ; <
2555 HANDLE JobToken ; | 2427 struct TAPE_SET_DRIVE_PARAMETERS {
2556 PTOKEN_GROUPS SidsToDisable ; | 2428 BOOLEAN ECC;
2557 PTOKEN_PRIVILEGES PrivilegesToDelete ; | 2429 BOOLEAN Compression;
2558 PTOKEN_GROUPS RestrictedSids ; | 2430 BOOLEAN DataPadding;
> 2431 BOOLEAN ReportSetmarks;
> 2432 ULONG EOTWarningZoneSize;
2559 } | 2433 }
2560 alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION JOBOBJECT_SECURITY_LIMIT_INFORMATION <
2561 alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATI <
> 2434 alias TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS;
2562 | 2435
2563 struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { <
2564 DWORD EndOfJobTimeAction; | 2436 struct TAPE_SET_MEDIA_PARAMETERS {
> 2437 ULONG BlockSize;
2565 } | 2438 }
2566 alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION JOBOBJECT_END_OF_JOB_TIME_INFORMATI <
2567 alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMA | 2439 alias TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS;
2568 | 2440
2569 struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { | 2441 struct TAPE_SET_POSITION {
2570 PVOID CompletionKey; | 2442 DWORD Method;
2571 HANDLE CompletionPort; | 2443 DWORD Partition;
> 2444 LARGE_INTEGER Offset;
> 2445 BOOLEAN Immediate;
2572 } | 2446 }
2573 alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT JOBOBJECT_ASSOCIATE_COMPLETION_PORT; <
2574 alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT <
> 2447 alias TAPE_SET_POSITION* PTAPE_SET_POSITION;
2575 | 2448
2576 struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { <
2577 JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; | 2449 struct TAPE_WRITE_MARKS {
2578 IO_COUNTERS IoInfo; | 2450 DWORD Type;
> 2451 DWORD Count;
> 2452 BOOLEAN Immediate;
2579 } | 2453 }
2580 alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_AND_IO_ACCO <
2581 alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_AND_IO_AC <
> 2454 alias TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS;
2582 | 2455
2583 struct _JOBOBJECT_JOBSET_INFORMATION { <
> 2456 struct TAPE_CREATE_PARTITION {
2584 DWORD MemberLevel; | 2457 DWORD Method;
> 2458 DWORD Count;
> 2459 DWORD Size;
2585 } | 2460 }
2586 alias _JOBOBJECT_JOBSET_INFORMATION JOBOBJECT_JOBSET_INFORMATION; <
2587 alias _JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; <
> 2461 alias TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION;
2588 | 2462
2589 enum : uint { JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0 } <
2590 enum : uint { JOB_OBJECT_POST_AT_END_OF_JOB = 1 } <
> 2463 struct MEMORY_BASIC_INFORMATION {
> 2464 PVOID BaseAddress;
> 2465 PVOID AllocationBase;
> 2466 DWORD AllocationProtect;
> 2467 DWORD RegionSize;
> 2468 DWORD State;
> 2469 DWORD Protect;
> 2470 DWORD Type;
2591 | 2471 }
2592 enum : uint { JOB_OBJECT_MSG_END_OF_JOB_TIME = 1 } <
2593 enum : uint { JOB_OBJECT_MSG_END_OF_PROCESS_TIME = 2 } <
2594 enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT = 3 } <
2595 enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO = 4 } <
2596 enum : uint { JOB_OBJECT_MSG_NEW_PROCESS = 6 } <
2597 enum : uint { JOB_OBJECT_MSG_EXIT_PROCESS = 7 } <
2598 enum : uint { JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8 } <
2599 enum : uint { JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT = 9 } <
2600 enum : uint { JOB_OBJECT_MSG_JOB_MEMORY_LIMIT = 10 } | 2472 alias MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION;
2601 | 2473
2602 enum : uint { JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 } | 2474 struct MESSAGE_RESOURCE_ENTRY {
2603 enum : uint { JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 } | 2475 WORD Length;
2604 enum : uint { JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 } | 2476 WORD Flags;
2605 enum : uint { JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 } | 2477 BYTE _Text;
2606 enum : uint { JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 } <
2607 enum : uint { JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 } <
2608 enum : uint { JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 } <
2609 enum : uint { JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 } <
2610 | 2478
2611 enum : uint { JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 } <
2612 enum : uint { JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 } <
2613 enum : uint { JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 } <
2614 enum : uint { JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 } <
2615 enum : uint { JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 } <
2616 enum : uint { JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 } <
> 2479 BYTE* Text() { return &_Text; }
2617 | 2480 }
2618 enum : uint { JOB_OBJECT_LIMIT_RESERVED2 = 0x00004000 } <
2619 enum : uint { JOB_OBJECT_LIMIT_RESERVED3 = 0x00008000 } <
2620 enum : uint { JOB_OBJECT_LIMIT_RESERVED4 = 0x00010000 } <
2621 enum : uint { JOB_OBJECT_LIMIT_RESERVED5 = 0x00020000 } <
2622 enum : uint { JOB_OBJECT_LIMIT_RESERVED6 = 0x00040000 } <
> 2481 alias MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY;
2623 | 2482
2624 enum : uint { JOB_OBJECT_LIMIT_VALID_FLAGS = 0x0007ffff } <
> 2483 struct MESSAGE_RESOURCE_BLOCK {
> 2484 DWORD LowId;
> 2485 DWORD HighId;
> 2486 DWORD OffsetToEntries;
2625 | 2487 }
2626 enum : uint { JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS = 0x000000ff } <
2627 enum : uint { JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS = 0x00003fff } <
2628 enum : uint { JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS = 0x0007ffff } <
> 2488 alias MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK;
2629 | 2489
2630 enum : uint { JOB_OBJECT_UILIMIT_NONE = 0x00000000 } <
> 2490 struct MESSAGE_RESOURCE_DATA {
> 2491 DWORD NumberOfBlocks;
> 2492 MESSAGE_RESOURCE_BLOCK _Blocks;
2631 | 2493
2632 enum : uint { JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 } <
2633 enum : uint { JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 } <
2634 enum : uint { JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 } <
2635 enum : uint { JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 } <
2636 enum : uint { JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 } <
2637 enum : uint { JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 } <
2638 enum : uint { JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 } <
2639 enum : uint { JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 } <
> 2494 MESSAGE_RESOURCE_BLOCK* Blocks() { return &_Blocks; }
2640 | 2495 }
2641 enum : uint { JOB_OBJECT_UILIMIT_ALL = 0x000000FF } <
> 2496 alias MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA;
2642 | 2497
2643 enum : uint { JOB_OBJECT_UI_VALID_FLAGS = 0x000000FF } <
> 2498 struct LIST_ENTRY {
> 2499 LIST_ENTRY* Flink;
> 2500 LIST_ENTRY* Blink;
2644 | 2501 }
2645 enum : uint { JOB_OBJECT_SECURITY_NO_ADMIN = 0x00000001 } <
2646 enum : uint { JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x00000002 } <
2647 enum : uint { JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x00000004 } <
2648 enum : uint { JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x00000008 } <
> 2502 alias LIST_ENTRY* PLIST_ENTRY;
2649 | 2503
2650 enum : uint { JOB_OBJECT_SECURITY_VALID_FLAGS = 0x0000000f } <
> 2504 struct SINGLE_LIST_ENTRY {
> 2505 SINGLE_LIST_ENTRY* Next;
2651 | 2506 }
2652 alias int _JOBOBJECTINFOCLASS; <
2653 enum { <
2654 JobObjectBasicAccountingInformation = 1, <
2655 JobObjectBasicLimitInformation, <
2656 JobObjectBasicProcessIdList, <
2657 JobObjectBasicUIRestrictions, <
2658 JobObjectSecurityLimitInformation, <
2659 JobObjectEndOfJobTimeInformation, <
2660 JobObjectAssociateCompletionPortInformation, <
2661 JobObjectBasicAndIoAccountingInformation, <
2662 JobObjectExtendedLimitInformation, <
2663 JobObjectJobSetInformation, <
2664 MaxJobObjectInfoClass, <
> 2507 alias SINGLE_LIST_ENTRY SLIST_ENTRY;
> 2508 alias SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY, PSLIST_ENTRY;
2665 } | 2509
2666 alias _JOBOBJECTINFOCLASS JOBOBJECTINFOCLASS; <
> 2510 union SLIST_HEADER {
> 2511 ULONGLONG Alignment;
> 2512 struct {
> 2513 SLIST_ENTRY Next;
> 2514 WORD Depth;
> 2515 WORD Sequence;
2667 | 2516 }
2668 enum : uint { EVENT_MODIFY_STATE = 0x0002 } <
2669 enum : uint { EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } <
2670 enum : uint { MUTANT_QUERY_STATE = 0x0001 } <
2671 | 2517 }
2672 enum : uint { MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| MUTANT_Q <
2673 enum : uint { SEMAPHORE_MODIFY_STATE = 0x0002 } <
2674 enum : uint { SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 } <
> 2518 alias SLIST_HEADER* PSLIST_HEADER;
2675 | 2519
2676 enum : uint { TIMER_QUERY_STATE = 0x0001 } <
2677 enum : uint { TIMER_MODIFY_STATE = 0x0002 } <
> 2520 struct RTL_CRITICAL_SECTION_DEBUG {
> 2521 WORD Type;
> 2522 WORD CreatorBackTraceIndex;
> 2523 RTL_CRITICAL_SECTION* CriticalSection;
> 2524 LIST_ENTRY ProcessLocksList;
> 2525 DWORD EntryCount;
> 2526 DWORD ContentionCount;
> 2527 DWORD[2] Spare;
2678 | 2528 }
2679 enum : uint { TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| TIMER_QUE <
> 2529 alias RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG;
2680 | 2530
2681 enum : uint { TIME_ZONE_ID_UNKNOWN = 0 } <
2682 enum : uint { TIME_ZONE_ID_STANDARD = 1 } <
2683 enum : uint { TIME_ZONE_ID_DAYLIGHT = 2 } <
> 2531 struct RTL_CRITICAL_SECTION {
> 2532 PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
> 2533 LONG LockCount;
> 2534 LONG RecursionCount;
> 2535 HANDLE OwningThread;
> 2536 HANDLE LockSemaphore;
> 2537 DWORD Reserved;
2684 | 2538 }
2685 enum : uint { MAXIMUM_NUMA_NODES = 16 } <
> 2539 alias RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION;
2686 | 2540
2687 struct _SYSTEM_NUMA_INFORMATION { <
2688 DWORD HighestNodeNumber; <
> 2541 struct EVENTLOGRECORD {
> 2542 DWORD Length;
2689 DWORD Reserved; | 2543 DWORD Reserved;
2690 union { <
2691 ULONGLONG ActiveProcessorsAffinityMask[MAXIMUM_NUMA_NODES]; <
2692 ULONGLONG AvailableMemory[MAXIMUM_NUMA_NODES]; <
> 2544 DWORD RecordNumber;
> 2545 DWORD TimeGenerated;
> 2546 DWORD TimeWritten;
> 2547 DWORD EventID;
> 2548 WORD EventType;
> 2549 WORD NumStrings;
> 2550 WORD EventCategory;
> 2551 WORD ReservedFlags;
> 2552 DWORD ClosingRecordNumber;
> 2553 DWORD StringOffset;
> 2554 DWORD UserSidLength;
> 2555 DWORD UserSidOffset;
> 2556 DWORD DataLength;
> 2557 DWORD DataOffset;
2693 } | 2558 }
> 2559 alias EVENTLOGRECORD* PEVENTLOGRECORD;
2694 | 2560
> 2561 struct OSVERSIONINFOA {
> 2562 DWORD dwOSVersionInfoSize;
> 2563 DWORD dwMajorVersion;
> 2564 DWORD dwMinorVersion;
> 2565 DWORD dwBuildNumber;
> 2566 DWORD dwPlatformId;
> 2567 CHAR[128] szCSDVersion;
2695 } | 2568 }
2696 alias _SYSTEM_NUMA_INFORMATION SYSTEM_NUMA_INFORMATION; <
2697 alias _SYSTEM_NUMA_INFORMATION* PSYSTEM_NUMA_INFORMATION; | 2569 alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA;
2698 | 2570
2699 enum : uint { PROCESSOR_INTEL_386 = 386 } | 2571 struct OSVERSIONINFOW {
2700 enum : uint { PROCESSOR_INTEL_486 = 486 } | 2572 DWORD dwOSVersionInfoSize;
2701 enum : uint { PROCESSOR_INTEL_PENTIUM = 586 } | 2573 DWORD dwMajorVersion;
2702 enum : uint { PROCESSOR_INTEL_IA64 = 2200 } | 2574 DWORD dwMinorVersion;
2703 enum : uint { PROCESSOR_MIPS_R4000 = 4000 } | 2575 DWORD dwBuildNumber;
2704 enum : uint { PROCESSOR_ALPHA_21064 = 21064 } | 2576 DWORD dwPlatformId;
2705 enum : uint { PROCESSOR_PPC_601 = 601 } | 2577 WCHAR[128] szCSDVersion;
2706 enum : uint { PROCESSOR_PPC_603 = 603 } <
> 2578 }
2707 enum : uint { PROCESSOR_PPC_604 = 604 } | 2579 alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW;
2708 enum : uint { PROCESSOR_PPC_620 = 620 } <
> 2580
2709 enum : uint { PROCESSOR_HITACHI_SH3 = 10003 } | 2581 struct OSVERSIONINFOEXA {
2710 enum : uint { PROCESSOR_HITACHI_SH3E = 10004 } | 2582 DWORD dwOSVersionInfoSize;
2711 enum : uint { PROCESSOR_HITACHI_SH4 = 10005 } | 2583 DWORD dwMajorVersion;
2712 enum : uint { PROCESSOR_MOTOROLA_821 = 821 } | 2584 DWORD dwMinorVersion;
2713 enum : uint { PROCESSOR_SHx_SH3 = 103 } | 2585 DWORD dwBuildNumber;
2714 enum : uint { PROCESSOR_SHx_SH4 = 104 } | 2586 DWORD dwPlatformId;
2715 enum : uint { PROCESSOR_STRONGARM = 2577 } | 2587 CHAR[128] szCSDVersion;
2716 enum : uint { PROCESSOR_ARM720 = 1824 } | 2588 WORD wServicePackMajor;
2717 enum : uint { PROCESSOR_ARM820 = 2080 } | 2589 WORD wServicePackMinor;
2718 enum : uint { PROCESSOR_ARM920 = 2336 } | 2590 WORD wSuiteMask;
2719 enum : uint { PROCESSOR_ARM_7TDMI = 70001 } | 2591 BYTE wProductType;
2720 enum : uint { PROCESSOR_OPTIL = 0x494f } | 2592 BYTE wReserved;
2721 | 2593 }
2722 enum : uint { PROCESSOR_ARCHITECTURE_INTEL = 0 } | 2594 alias OSVERSIONINFOEXA* POSVERSIONINFOEXA, LPOSVERSIONINFOEXA;
2723 enum : uint { PROCESSOR_ARCHITECTURE_MIPS = 1 } <
2724 enum : uint { PROCESSOR_ARCHITECTURE_ALPHA = 2 } <
2725 enum : uint { PROCESSOR_ARCHITECTURE_PPC = 3 } <
2726 enum : uint { PROCESSOR_ARCHITECTURE_SHX = 4 } <
2727 enum : uint { PROCESSOR_ARCHITECTURE_ARM = 5 } <
2728 enum : uint { PROCESSOR_ARCHITECTURE_IA64 = 6 } <
2729 enum : uint { PROCESSOR_ARCHITECTURE_ALPHA64 = 7 } <
2730 enum : uint { PROCESSOR_ARCHITECTURE_MSIL = 8 } <
2731 enum : uint { PROCESSOR_ARCHITECTURE_AMD64 = 9 } <
2732 enum : uint { PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10 } <
2733 | 2595
> 2596 struct OSVERSIONINFOEXW {
> 2597 DWORD dwOSVersionInfoSize;
> 2598 DWORD dwMajorVersion;
> 2599 DWORD dwMinorVersion;
> 2600 DWORD dwBuildNumber;
> 2601 DWORD dwPlatformId;
> 2602 WCHAR[128] szCSDVersion;
> 2603 WORD wServicePackMajor;
> 2604 WORD wServicePackMinor;
> 2605 WORD wSuiteMask;
2734 enum : uint { PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF } | 2606 BYTE wProductType;
> 2607 BYTE wReserved;
2735 | 2608 }
2736 enum : uint { PF_FLOATING_POINT_PRECISION_ERRATA = 0 } <
2737 enum : uint { PF_FLOATING_POINT_EMULATED = 1 } | 2609 alias OSVERSIONINFOEXW* POSVERSIONINFOEXW, LPOSVERSIONINFOEXW;
2738 enum : uint { PF_COMPARE_EXCHANGE_DOUBLE = 2 } <
2739 enum : uint { PF_MMX_INSTRUCTIONS_AVAILABLE = 3 } <
2740 enum : uint { PF_PPC_MOVEMEM_64BIT_OK = 4 } <
2741 enum : uint { PF_ALPHA_BYTE_INSTRUCTIONS = 5 } <
2742 enum : uint { PF_XMMI_INSTRUCTIONS_AVAILABLE = 6 } <
2743 enum : uint { PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7 } <
2744 enum : uint { PF_RDTSC_INSTRUCTION_AVAILABLE = 8 } <
2745 enum : uint { PF_PAE_ENABLED = 9 } <
2746 enum : uint { PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10 } <
2747 | 2610
> 2611 align(2) struct IMAGE_VXD_HEADER {
> 2612 WORD e32_magic;
> 2613 BYTE e32_border;
> 2614 BYTE e32_worder;
> 2615 DWORD e32_level;
> 2616 WORD e32_cpu;
> 2617 WORD e32_os;
> 2618 DWORD e32_ver;
> 2619 DWORD e32_mflags;
2748 struct _MEMORY_BASIC_INFORMATION { | 2620 DWORD e32_mpages;
2749 PVOID BaseAddress; | 2621 DWORD e32_startobj;
2750 PVOID AllocationBase; | 2622 DWORD e32_eip;
2751 DWORD AllocationProtect; | 2623 DWORD e32_stackobj;
2752 SIZE_T RegionSize; <
2753 DWORD State; | 2624 DWORD e32_esp;
> 2625 DWORD e32_pagesize;
2754 DWORD Protect; | 2626 DWORD e32_lastpagesize;
> 2627 DWORD e32_fixupsize;
2755 DWORD Type; | 2628 DWORD e32_fixupsum;
2756 } <
2757 alias _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION; | 2629 DWORD e32_ldrsize;
2758 alias _MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION; | 2630 DWORD e32_ldrsum;
2759 <
> 2631 DWORD e32_objtab;
2760 struct _MEMORY_BASIC_INFORMATION32 { | 2632 DWORD e32_objcnt;
2761 DWORD BaseAddress; | 2633 DWORD e32_objmap;
2762 DWORD AllocationBase; | 2634 DWORD e32_itermap;
2763 DWORD AllocationProtect; | 2635 DWORD e32_rsrctab;
2764 DWORD RegionSize; | 2636 DWORD e32_rsrccnt;
2765 DWORD State; | 2637 DWORD e32_restab;
2766 DWORD Protect; | 2638 DWORD e32_enttab;
2767 DWORD Type; | 2639 DWORD e32_dirtab;
2768 } <
> 2640 DWORD e32_dircnt;
2769 alias _MEMORY_BASIC_INFORMATION32 MEMORY_BASIC_INFORMATION32; | 2641 DWORD e32_fpagetab;
2770 alias _MEMORY_BASIC_INFORMATION32* PMEMORY_BASIC_INFORMATION32; | 2642 DWORD e32_frectab;
2771 <
> 2643 DWORD e32_impmod;
2772 struct _MEMORY_BASIC_INFORMATION64 { | 2644 DWORD e32_impmodcnt;
2773 ULONGLONG BaseAddress; | 2645 DWORD e32_impproc;
2774 ULONGLONG AllocationBase; | 2646 DWORD e32_pagesum;
2775 DWORD AllocationProtect; | 2647 DWORD e32_datapage;
2776 DWORD __alignment1; | 2648 DWORD e32_preload;
2777 ULONGLONG RegionSize; | 2649 DWORD e32_nrestab;
2778 DWORD State; | 2650 DWORD e32_cbnrestab;
2779 DWORD Protect; | 2651 DWORD e32_nressum;
2780 DWORD Type; | 2652 DWORD e32_autodata;
2781 DWORD __alignment2; | 2653 DWORD e32_debuginfo;
2782 } <
> 2654 DWORD e32_debuglen;
2783 alias _MEMORY_BASIC_INFORMATION64 MEMORY_BASIC_INFORMATION64; | 2655 DWORD e32_instpreload;
2784 alias _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64; | 2656 DWORD e32_instdemand;
> 2657 DWORD e32_heapsize;
> 2658 BYTE[12] e32_res3;
> 2659 DWORD e32_winresoff;
> 2660 DWORD e32_winreslen;
> 2661 WORD e32_devid;
> 2662 WORD e32_ddkver;
2785 | 2663 }
2786 enum : uint { SECTION_QUERY = 0x0001 } <
2787 enum : uint { SECTION_MAP_WRITE = 0x0002 } <
2788 enum : uint { SECTION_MAP_READ = 0x0004 } <
2789 enum : uint { SECTION_MAP_EXECUTE = 0x0008 } <
2790 enum : uint { SECTION_EXTEND_SIZE = 0x0010 } <
> 2664 alias IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER;
2791 | 2665
2792 enum : uint { SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTI <
2793 enum : uint { PAGE_NOACCESS = 0x01 } <
2794 enum : uint { PAGE_READONLY = 0x02 } | 2666 align(4):
2795 enum : uint { PAGE_READWRITE = 0x04 } | 2667 struct IMAGE_FILE_HEADER {
2796 enum : uint { PAGE_WRITECOPY = 0x08 } | 2668 WORD Machine;
2797 enum : uint { PAGE_EXECUTE = 0x10 } | 2669 WORD NumberOfSections;
2798 enum : uint { PAGE_EXECUTE_READ = 0x20 } | 2670 DWORD TimeDateStamp;
2799 enum : uint { PAGE_EXECUTE_READWRITE = 0x40 } | 2671 DWORD PointerToSymbolTable;
2800 enum : uint { PAGE_EXECUTE_WRITECOPY = 0x80 } | 2672 DWORD NumberOfSymbols;
2801 enum : uint { PAGE_GUARD = 0x100 } | 2673 WORD SizeOfOptionalHeader;
2802 enum : uint { PAGE_NOCACHE = 0x200 } | 2674 WORD Characteristics;
2803 enum : uint { PAGE_WRITECOMBINE = 0x400 } <
2804 enum : uint { MEM_COMMIT = 0x1000 } <
2805 enum : uint { MEM_RESERVE = 0x2000 } <
2806 enum : uint { MEM_DECOMMIT = 0x4000 } <
2807 enum : uint { MEM_RELEASE = 0x8000 } <
2808 enum : uint { MEM_FREE = 0x10000 } <
2809 enum : uint { MEM_PRIVATE = 0x20000 } <
2810 enum : uint { MEM_MAPPED = 0x40000 } <
2811 enum : uint { MEM_RESET = 0x80000 } <
2812 enum : uint { MEM_TOP_DOWN = 0x100000 } <
2813 enum : uint { MEM_WRITE_WATCH = 0x200000 } <
2814 enum : uint { MEM_PHYSICAL = 0x400000 } <
2815 enum : uint { MEM_4MB_PAGES = 0x80000000 } <
2816 enum : uint { SEC_FILE = 0x800000 } <
2817 enum : uint { SEC_IMAGE = 0x1000000 } <
2818 enum : uint { SEC_RESERVE = 0x4000000 } <
2819 enum : uint { SEC_COMMIT = 0x8000000 } <
2820 enum : uint { SEC_NOCACHE = 0x10000000 } <
2821 alias SEC_IMAGE MEM_IMAGE; <
2822 enum : uint { WRITE_WATCH_FLAG_RESET = 0x01 } <
2823 | 2675 }
2824 enum : uint { FILE_READ_DATA = 0x0001 } <
2825 enum : uint { FILE_LIST_DIRECTORY = 0x0001 } <
> 2676 alias IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER;
> 2677 // const IMAGE_SIZEOF_FILE_HEADER = IMAGE_FILE_HEADER.sizeof;
2826 | 2678
2827 enum : uint { FILE_WRITE_DATA = 0x0002 } <
2828 enum : uint { FILE_ADD_FILE = 0x0002 } <
> 2679 struct IMAGE_DATA_DIRECTORY {
> 2680 DWORD VirtualAddress;
> 2681 DWORD Size;
2829 | 2682 }
2830 enum : uint { FILE_APPEND_DATA = 0x0004 } <
2831 enum : uint { FILE_ADD_SUBDIRECTORY = 0x0004 } <
2832 enum : uint { FILE_CREATE_PIPE_INSTANCE = 0x0004 } <
> 2683 alias IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY;
2833 | 2684
> 2685 struct IMAGE_OPTIONAL_HEADER32 {
> 2686 WORD Magic;
> 2687 BYTE MajorLinkerVersion;
> 2688 BYTE MinorLinkerVersion;
> 2689 DWORD SizeOfCode;
> 2690 DWORD SizeOfInitializedData;
> 2691 DWORD SizeOfUninitializedData;
> 2692 DWORD AddressOfEntryPoint;
> 2693 DWORD BaseOfCode;
> 2694 DWORD BaseOfData;
> 2695 DWORD ImageBase;
> 2696 DWORD SectionAlignment;
> 2697 DWORD FileAlignment;
> 2698 WORD MajorOperatingSystemVersion;
> 2699 WORD MinorOperatingSystemVersion;
> 2700 WORD MajorImageVersion;
> 2701 WORD MinorImageVersion;
> 2702 WORD MajorSubsystemVersion;
> 2703 WORD MinorSubsystemVersion;
> 2704 DWORD Win32VersionValue;
> 2705 DWORD SizeOfImage;
2834 enum : uint { FILE_READ_EA = 0x0008 } | 2706 DWORD SizeOfHeaders;
2835 <
> 2707 DWORD CheckSum;
2836 enum : uint { FILE_WRITE_EA = 0x0010 } | 2708 WORD Subsystem;
2837 <
> 2709 WORD DllCharacteristics;
2838 enum : uint { FILE_EXECUTE = 0x0020 } | 2710 DWORD SizeOfStackReserve;
2839 enum : uint { FILE_TRAVERSE = 0x0020 } | 2711 DWORD SizeOfStackCommit;
2840 <
> 2712 DWORD SizeOfHeapReserve;
2841 enum : uint { FILE_DELETE_CHILD = 0x0040 } | 2713 DWORD SizeOfHeapCommit;
2842 <
> 2714 DWORD LoaderFlags;
2843 enum : uint { FILE_READ_ATTRIBUTES = 0x0080 } | 2715 DWORD NumberOfRvaAndSizes;
> 2716 IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory;
2844 | 2717 }
2845 enum : uint { FILE_WRITE_ATTRIBUTES = 0x0100 } <
> 2718 alias IMAGE_OPTIONAL_HEADER32* PIMAGE_OPTIONAL_HEADER32;
2846 | 2719
2847 enum : uint { FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF } <
2848 <
> 2720 struct IMAGE_OPTIONAL_HEADER64 {
2849 enum : uint { FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_R | 2721 WORD Magic;
2850 <
> 2722 BYTE MajorLinkerVersion;
2851 enum : uint { FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FIL | 2723 BYTE MinorLinkerVersion;
2852 <
> 2724 DWORD SizeOfCode;
2853 enum : uint { FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBU | 2725 DWORD SizeOfInitializedData;
2854 <
> 2726 DWORD SizeOfUninitializedData;
2855 enum : uint { FILE_SHARE_READ = 0x00000001 } | 2727 DWORD AddressOfEntryPoint;
2856 enum : uint { FILE_SHARE_WRITE = 0x00000002 } | 2728 DWORD BaseOfCode;
2857 enum : uint { FILE_SHARE_DELETE = 0x00000004 } | 2729 ULONGLONG ImageBase;
2858 enum : uint { FILE_ATTRIBUTE_READONLY = 0x00000001 } | 2730 DWORD SectionAlignment;
2859 enum : uint { FILE_ATTRIBUTE_HIDDEN = 0x00000002 } | 2731 DWORD FileAlignment;
2860 enum : uint { FILE_ATTRIBUTE_SYSTEM = 0x00000004 } | 2732 WORD MajorOperatingSystemVersion;
2861 enum : uint { FILE_ATTRIBUTE_DIRECTORY = 0x00000010 } | 2733 WORD MinorOperatingSystemVersion;
2862 enum : uint { FILE_ATTRIBUTE_ARCHIVE = 0x00000020 } | 2734 WORD MajorImageVersion;
2863 enum : uint { FILE_ATTRIBUTE_DEVICE = 0x00000040 } | 2735 WORD MinorImageVersion;
2864 enum : uint { FILE_ATTRIBUTE_NORMAL = 0x00000080 } | 2736 WORD MajorSubsystemVersion;
2865 enum : uint { FILE_ATTRIBUTE_TEMPORARY = 0x00000100 } | 2737 WORD MinorSubsystemVersion;
2866 enum : uint { FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 } | 2738 DWORD Win32VersionValue;
2867 enum : uint { FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 } | 2739 DWORD SizeOfImage;
2868 enum : uint { FILE_ATTRIBUTE_COMPRESSED = 0x00000800 } | 2740 DWORD SizeOfHeaders;
2869 enum : uint { FILE_ATTRIBUTE_OFFLINE = 0x00001000 } | 2741 DWORD CheckSum;
2870 enum : uint { FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 } | 2742 WORD Subsystem;
2871 enum : uint { FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 } | 2743 WORD DllCharacteristics;
2872 enum : uint { FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001 } | 2744 ULONGLONG SizeOfStackReserve;
2873 enum : uint { FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002 } | 2745 ULONGLONG SizeOfStackCommit;
2874 enum : uint { FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004 } | 2746 ULONGLONG SizeOfHeapReserve;
2875 enum : uint { FILE_NOTIFY_CHANGE_SIZE = 0x00000008 } | 2747 ULONGLONG SizeOfHeapCommit;
2876 enum : uint { FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010 } <
2877 enum : uint { FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020 } <
2878 enum : uint { FILE_NOTIFY_CHANGE_CREATION = 0x00000040 } <
2879 enum : uint { FILE_NOTIFY_CHANGE_SECURITY = 0x00000100 } <
2880 enum : uint { FILE_ACTION_ADDED = 0x00000001 } <
2881 enum : uint { FILE_ACTION_REMOVED = 0x00000002 } <
2882 enum : uint { FILE_ACTION_MODIFIED = 0x00000003 } <
2883 enum : uint { FILE_ACTION_RENAMED_OLD_NAME = 0x00000004 } <
2884 enum : uint { FILE_ACTION_RENAMED_NEW_NAME = 0x00000005 } <
2885 enum : DWORD { MAILSLOT_NO_MESSAGE = cast(DWORD)-1 } <
2886 enum : DWORD { MAILSLOT_WAIT_FOREVER = cast(DWORD)-1 } <
2887 enum : uint { FILE_CASE_SENSITIVE_SEARCH = 0x00000001 } <
2888 enum : uint { FILE_CASE_PRESERVED_NAMES = 0x00000002 } <
2889 enum : uint { FILE_UNICODE_ON_DISK = 0x00000004 } <
2890 enum : uint { FILE_PERSISTENT_ACLS = 0x00000008 } <
2891 enum : uint { FILE_FILE_COMPRESSION = 0x00000010 } <
2892 enum : uint { FILE_VOLUME_QUOTAS = 0x00000020 } <
2893 enum : uint { FILE_SUPPORTS_SPARSE_FILES = 0x00000040 } <
2894 enum : uint { FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 } <
2895 enum : uint { FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100 } <
2896 enum : uint { FILE_VOLUME_IS_COMPRESSED = 0x00008000 } <
2897 enum : uint { FILE_SUPPORTS_OBJECT_IDS = 0x00010000 } <
2898 enum : uint { FILE_SUPPORTS_ENCRYPTION = 0x00020000 } <
2899 enum : uint { FILE_NAMED_STREAMS = 0x00040000 } <
2900 enum : uint { FILE_READ_ONLY_VOLUME = 0x00080000 } <
2901 <
2902 struct _FILE_NOTIFY_INFORMATION { <
2903 DWORD NextEntryOffset; <
2904 DWORD Action; | 2748 DWORD LoaderFlags;
2905 DWORD FileNameLength; <
2906 WCHAR FileName[1]; <
> 2749 DWORD NumberOfRvaAndSizes;
> 2750 IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory;
2907 } | 2751 }
2908 alias _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION; <
2909 alias _FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION; <
> 2752 alias IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64;
2910 | 2753
2911 union _FILE_SEGMENT_ELEMENT { <
2912 PVOID64 Buffer; <
2913 ULONGLONG Alignment; <
> 2754 struct IMAGE_ROM_OPTIONAL_HEADER {
> 2755 WORD Magic;
> 2756 BYTE MajorLinkerVersion;
> 2757 BYTE MinorLinkerVersion;
> 2758 DWORD SizeOfCode;
> 2759 DWORD SizeOfInitializedData;
> 2760 DWORD SizeOfUninitializedData;
> 2761 DWORD AddressOfEntryPoint;
> 2762 DWORD BaseOfCode;
> 2763 DWORD BaseOfData;
> 2764 DWORD BaseOfBss;
> 2765 DWORD GprMask;
> 2766 DWORD[4] CprMask;
> 2767 DWORD GpValue;
2914 } | 2768 }
2915 alias _FILE_SEGMENT_ELEMENT FILE_SEGMENT_ELEMENT; <
2916 alias _FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT; <
> 2769 alias IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER;
2917 | 2770
2918 struct _REPARSE_GUID_DATA_BUFFER { <
2919 DWORD ReparseTag; <
2920 WORD ReparseDataLength; <
2921 WORD Reserved; <
2922 GUID ReparseGuid; <
> 2771 align(2):
2923 struct { | 2772 struct IMAGE_DOS_HEADER {
2924 BYTE DataBuffer[1]; <
> 2773 WORD e_magic;
> 2774 WORD e_cblp;
> 2775 WORD e_cp;
> 2776 WORD e_crlc;
> 2777 WORD e_cparhdr;
> 2778 WORD e_minalloc;
> 2779 WORD e_maxalloc;
> 2780 WORD e_ss;
> 2781 WORD e_sp;
> 2782 WORD e_csum;
> 2783 WORD e_ip;
> 2784 WORD e_cs;
> 2785 WORD e_lfarlc;
> 2786 WORD e_ovno;
> 2787 WORD[4] e_res;
> 2788 WORD e_oemid;
> 2789 WORD e_oeminfo;
> 2790 WORD[10] e_res2;
> 2791 LONG e_lfanew;
2925 } | 2792 }
> 2793 alias IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER;
2926 | 2794
2927 } <
> 2795 struct IMAGE_OS2_HEADER {
> 2796 WORD ne_magic;
> 2797 CHAR ne_ver;
> 2798 CHAR ne_rev;
> 2799 WORD ne_enttab;
2928 alias _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER; | 2800 WORD ne_cbenttab;
2929 alias _REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER; | 2801 LONG ne_crc;
2930 <
> 2802 WORD ne_flags;
2931 // #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_B | 2803 WORD ne_autodata;
2932 <
> 2804 WORD ne_heap;
2933 enum : uint { MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 } | 2805 WORD ne_stack;
2934 <
> 2806 LONG ne_csip;
2935 enum : uint { IO_REPARSE_TAG_RESERVED_ZERO = 0 } | 2807 LONG ne_sssp;
2936 enum : uint { IO_REPARSE_TAG_RESERVED_ONE = 1 } | 2808 WORD ne_cseg;
> 2809 WORD ne_cmod;
> 2810 WORD ne_cbnrestab;
> 2811 WORD ne_segtab;
> 2812 WORD ne_rsrctab;
> 2813 WORD ne_restab;
> 2814 WORD ne_modtab;
> 2815 WORD ne_imptab;
> 2816 LONG ne_nrestab;
> 2817 WORD ne_cmovent;
> 2818 WORD ne_align;
> 2819 WORD ne_cres;
> 2820 BYTE ne_exetyp;
> 2821 BYTE ne_flagsothers;
> 2822 WORD ne_pretthunks;
> 2823 WORD ne_psegrefbytes;
> 2824 WORD ne_swaparea;
> 2825 WORD ne_expver;
2937 | 2826 }
2938 alias IO_REPARSE_TAG_RESERVED_ONE IO_REPARSE_TAG_RESERVED_RANGE; <
> 2827 alias IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER;
2939 | 2828
2940 // #define IsReparseTagMicrosoft(_tag) ( ((_tag) & 0x80000000) ) <
> 2829 align(4) struct IMAGE_NT_HEADERS32 {
> 2830 DWORD Signature;
> 2831 IMAGE_FILE_HEADER FileHeader;
> 2832 IMAGE_OPTIONAL_HEADER OptionalHeader;
2941 | 2833 }
2942 // #define IsReparseTagNameSurrogate(_tag) ( ((_tag) & 0x20000000) ) <
> 2834 alias IMAGE_NT_HEADERS32* PIMAGE_NT_HEADERS32;
2943 | 2835
2944 enum : uint { IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 } <
2945 enum : uint { IO_REPARSE_TAG_HSM = 0xC0000004 } <
2946 enum : uint { IO_REPARSE_TAG_SIS = 0x80000007 } <
2947 enum : uint { IO_REPARSE_TAG_FILTER_MANAGER = 0x8000000B } <
2948 enum : uint { IO_COMPLETION_MODIFY_STATE = 0x0002 } <
2949 enum : uint { IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x <
2950 enum : uint { DUPLICATE_CLOSE_SOURCE = 0x00000001 } <
2951 enum : uint { DUPLICATE_SAME_ACCESS = 0x00000002 } <
> 2836 align(4) struct IMAGE_NT_HEADERS64 {
> 2837 DWORD Signature;
> 2838 IMAGE_FILE_HEADER FileHeader;
> 2839 IMAGE_OPTIONAL_HEADER OptionalHeader;
2952 | 2840 }
2953 alias int _SYSTEM_POWER_STATE; <
2954 enum { <
2955 PowerSystemUnspecified = 0, <
2956 PowerSystemWorking = 1, <
2957 PowerSystemSleeping1 = 2, <
2958 PowerSystemSleeping2 = 3, <
2959 PowerSystemSleeping3 = 4, <
2960 PowerSystemHibernate = 5, <
2961 PowerSystemShutdown = 6, <
2962 PowerSystemMaximum = 7, <
> 2841 alias IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64;
2963 } | 2842
2964 alias _SYSTEM_POWER_STATE SYSTEM_POWER_STATE; <
2965 alias _SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE; <
> 2843 struct IMAGE_ROM_HEADERS {
> 2844 IMAGE_FILE_HEADER FileHeader;
> 2845 IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
2966 | 2846 }
2967 enum : uint { POWER_SYSTEM_MAXIMUM = 7 } <
> 2847 alias IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS;
2968 | 2848
2969 enum _4 { <
2970 PowerActionNone = 0, <
2971 PowerActionReserved, <
2972 PowerActionSleep, <
2973 PowerActionHibernate, <
2974 PowerActionShutdown, <
2975 PowerActionShutdownReset, <
2976 PowerActionShutdownOff, <
2977 PowerActionWarmEject, | 2849 struct IMAGE_SECTION_HEADER {
2978 } <
> 2850 BYTE[IMAGE_SIZEOF_SHORT_NAME] Name;
2979 alias _4 POWER_ACTION; | 2851 union _Misc {
2980 alias _4* PPOWER_ACTION; | 2852 DWORD PhysicalAddress;
> 2853 DWORD VirtualSize;
2981 | 2854 }
2982 alias int _DEVICE_POWER_STATE; <
2983 enum { | 2855 _Misc Misc;
2984 PowerDeviceUnspecified = 0, | 2856 DWORD VirtualAddress;
2985 PowerDeviceD0, | 2857 DWORD SizeOfRawData;
2986 PowerDeviceD1, | 2858 DWORD PointerToRawData;
2987 PowerDeviceD2, | 2859 DWORD PointerToRelocations;
2988 PowerDeviceD3, | 2860 DWORD PointerToLinenumbers;
2989 PowerDeviceMaximum, | 2861 WORD NumberOfRelocations;
> 2862 WORD NumberOfLinenumbers;
> 2863 DWORD Characteristics;
2990 } | 2864 }
2991 alias _DEVICE_POWER_STATE DEVICE_POWER_STATE; <
2992 alias _DEVICE_POWER_STATE* PDEVICE_POWER_STATE; <
> 2865 alias IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER;
2993 | 2866
2994 enum : DWORD { ES_SYSTEM_REQUIRED = 0x00000001 } <
2995 enum : DWORD { ES_DISPLAY_REQUIRED = 0x00000002 } | 2867 struct IMAGE_SYMBOL {
2996 enum : DWORD { ES_USER_PRESENT = 0x00000004 } | 2868 union _N {
2997 enum : DWORD { ES_CONTINUOUS = 0x80000000 } | 2869 BYTE[8] ShortName;
2998 <
2999 alias DWORD EXECUTION_STATE; <
3000 <
3001 enum _5 { <
3002 LT_DONT_CARE, <
3003 LT_LOWEST_LATENCY, <
3004 } <
3005 alias _5 LATENCY_TIME; <
3006 <
3007 enum : uint { PDCAP_D0_SUPPORTED = 0x00000001 } <
3008 enum : uint { PDCAP_D1_SUPPORTED = 0x00000002 } <
3009 enum : uint { PDCAP_D2_SUPPORTED = 0x00000004 } <
3010 enum : uint { PDCAP_D3_SUPPORTED = 0x00000008 } <
3011 enum : uint { PDCAP_WAKE_FROM_D0_SUPPORTED = 0x00000010 } <
3012 enum : uint { PDCAP_WAKE_FROM_D1_SUPPORTED = 0x00000020 } <
3013 enum : uint { PDCAP_WAKE_FROM_D2_SUPPORTED = 0x00000040 } <
3014 enum : uint { PDCAP_WAKE_FROM_D3_SUPPORTED = 0x00000080 } <
3015 enum : uint { PDCAP_WARM_EJECT_SUPPORTED = 0x00000100 } <
3016 <
3017 struct CM_Power_Data_s { | 2870 struct Name {
3018 DWORD PD_Size; | 2871 DWORD Short;
3019 DEVICE_POWER_STATE PD_MostRecentPowerState; <
3020 DWORD PD_Capabilities; <
3021 DWORD PD_D1Latency; | 2872 DWORD Long;
3022 DWORD PD_D2Latency; <
3023 DWORD PD_D3Latency; <
3024 DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM]; <
3025 SYSTEM_POWER_STATE PD_DeepestSystemWake; <
3026 } | 2873 }
3027 alias CM_Power_Data_s CM_POWER_DATA; <
3028 alias CM_Power_Data_s* PCM_POWER_DATA; <
> 2874 PBYTE[2] LongName;
3029 | 2875 }
3030 enum _6 { <
3031 SystemPowerPolicyAc, <
3032 SystemPowerPolicyDc, <
3033 VerifySystemPolicyAc, <
3034 VerifySystemPolicyDc, <
3035 SystemPowerCapabilities, <
3036 SystemBatteryState, <
3037 SystemPowerStateHandler, <
3038 ProcessorStateHandler, <
3039 SystemPowerPolicyCurrent, <
3040 AdministratorPowerPolicy, <
3041 SystemReserveHiberFile, <
3042 ProcessorInformation, <
3043 SystemPowerInformation, <
3044 ProcessorStateHandler2, <
3045 LastWakeTime, <
3046 LastSleepTime, <
3047 SystemExecutionState, <
3048 SystemPowerStateNotifyHandler, <
3049 ProcessorPowerPolicyAc, <
3050 ProcessorPowerPolicyDc, <
3051 VerifyProcessorPowerPolicyAc, <
3052 VerifyProcessorPowerPolicyDc, <
3053 ProcessorPowerPolicyCurrent, <
3054 } <
3055 alias _6 POWER_INFORMATION_LEVEL; <
3056 <
3057 struct _7 { <
> 2876 _N N;
3058 DWORD Granularity; | 2877 DWORD Value;
> 2878 SHORT SectionNumber;
3059 DWORD Capacity; | 2879 WORD Type;
> 2880 BYTE StorageClass;
> 2881 BYTE NumberOfAuxSymbols;
3060 } | 2882 }
3061 alias _7 BATTERY_REPORTING_SCALE; <
3062 alias _7* PBATTERY_REPORTING_SCALE; <
> 2883 alias IMAGE_SYMBOL* PIMAGE_SYMBOL;
3063 | 2884
> 2885 union IMAGE_AUX_SYMBOL {
3064 struct _8 { | 2886 struct _Sym {
3065 POWER_ACTION Action; <
> 2887 DWORD TagIndex;
> 2888 union _Misc {
> 2889 struct _LnSz {
> 2890 WORD Linenumber;
3066 DWORD Flags; | 2891 WORD Size;
3067 DWORD EventCode; <
3068 } | 2892 }
3069 alias _8 POWER_ACTION_POLICY; <
3070 alias _8* PPOWER_ACTION_POLICY; <
> 2893 _LnSz LnSz;
> 2894 DWORD TotalSize;
3071 | 2895 }
3072 enum : uint { POWER_ACTION_QUERY_ALLOWED = 0x00000001 } <
3073 enum : uint { POWER_ACTION_UI_ALLOWED = 0x00000002 } <
3074 enum : uint { POWER_ACTION_OVERRIDE_APPS = 0x00000004 } <
3075 enum : uint { POWER_ACTION_LIGHTEST_FIRST = 0x10000000 } <
3076 enum : uint { POWER_ACTION_LOCK_CONSOLE = 0x20000000 } <
3077 enum : uint { POWER_ACTION_DISABLE_WAKES = 0x40000000 } <
3078 enum : uint { POWER_ACTION_CRITICAL = 0x80000000 } <
> 2896 _Misc Misc;
> 2897 union _FcnAry {
> 2898 struct _Function {
> 2899 DWORD PointerToLinenumber;
> 2900 DWORD PointerToNextFunction;
3079 | 2901 }
3080 enum : uint { POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001 } <
3081 enum : uint { POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002 } <
3082 enum : uint { POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004 } <
3083 enum : uint { POWER_USER_NOTIFY_BUTTON = 0x00000008 } <
3084 enum : uint { POWER_USER_NOTIFY_SHUTDOWN = 0x00000010 } <
3085 enum : uint { POWER_FORCE_TRIGGER_RESET = 0x80000000 } <
3086 <
> 2902 _Function Function;
3087 struct _9 { | 2903 struct _Array {
3088 BOOLEAN Enable; <
3089 BYTE Spare[3]; <
3090 DWORD BatteryLevel; <
3091 POWER_ACTION_POLICY PowerPolicy; <
3092 SYSTEM_POWER_STATE MinSystemState; <
> 2904 WORD[4] Dimension;
3093 } | 2905 }
3094 alias _9 SYSTEM_POWER_LEVEL; <
3095 alias _9* PSYSTEM_POWER_LEVEL; <
> 2906 _Array Array;
3096 | 2907 }
3097 enum : uint { NUM_DISCHARGE_POLICIES = 4 } <
3098 enum : uint { DISCHARGE_POLICY_CRITICAL = 0 } <
3099 enum : uint { DISCHARGE_POLICY_LOW = 1 } <
> 2908 _FcnAry FcnAry;
> 2909 WORD TvIndex;
3100 | 2910 }
3101 enum : uint { PO_THROTTLE_NONE = 0 } <
3102 enum : uint { PO_THROTTLE_CONSTANT = 1 } <
3103 enum : uint { PO_THROTTLE_DEGRADE = 2 } <
3104 enum : uint { PO_THROTTLE_ADAPTIVE = 3 } <
3105 enum : uint { PO_THROTTLE_MAXIMUM = 4 } <
3106 <
> 2911 _Sym Sym;
3107 struct _SYSTEM_POWER_POLICY { | 2912 struct _File {
3108 DWORD Revision; <
> 2913 BYTE[IMAGE_SIZEOF_SYMBOL] Name;
3109 | 2914 }
3110 POWER_ACTION_POLICY PowerButton; <
3111 POWER_ACTION_POLICY SleepButton; <
3112 POWER_ACTION_POLICY LidClose; <
3113 SYSTEM_POWER_STATE LidOpenWake; <
3114 DWORD Reserved; <
3115 POWER_ACTION_POLICY Idle; <
3116 DWORD IdleTimeout; <
3117 BYTE IdleSensitivity; <
3118 <
3119 BYTE DynamicThrottle; <
3120 BYTE Spare2[2]; <
3121 SYSTEM_POWER_STATE MinSleep; <
3122 SYSTEM_POWER_STATE MaxSleep; <
3123 SYSTEM_POWER_STATE ReducedLatencySleep; <
3124 DWORD WinLogonFlags; <
3125 DWORD Spare3; <
3126 DWORD DozeS4Timeout; <
3127 DWORD BroadcastCapacityResolution; <
3128 SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; <
3129 DWORD VideoTimeout; <
3130 BOOLEAN VideoDimDisplay; <
3131 DWORD VideoReserved[3]; <
3132 DWORD SpindownTimeout; <
3133 BOOLEAN OptimizeForPower; <
3134 BYTE FanThrottleTolerance; <
3135 BYTE ForcedThrottle; <
3136 BYTE MinThrottle; <
3137 POWER_ACTION_POLICY OverThrottled; <
3138 } <
3139 alias _SYSTEM_POWER_POLICY SYSTEM_POWER_POLICY; <
3140 alias _SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY; <
3141 <
3142 struct _PROCESSOR_POWER_POLICY_INFO { <
3143 <
3144 DWORD TimeCheck; <
3145 DWORD DemoteLimit; <
3146 DWORD PromoteLimit; <
3147 <
3148 BYTE DemotePercent; <
3149 BYTE PromotePercent; <
3150 BYTE Spare[2]; <
3151 // DWORD AllowDemotion:1; | 2915 _File File;
> 2916 struct _Section {
3152 // DWORD AllowPromotion:1; | 2917 DWORD Length;
> 2918 WORD NumberOfRelocations;
> 2919 WORD NumberOfLinenumbers;
3153 // DWORD Reserved:30; | 2920 DWORD CheckSum;
> 2921 SHORT Number;
> 2922 BYTE Selection;
3154 | 2923 }
> 2924 _Section Section;
3155 } | 2925 }
3156 alias _PROCESSOR_POWER_POLICY_INFO PROCESSOR_POWER_POLICY_INFO; <
3157 alias _PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO; <
> 2926 alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL;
3158 | 2927
3159 struct _PROCESSOR_POWER_POLICY { <
> 2928 struct IMAGE_COFF_SYMBOLS_HEADER {
> 2929 DWORD NumberOfSymbols;
> 2930 DWORD LvaToFirstSymbol;
> 2931 DWORD NumberOfLinenumbers;
> 2932 DWORD LvaToFirstLinenumber;
> 2933 DWORD RvaToFirstByteOfCode;
3160 DWORD Revision; | 2934 DWORD RvaToLastByteOfCode;
> 2935 DWORD RvaToFirstByteOfData;
> 2936 DWORD RvaToLastByteOfData;
3161 | 2937 }
3162 BYTE DynamicThrottle; <
3163 BYTE Spare[3]; <
3164 DWORD Reserved; <
> 2938 alias IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER;
3165 | 2939
> 2940 struct IMAGE_RELOCATION {
> 2941 union {
> 2942 DWORD VirtualAddress;
3166 DWORD PolicyCount; | 2943 DWORD RelocCount;
3167 PROCESSOR_POWER_POLICY_INFO Policy[3]; <
3168 } | 2944 }
3169 alias _PROCESSOR_POWER_POLICY PROCESSOR_POWER_POLICY; <
3170 alias _PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY; <
> 2945 DWORD SymbolTableIndex;
> 2946 WORD Type;
3171 | 2947 }
3172 struct _ADMINISTRATOR_POWER_POLICY { <
> 2948 alias IMAGE_RELOCATION* PIMAGE_RELOCATION;
3173 | 2949
3174 SYSTEM_POWER_STATE MinSleep; <
3175 SYSTEM_POWER_STATE MaxSleep; <
3176 DWORD MinVideoTimeout; <
3177 DWORD MaxVideoTimeout; <
3178 DWORD MinSpindownTimeout; <
3179 DWORD MaxSpindownTimeout; <
> 2950 align(4) struct IMAGE_BASE_RELOCATION {
> 2951 DWORD VirtualAddress;
> 2952 DWORD SizeOfBlock;
3180 } | 2953 }
3181 alias _ADMINISTRATOR_POWER_POLICY ADMINISTRATOR_POWER_POLICY; <
3182 alias _ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; <
> 2954 alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION;
3183 | 2955
3184 struct _10 { <
3185 <
3186 BOOLEAN PowerButtonPresent; <
3187 BOOLEAN SleepButtonPresent; <
3188 BOOLEAN LidPresent; <
3189 BOOLEAN SystemS1; <
3190 BOOLEAN SystemS2; <
3191 BOOLEAN SystemS3; <
3192 BOOLEAN SystemS4; <
3193 BOOLEAN SystemS5; <
3194 BOOLEAN HiberFilePresent; <
3195 BOOLEAN FullWake; <
3196 BOOLEAN VideoDimPresent; <
3197 BOOLEAN ApmPresent; <
3198 BOOLEAN UpsPresent; <
3199 BOOLEAN ThermalControl; <
3200 BOOLEAN ProcessorThrottle; <
3201 BYTE ProcessorMinThrottle; <
3202 BYTE ProcessorMaxThrottle; <
3203 BYTE spare2[4]; <
3204 BOOLEAN DiskSpinDown; <
3205 BYTE spare3[8]; <
3206 BOOLEAN SystemBatteriesPresent; <
3207 BOOLEAN BatteriesAreShortTerm; <
3208 BATTERY_REPORTING_SCALE BatteryScale[3]; <
3209 SYSTEM_POWER_STATE AcOnLineWake; <
3210 SYSTEM_POWER_STATE SoftLidWake; <
3211 SYSTEM_POWER_STATE RtcWake; <
3212 SYSTEM_POWER_STATE MinDeviceWakeState; <
3213 SYSTEM_POWER_STATE DefaultLowLatencyWake; <
3214 } <
3215 alias _10 SYSTEM_POWER_CAPABILITIES; <
3216 alias _10* PSYSTEM_POWER_CAPABILITIES; <
3217 <
3218 struct _11 { <
3219 BOOLEAN AcOnLine; <
3220 BOOLEAN BatteryPresent; <
3221 BOOLEAN Charging; <
3222 BOOLEAN Discharging; <
3223 BOOLEAN Spare1[4]; <
3224 DWORD MaxCapacity; <
3225 DWORD RemainingCapacity; <
> 2956 align(2) struct IMAGE_LINENUMBER {
> 2957 union _Type {
> 2958 DWORD SymbolTableIndex;
3226 DWORD Rate; | 2959 DWORD VirtualAddress;
3227 DWORD EstimatedTime; <
3228 DWORD DefaultAlert1; <
3229 DWORD DefaultAlert2; <
3230 } | 2960 }
3231 alias _11 SYSTEM_BATTERY_STATE; <
3232 alias _11* PSYSTEM_BATTERY_STATE; <
> 2961 _Type Type;
> 2962 WORD Linenumber;
3233 | 2963 }
3234 // #ifndef _MAC <
> 2964 alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER;
3235 2965
3236 align(4): 2966 align(4):
> 2967 struct IMAGE_ARCHIVE_MEMBER_HEADER {
> 2968 BYTE[16] Name;
> 2969 BYTE[12] Date;
> 2970 BYTE[6] UserID;
> 2971 BYTE[6] GroupID;
> 2972 BYTE[8] Mode;
> 2973 BYTE[10] Size;
> 2974 BYTE[2] EndHeader;
3237 | 2975 }
3238 enum : uint { IMAGE_DOS_SIGNATURE = 0x5A4D } <
3239 enum : uint { IMAGE_OS2_SIGNATURE = 0x454E } <
3240 enum : uint { IMAGE_OS2_SIGNATURE_LE = 0x454C } <
3241 enum : uint { IMAGE_VXD_SIGNATURE = 0x454C } <
3242 enum : uint { IMAGE_NT_SIGNATURE = 0x00004550 } <
> 2976 alias IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER;
3243 | 2977
3244 align(2): <
> 2978 struct IMAGE_EXPORT_DIRECTORY {
> 2979 DWORD Characteristics;
> 2980 DWORD TimeDateStamp;
> 2981 WORD MajorVersion;
> 2982 WORD MinorVersion;
> 2983 DWORD Name;
> 2984 DWORD Base;
> 2985 DWORD NumberOfFunctions;
> 2986 DWORD NumberOfNames;
> 2987 DWORD AddressOfFunctions;
> 2988 DWORD AddressOfNames;
> 2989 DWORD AddressOfNameOrdinals;
3245 | 2990 }
3246 // #else <
> 2991 alias IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY;
3247 | 2992
3248 // #... <
> 2993 struct IMAGE_IMPORT_BY_NAME {
> 2994 WORD Hint;
> 2995 BYTE _Name;
3249 | 2996
3250 // #... <
3251 // #... <
3252 // #... <
3253 // #... <
3254 // #endif <
> 2997 BYTE* Name() {
> 2998 return &_Name;
3255 | 2999 }
3256 struct _IMAGE_DOS_HEADER { <
3257 WORD e_magic; <
3258 WORD e_cblp; <
> 3000 }
> 3001 alias IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME;
> 3002
> 3003 struct IMAGE_THUNK_DATA32 {
> 3004 union _u1 {
> 3005 DWORD ForwarderString;
3259 WORD e_cp; | 3006 DWORD Function;
3260 WORD e_crlc; <
3261 WORD e_cparhdr; <
3262 WORD e_minalloc; <
3263 WORD e_maxalloc; <
3264 WORD e_ss; | 3007 DWORD Ordinal;
3265 WORD e_sp; <
3266 WORD e_csum; <
3267 WORD e_ip; <
3268 WORD e_cs; <
3269 WORD e_lfarlc; <
3270 WORD e_ovno; <
3271 WORD e_res[4]; <
3272 WORD e_oemid; <
3273 WORD e_oeminfo; <
3274 WORD e_res2[10]; <
3275 LONG e_lfanew; <
> 3008 DWORD AddressOfData;
3276 } | 3009 }
3277 alias _IMAGE_DOS_HEADER IMAGE_DOS_HEADER; <
3278 alias _IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER; <
> 3010 _u1 u1;
3279 | 3011 }
3280 struct _IMAGE_OS2_HEADER { <
3281 WORD ne_magic; <
3282 CHAR ne_ver; | 3012 alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32;
3283 CHAR ne_rev; <
> 3013
3284 WORD ne_enttab; | 3014 struct IMAGE_THUNK_DATA64 {
3285 WORD ne_cbenttab; | 3015 union _u1 {
3286 LONG ne_crc; | 3016 ULONGLONG ForwarderString;
3287 WORD ne_flags; | 3017 ULONGLONG Function;
3288 WORD ne_autodata; | 3018 ULONGLONG Ordinal;
3289 WORD ne_heap; | 3019 ULONGLONG AddressOfData;
3290 WORD ne_stack; <
> 3020 }
3291 LONG ne_csip; | 3021 _u1 u1;
3292 LONG ne_sssp; <
> 3022 }
3293 WORD ne_cseg; | 3023 alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64;
3294 WORD ne_cmod; <
> 3024
3295 WORD ne_cbnrestab; | 3025 struct IMAGE_IMPORT_DESCRIPTOR {
3296 WORD ne_segtab; | 3026 union {
3297 WORD ne_rsrctab; | 3027 DWORD Characteristics;
3298 WORD ne_restab; | 3028 DWORD OriginalFirstThunk;
3299 WORD ne_modtab; <
> 3029 }
3300 WORD ne_imptab; | 3030 DWORD TimeDateStamp;
3301 LONG ne_nrestab; | 3031 DWORD ForwarderChain;
3302 WORD ne_cmovent; | 3032 DWORD Name;
3303 WORD ne_align; | 3033 DWORD FirstThunk;
3304 WORD ne_cres; <
> 3034 }
3305 BYTE ne_exetyp; | 3035 alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR;
3306 BYTE ne_flagsothers; <
> 3036
3307 WORD ne_pretthunks; | 3037 struct IMAGE_BOUND_IMPORT_DESCRIPTOR {
3308 WORD ne_psegrefbytes; | 3038 DWORD TimeDateStamp;
3309 WORD ne_swaparea; | 3039 WORD OffsetModuleName;
3310 WORD ne_expver; | 3040 WORD NumberOfModuleForwarderRefs;
3311 } | 3041 }
3312 alias _IMAGE_OS2_HEADER IMAGE_OS2_HEADER; | 3042 alias IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR;
3313 alias _IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER; <
3314 | 3043
> 3044 struct IMAGE_BOUND_FORWARDER_REF {
3315 struct _IMAGE_VXD_HEADER { | 3045 DWORD TimeDateStamp;
3316 WORD e32_magic; | 3046 WORD OffsetModuleName;
3317 BYTE e32_border; <
3318 BYTE e32_worder; <
3319 DWORD e32_level; <
3320 WORD e32_cpu; | 3047 WORD Reserved;
> 3048 }
> 3049 alias IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF;
> 3050
3321 WORD e32_os; | 3051 struct IMAGE_TLS_DIRECTORY32 {
3322 DWORD e32_ver; | 3052 DWORD StartAddressOfRawData;
3323 DWORD e32_mflags; | 3053 DWORD EndAddressOfRawData;
3324 DWORD e32_mpages; | 3054 DWORD AddressOfIndex;
3325 DWORD e32_startobj; | 3055 DWORD AddressOfCallBacks;
3326 DWORD e32_eip; | 3056 DWORD SizeOfZeroFill;
3327 DWORD e32_stackobj; | 3057 DWORD Characteristics;
3328 DWORD e32_esp; <
> 3058 }
3329 DWORD e32_pagesize; | 3059 alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32;
3330 DWORD e32_lastpagesize; <
> 3060
3331 DWORD e32_fixupsize; | 3061 struct IMAGE_TLS_DIRECTORY64 {
3332 DWORD e32_fixupsum; | 3062 ULONGLONG StartAddressOfRawData;
3333 DWORD e32_ldrsize; | 3063 ULONGLONG EndAddressOfRawData;
3334 DWORD e32_ldrsum; | 3064 ULONGLONG AddressOfIndex;
3335 DWORD e32_objtab; | 3065 ULONGLONG AddressOfCallBacks;
3336 DWORD e32_objcnt; | 3066 DWORD SizeOfZeroFill;
3337 DWORD e32_objmap; | 3067 DWORD Characteristics;
3338 DWORD e32_itermap; <
> 3068 }
3339 DWORD e32_rsrctab; | 3069 alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64;
3340 DWORD e32_rsrccnt; <
> 3070
3341 DWORD e32_restab; | 3071 struct IMAGE_RESOURCE_DIRECTORY {
3342 DWORD e32_enttab; | 3072 DWORD Characteristics;
3343 DWORD e32_dirtab; | 3073 DWORD TimeDateStamp;
3344 DWORD e32_dircnt; | 3074 WORD MajorVersion;
3345 DWORD e32_fpagetab; | 3075 WORD MinorVersion;
3346 DWORD e32_frectab; | 3076 WORD NumberOfNamedEntries;
3347 DWORD e32_impmod; | 3077 WORD NumberOfIdEntries;
3348 DWORD e32_impmodcnt; <
> 3078 }
3349 DWORD e32_impproc; | 3079 alias IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY;
3350 DWORD e32_pagesum; <
> 3080
3351 DWORD e32_datapage; | 3081 struct IMAGE_RESOURCE_DIRECTORY_ENTRY {
3352 DWORD e32_preload; | 3082 union {
3353 DWORD e32_nrestab; | 3083 /+struct {
3354 DWORD e32_cbnrestab; | 3084 DWORD NameOffset:31;
3355 DWORD e32_nressum; | 3085 DWORD NameIsString:1;
> 3086 }+/
3356 DWORD e32_autodata; | 3087 DWORD Name;
3357 DWORD e32_debuginfo; <
3358 DWORD e32_debuglen; | 3088 WORD Id;
> 3089 }
> 3090 DWORD OffsetToData;
> 3091 /+struct {
> 3092 DWORD OffsetToDirectory:31;
> 3093 DWORD DataIsDirectory:1;
> 3094 }+/
> 3095
> 3096 uint NameOffset() { return Name & 0x7FFFFFFF; }
> 3097 bool NameIsString() { return cast(bool)(Name & 0x80000000); }
> 3098 uint OffsetToDirectory() { return OffsetToData & 0x7FFFFFFF; }
> 3099 bool DataIsDirectory() { return cast(bool)(OffsetToData & 0x80000000);
> 3100
> 3101 uint NameOffset(uint n) {
> 3102 Name = (Name & 0x80000000) | (n & 0x7FFFFFFF);
> 3103 return n & 0x7FFFFFFF;
> 3104 }
> 3105
> 3106 bool NameIsString(bool n) {
> 3107 Name = (Name & 0x7FFFFFFF) | (n << 31); return n;
> 3108 }
> 3109
> 3110 uint OffsetToDirectory(uint o) {
> 3111 OffsetToData = (OffsetToData & 0x80000000) | (o & 0x7FFFFFFF);
> 3112 return o & 0x7FFFFFFF;
> 3113 }
> 3114
> 3115 bool DataIsDirectory(bool d) {
> 3116 OffsetToData = (OffsetToData & 0x7FFFFFFF) | (d << 31); return d
> 3117 }
> 3118 }
> 3119 alias IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY;
> 3120
> 3121 struct IMAGE_RESOURCE_DIRECTORY_STRING {
> 3122 WORD Length;
> 3123 CHAR _NameString;
> 3124
> 3125 CHAR* NameString() { return &_NameString; }
> 3126 }
> 3127 alias IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING;
> 3128
> 3129 struct IMAGE_RESOURCE_DIR_STRING_U {
> 3130 WORD Length;
> 3131 WCHAR _NameString;
> 3132
> 3133 WCHAR* NameString() { return &_NameString; }
> 3134 }
> 3135 alias IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U;
> 3136
> 3137 struct IMAGE_RESOURCE_DATA_ENTRY {
> 3138 DWORD OffsetToData;
3359 DWORD e32_instpreload; | 3139 DWORD Size;
3360 DWORD e32_instdemand; <
3361 DWORD e32_heapsize; | 3140 DWORD CodePage;
3362 BYTE e32_res3[12]; <
3363 DWORD e32_winresoff; | 3141 DWORD Reserved;
> 3142 }
> 3143 alias IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY;
> 3144
> 3145 struct IMAGE_LOAD_CONFIG_DIRECTORY {
> 3146 DWORD Characteristics;
> 3147 DWORD TimeDateStamp;
> 3148 WORD MajorVersion;
> 3149 WORD MinorVersion;
> 3150 DWORD GlobalFlagsClear;
> 3151 DWORD GlobalFlagsSet;
> 3152 DWORD CriticalSectionDefaultTimeout;
> 3153 DWORD DeCommitFreeBlockThreshold;
> 3154 DWORD DeCommitTotalFreeThreshold;
> 3155 PVOID LockPrefixTable;
> 3156 DWORD MaximumAllocationSize;
> 3157 DWORD VirtualMemoryThreshold;
> 3158 DWORD ProcessHeapFlags;
> 3159 DWORD[4] Reserved;
> 3160 }
> 3161 alias IMAGE_LOAD_CONFIG_DIRECTORY* PIMAGE_LOAD_CONFIG_DIRECTORY;
> 3162
> 3163 struct IMAGE_LOAD_CONFIG_DIRECTORY64 {
> 3164 DWORD Characteristics;
> 3165 DWORD TimeDateStamp;
> 3166 WORD MajorVersion;
> 3167 WORD MinorVersion;
> 3168 DWORD GlobalFlagsClear;
> 3169 DWORD GlobalFlagsSet;
> 3170 DWORD CriticalSectionDefaultTimeout;
> 3171 ULONGLONG DeCommitFreeBlockThreshold;
> 3172 ULONGLONG DeCommitTotalFreeThreshold;
> 3173 ULONGLONG LockPrefixTable;
> 3174 ULONGLONG MaximumAllocationSize;
> 3175 ULONGLONG VirtualMemoryThreshold;
> 3176 ULONGLONG ProcessAffinityMask;
> 3177 DWORD ProcessHeapFlags;
> 3178 WORD CSDFlags;
> 3179 WORD Reserved1;
> 3180 ULONGLONG EditList;
> 3181 DWORD[2] Reserved;
> 3182 }
> 3183 alias IMAGE_LOAD_CONFIG_DIRECTORY64* PIMAGE_LOAD_CONFIG_DIRECTORY64;
> 3184
> 3185 struct IMAGE_RUNTIME_FUNCTION_ENTRY {
> 3186 DWORD BeginAddress;
> 3187 DWORD EndAddress;
> 3188 PVOID ExceptionHandler;
> 3189 PVOID HandlerData;
> 3190 DWORD PrologEndAddress;
> 3191 }
> 3192 alias IMAGE_RUNTIME_FUNCTION_ENTRY* PIMAGE_RUNTIME_FUNCTION_ENTRY;
> 3193
> 3194 struct IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
> 3195 uint FuncStart;
> 3196 union {
> 3197 ubyte PrologLen;
> 3198 uint _bf;
> 3199 }
> 3200 /+
> 3201 unsigned int FuncLen:22;
> 3202 unsigned int ThirtyTwoBit:1;
> 3203 unsigned int ExceptionFlag:1;
> 3204 +/
> 3205 uint FuncLen() { return (_bf >> 8) & 0x3FFFFF; }
> 3206 bool ThirtyTwoBit() { return cast(bool)(_bf & 0x40000000); }
> 3207 bool ExceptionFlag() { return cast(bool)(_bf & 0x80000000); }
> 3208
> 3209 uint FuncLen(uint f) {
> 3210 _bf = (_bf & ~0x3FFFFF00) | ((f & 0x3FFFFF) << 8); return f & 0x
> 3211 }
> 3212
> 3213 bool ThirtyTwoBit(bool t) {
> 3214 _bf = (_bf & ~0x40000000) | (t << 30); return t;
> 3215 }
> 3216
> 3217 bool ExceptionFlag(bool e) {
> 3218 _bf = (_bf & ~0x80000000) | (e << 31); return e;
> 3219 }
> 3220 }
> 3221 alias IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY;
> 3222
> 3223 struct IMAGE_DEBUG_DIRECTORY {
> 3224 DWORD Characteristics;
> 3225 DWORD TimeDateStamp;
> 3226 WORD MajorVersion;
> 3227 WORD MinorVersion;
3364 DWORD e32_winreslen; | 3228 DWORD Type;
> 3229 DWORD SizeOfData;
> 3230 DWORD AddressOfRawData;
> 3231 DWORD PointerToRawData;
> 3232 }
> 3233 alias IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY;
> 3234
> 3235 struct FPO_DATA {
> 3236 DWORD ulOffStart;
> 3237 DWORD cbProcSize;
> 3238 DWORD cdwLocals;
> 3239 WORD cdwParams;
> 3240 ubyte cbProlog;
> 3241 ubyte _bf;
> 3242 /+
3365 WORD e32_devid; | 3243 WORD cbRegs:3;
3366 WORD e32_ddkver; <
> 3244 WORD fHasSEH:1;
> 3245 WORD fUseBP:1;
> 3246 WORD reserved:1;
> 3247 WORD cbFrame:2;
> 3248 +/
> 3249 ubyte cbRegs() { return cast(ubyte)(_bf & 0x07); }
> 3250 bool fHasSEH() { return cast(bool)(_bf & 0x08); }
> 3251 bool fUseBP() { return cast(bool)(_bf & 0x10); }
> 3252 bool reserved() { return cast(bool)(_bf & 0x20); }
> 3253 ubyte cbFrame() { return cast(ubyte)(_bf >> 6); }
3367 } | 3254
3368 alias _IMAGE_VXD_HEADER IMAGE_VXD_HEADER; <
3369 alias _IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER; <
> 3255 ubyte cbRegs(ubyte c) {
> 3256 _bf = cast(ubyte) ((_bf & ~0x07) | (c & 0x07));
> 3257 return cast(ubyte)(c & 0x07);
3370 | 3258 }
3371 // #ifndef _MAC <
> 3259
> 3260 bool fHasSEH(bool f) { _bf = cast(ubyte)((_bf & ~0x08) | (f << 3)); ret
> 3261 bool fUseBP(bool f) { _bf = cast(ubyte)((_bf & ~0x10) | (f << 4)); ret
> 3262 bool reserved(bool r) { _bf = cast(ubyte)((_bf & ~0x20) | (r << 5)); ret
> 3263
> 3264 ubyte cbFrame(ubyte c) {
> 3265 _bf = cast(ubyte) ((_bf & ~0xC0) | ((c & 0x03) << 6));
> 3266 return cast(ubyte)(c & 0x03);
> 3267 }
> 3268 }
> 3269 alias FPO_DATA* PFPO_DATA;
> 3270
> 3271 struct IMAGE_DEBUG_MISC {
> 3272 DWORD DataType;
> 3273 DWORD Length;
> 3274 BOOLEAN Unicode;
> 3275 BYTE[3] Reserved;
> 3276 BYTE _Data;
> 3277
> 3278 BYTE* Data() { return &_Data; }
> 3279 }
> 3280 alias IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC;
> 3281
> 3282 struct IMAGE_FUNCTION_ENTRY {
> 3283 DWORD StartingAddress;
> 3284 DWORD EndingAddress;
> 3285 DWORD EndOfPrologue;
> 3286 }
> 3287 alias IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY;
> 3288
> 3289 struct IMAGE_FUNCTION_ENTRY64 {
> 3290 ULONGLONG StartingAddress;
> 3291 ULONGLONG EndingAddress;
> 3292 union {
> 3293 ULONGLONG EndOfPrologue;
> 3294 ULONGLONG UnwindInfoAddress;
> 3295 }
> 3296 }
> 3297 alias IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64;
> 3298
> 3299 struct IMAGE_SEPARATE_DEBUG_HEADER {
> 3300 WORD Signature;
> 3301 WORD Flags;
> 3302 WORD Machine;
> 3303 WORD Characteristics;
> 3304 DWORD TimeDateStamp;
> 3305 DWORD CheckSum;
> 3306 DWORD ImageBase;
> 3307 DWORD SizeOfImage;
> 3308 DWORD NumberOfSections;
> 3309 DWORD ExportedNamesSize;
> 3310 DWORD DebugDirectorySize;
> 3311 DWORD SectionAlignment;
> 3312 DWORD[2] Reserved;
> 3313 }
> 3314 alias IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER;
> 3315
> 3316 enum SERVICE_NODE_TYPE {
> 3317 DriverType = SERVICE_KERNEL_DRIVER,
> 3318 FileSystemType = SERVICE_FILE_SYSTEM_DRIVER,
> 3319 Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS,
> 3320 Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,
> 3321 AdapterType = SERVICE_ADAPTER,
> 3322 RecognizerType = SERVICE_RECOGNIZER_DRIVER
> 3323 }
> 3324
> 3325 enum SERVICE_LOAD_TYPE {
> 3326 BootLoad = SERVICE_BOOT_START,
> 3327 SystemLoad = SERVICE_SYSTEM_START,
> 3328 AutoLoad = SERVICE_AUTO_START,
> 3329 DemandLoad = SERVICE_DEMAND_START,
> 3330 DisableLoad = SERVICE_DISABLED
> 3331 }
> 3332
> 3333 enum SERVICE_ERROR_TYPE {
> 3334 IgnoreError = SERVICE_ERROR_IGNORE,
> 3335 NormalError = SERVICE_ERROR_NORMAL,
> 3336 SevereError = SERVICE_ERROR_SEVERE,
> 3337 CriticalError = SERVICE_ERROR_CRITICAL
> 3338 }
> 3339 alias SERVICE_ERROR_TYPE _CM_ERROR_CONTROL_TYPE;
> 3340
> 3341 //DAC: According to MSJ, 'UnderTheHood', May 1996, this
> 3342 // structure is not documented in any official Microsoft header file.
> 3343 alias void EXCEPTION_REGISTRATION_RECORD;
> 3344
3372 align: 3345 align:
3373 // #endif | 3346 struct NT_TIB {
> 3347 EXCEPTION_REGISTRATION_RECORD *ExceptionList;
> 3348 PVOID StackBase;
> 3349 PVOID StackLimit;
> 3350 PVOID SubSystemTib;
> 3351 union {
> 3352 PVOID FiberData;
> 3353 DWORD Version;
3374 | 3354 }
3375 struct _IMAGE_FILE_HEADER { <
> 3355 PVOID ArbitraryUserPointer;
> 3356 NT_TIB *Self;
> 3357 }
> 3358 alias NT_TIB* PNT_TIB;
> 3359
> 3360 struct REPARSE_DATA_BUFFER {
> 3361 DWORD ReparseTag;
> 3362 WORD ReparseDataLength;
> 3363 WORD Reserved;
> 3364 union {
> 3365 struct _GenericReparseBuffer {
> 3366 BYTE _DataBuffer;
> 3367
> 3368 BYTE* DataBuffer() { return &_DataBuffer; }
> 3369 }
> 3370 _GenericReparseBuffer GenericReparseBuffer;
> 3371 struct _SymbolicLinkReparseBuffer {
> 3372 WORD SubstituteNameOffset;
> 3373 WORD SubstituteNameLength;
> 3374 WORD PrintNameOffset;
> 3375 WORD PrintNameLength;
> 3376 // ??? This is in MinGW, but absent in MSDN docs
> 3377 ULONG Flags;
> 3378 WCHAR _PathBuffer;
> 3379
> 3380 WCHAR* PathBuffer() { return &_PathBuffer; }
> 3381 }
> 3382 _SymbolicLinkReparseBuffer SymbolicLinkReparseBuffer;
> 3383 struct _MountPointReparseBuffer {
> 3384 WORD SubstituteNameOffset;
> 3385 WORD SubstituteNameLength;
> 3386 WORD PrintNameOffset;
> 3387 WORD PrintNameLength;
> 3388 WCHAR _PathBuffer;
> 3389
> 3390 WCHAR* PathBuffer() { return &_PathBuffer; }
> 3391 }
> 3392 _MountPointReparseBuffer MountPointReparseBuffer;
> 3393 }
> 3394 }
> 3395 alias REPARSE_DATA_BUFFER *PREPARSE_DATA_BUFFER;
> 3396
> 3397 struct REPARSE_GUID_DATA_BUFFER {
> 3398 DWORD ReparseTag;
> 3399 WORD ReparseDataLength;
> 3400 WORD Reserved;
> 3401 GUID ReparseGuid;
> 3402 struct _GenericReparseBuffer {
> 3403 BYTE _DataBuffer;
> 3404
> 3405 BYTE* DataBuffer() { return &_DataBuffer; }
> 3406 }
> 3407 _GenericReparseBuffer GenericReparseBuffer;
> 3408 }
> 3409 alias REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER;
> 3410
> 3411 const size_t
> 3412 REPARSE_DATA_BUFFER_HEADER_SIZE = REPARSE_DATA_BUFFER.GenericReparseBuff
> 3413 REPARSE_GUID_DATA_BUFFER_HEADER_SIZE = REPARSE_GUID_DATA_BUFFER.GenericR
> 3414 MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384;
> 3415
> 3416
> 3417 struct REPARSE_POINT_INFORMATION {
> 3418 WORD ReparseDataLength;
> 3419 WORD UnparsedNameLength;
> 3420 }
> 3421 alias REPARSE_POINT_INFORMATION* PREPARSE_POINT_INFORMATION;
> 3422
> 3423 union FILE_SEGMENT_ELEMENT {
> 3424 PVOID64 Buffer;
> 3425 ULONGLONG Alignment;
> 3426 }
> 3427 alias FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT;
> 3428
> 3429 // JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants
> 3430 const DWORD
> 3431 JOB_OBJECT_LIMIT_WORKINGSET = 0x0001,
> 3432 JOB_OBJECT_LIMIT_PROCESS_TIME = 0x0002,
> 3433 JOB_OBJECT_LIMIT_JOB_TIME = 0x0004,
> 3434 JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x0008,
> 3435 JOB_OBJECT_LIMIT_AFFINITY = 0x0010,
> 3436 JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x0020,
> 3437 JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x0040,
> 3438 JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x0080,
> 3439 JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x0100,
> 3440 JOB_OBJECT_LIMIT_JOB_MEMORY = 0x0200,
> 3441 JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x0400,
> 3442 JOB_OBJECT_BREAKAWAY_OK = 0x0800,
> 3443 JOB_OBJECT_SILENT_BREAKAWAY = 0x1000;
> 3444
> 3445 // JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants
> 3446 const DWORD
> 3447 JOB_OBJECT_UILIMIT_HANDLES = 0x0001,
> 3448 JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x0002,
> 3449 JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x0004,
> 3450 JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x0008,
> 3451 JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x0010,
> 3452 JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x0020,
> 3453 JOB_OBJECT_UILIMIT_DESKTOP = 0x0040,
> 3454 JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x0080;
> 3455
> 3456 // JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants
> 3457 const DWORD
> 3458 JOB_OBJECT_SECURITY_NO_ADMIN = 0x0001,
> 3459 JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x0002,
> 3460 JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x0004,
> 3461 JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x0008;
> 3462
> 3463 // JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants
> 3464 enum : DWORD {
> 3465 JOB_OBJECT_TERMINATE_AT_END_OF_JOB,
> 3466 JOB_OBJECT_POST_AT_END_OF_JOB
> 3467 }
> 3468
> 3469 enum : DWORD {
> 3470 JOB_OBJECT_MSG_END_OF_JOB_TIME = 1,
> 3471 JOB_OBJECT_MSG_END_OF_PROCESS_TIME,
> 3472 JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT,
> 3473 JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO,
> 3474 JOB_OBJECT_MSG_NEW_PROCESS,
> 3475 JOB_OBJECT_MSG_EXIT_PROCESS,
> 3476 JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS,
> 3477 JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT,
> 3478 JOB_OBJECT_MSG_JOB_MEMORY_LIMIT
> 3479 }
> 3480
> 3481 enum JOBOBJECTINFOCLASS {
> 3482 JobObjectBasicAccountingInformation = 1,
> 3483 JobObjectBasicLimitInformation,
> 3484 JobObjectBasicProcessIdList,
> 3485 JobObjectBasicUIRestrictions,
> 3486 JobObjectSecurityLimitInformation,
> 3487 JobObjectEndOfJobTimeInformation,
> 3488 JobObjectAssociateCompletionPortInformation,
> 3489 JobObjectBasicAndIoAccountingInformation,
> 3490 JobObjectExtendedLimitInformation,
> 3491 JobObjectJobSetInformation,
> 3492 MaxJobObjectInfoClass
> 3493 }
> 3494
> 3495 struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
> 3496 LARGE_INTEGER TotalUserTime;
> 3497 LARGE_INTEGER TotalKernelTime;
> 3498 LARGE_INTEGER ThisPeriodTotalUserTime;
> 3499 LARGE_INTEGER ThisPeriodTotalKernelTime;
> 3500 DWORD TotalPageFaultCount;
> 3501 DWORD TotalProcesses;
> 3502 DWORD ActiveProcesses;
> 3503 DWORD TotalTerminatedProcesses;
> 3504 }
> 3505 alias JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORM
> 3506
> 3507 struct JOBOBJECT_BASIC_LIMIT_INFORMATION {
> 3508 LARGE_INTEGER PerProcessUserTimeLimit;
> 3509 LARGE_INTEGER PerJobUserTimeLimit;
> 3510 DWORD LimitFlags;
> 3511 SIZE_T MinimumWorkingSetSize;
> 3512 SIZE_T MaximumWorkingSetSize;
> 3513 DWORD ActiveProcessLimit;
> 3514 ULONG_PTR Affinity;
> 3515 DWORD PriorityClass;
> 3516 DWORD SchedulingClass;
> 3517 }
> 3518 alias JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION;
> 3519
> 3520 struct JOBOBJECT_BASIC_PROCESS_ID_LIST {
> 3521 DWORD NumberOfAssignedProcesses;
> 3522 DWORD NumberOfProcessIdsInList;
> 3523 ULONG_PTR _ProcessIdList;
> 3524
> 3525 ULONG_PTR* ProcessIdList() { return &_ProcessIdList; }
> 3526 }
> 3527 alias JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST;
> 3528
> 3529 struct JOBOBJECT_BASIC_UI_RESTRICTIONS {
> 3530 DWORD UIRestrictionsClass;
> 3531 }
> 3532 alias JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS;
> 3533
> 3534 struct JOBOBJECT_SECURITY_LIMIT_INFORMATION {
> 3535 DWORD SecurityLimitFlags;
> 3536 HANDLE JobToken;
> 3537 PTOKEN_GROUPS SidsToDisable;
> 3538 PTOKEN_PRIVILEGES PrivilegesToDelete;
> 3539 PTOKEN_GROUPS RestrictedSids;
> 3540 }
> 3541 alias JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATIO
> 3542
> 3543 struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
> 3544 DWORD EndOfJobTimeAction;
> 3545 }
> 3546 alias JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMAT
> 3547
> 3548 struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
> 3549 PVOID CompletionKey;
> 3550 HANDLE CompletionPort;
> 3551 }
> 3552 alias JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT;
> 3553
> 3554 struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
> 3555 JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo;
> 3556 IO_COUNTERS IoInfo;
> 3557 }
> 3558 alias JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION *PJOBOBJECT_BASIC_AND_IO_ACC
> 3559
> 3560 struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
> 3561 JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation;
> 3562 IO_COUNTERS IoInfo;
> 3563 SIZE_T ProcessMemoryLimit;
> 3564 SIZE_T JobMemoryLimit;
> 3565 SIZE_T PeakProcessMemoryUsed;
> 3566 SIZE_T PeakJobMemoryUsed;
> 3567 }
> 3568 alias JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATIO
> 3569
> 3570 struct JOBOBJECT_JOBSET_INFORMATION {
3376 WORD Machine; | 3571 DWORD MemberLevel;
3377 WORD NumberOfSections; <
> 3572 }
> 3573 alias JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION;
> 3574
> 3575 // MinGW: Making these defines conditional on WINVER will break ddk includes
> 3576 //static if (WINVER >= 0x0500) {
> 3577
> 3578 const DWORD
> 3579 ES_SYSTEM_REQUIRED = 0x00000001,
> 3580 ES_DISPLAY_REQUIRED = 0x00000002,
> 3581 ES_USER_PRESENT = 0x00000004,
> 3582 ES_CONTINUOUS = 0x80000000;
> 3583
> 3584 enum LATENCY_TIME {
> 3585 LT_DONT_CARE,
> 3586 LT_LOWEST_LATENCY
> 3587 }
> 3588 alias LATENCY_TIME* PLATENCY_TIME;
> 3589
> 3590 enum SYSTEM_POWER_STATE {
> 3591 PowerSystemUnspecified,
> 3592 PowerSystemWorking,
> 3593 PowerSystemSleeping1,
> 3594 PowerSystemSleeping2,
> 3595 PowerSystemSleeping3,
> 3596 PowerSystemHibernate,
> 3597 PowerSystemShutdown,
> 3598 PowerSystemMaximum
> 3599 }
> 3600 alias SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE;
> 3601
> 3602 const POWER_SYSTEM_MAXIMUM = SYSTEM_POWER_STATE.PowerSystemMaximum;
> 3603
> 3604 enum POWER_ACTION {
> 3605 PowerActionNone,
> 3606 PowerActionReserved,
> 3607 PowerActionSleep,
> 3608 PowerActionHibernate,
> 3609 PowerActionShutdown,
> 3610 PowerActionShutdownReset,
> 3611 PowerActionShutdownOff,
> 3612 PowerActionWarmEject
> 3613 }
> 3614 alias POWER_ACTION* PPOWER_ACTION;
> 3615
> 3616 static if (WINVER >= 0x600) {
> 3617 enum SYSTEM_POWER_CONDITION {
> 3618 PoAc,
> 3619 PoDc,
> 3620 PoHot,
> 3621 PoConditionMaximum
> 3622 }
> 3623 alias SYSTEM_POWER_CONDITION* PSYSTEM_POWER_CONDITION;
> 3624 }
> 3625
> 3626 enum DEVICE_POWER_STATE {
> 3627 PowerDeviceUnspecified,
> 3628 PowerDeviceD0,
> 3629 PowerDeviceD1,
> 3630 PowerDeviceD2,
> 3631 PowerDeviceD3,
> 3632 PowerDeviceMaximum
> 3633 }
> 3634 alias DEVICE_POWER_STATE* PDEVICE_POWER_STATE;
> 3635
> 3636 align(4):
> 3637 struct BATTERY_REPORTING_SCALE {
> 3638 DWORD Granularity;
3378 DWORD TimeDateStamp; | 3639 DWORD Capacity;
3379 DWORD PointerToSymbolTable; <
3380 DWORD NumberOfSymbols; <
3381 WORD SizeOfOptionalHeader; <
3382 WORD Characteristics; <
> 3640 }
> 3641 alias BATTERY_REPORTING_SCALE* PBATTERY_REPORTING_SCALE;
> 3642
> 3643 struct POWER_ACTION_POLICY {
> 3644 POWER_ACTION Action;
> 3645 ULONG Flags;
> 3646 ULONG EventCode;
> 3647 }
> 3648 alias POWER_ACTION_POLICY* PPOWER_ACTION_POLICY;
> 3649
> 3650 // POWER_ACTION_POLICY.Flags constants
> 3651 const ULONG
> 3652 POWER_ACTION_QUERY_ALLOWED = 0x00000001,
> 3653 POWER_ACTION_UI_ALLOWED = 0x00000002,
> 3654 POWER_ACTION_OVERRIDE_APPS = 0x00000004,
> 3655 POWER_ACTION_LIGHTEST_FIRST = 0x10000000,
> 3656 POWER_ACTION_LOCK_CONSOLE = 0x20000000,
> 3657 POWER_ACTION_DISABLE_WAKES = 0x40000000,
> 3658 POWER_ACTION_CRITICAL = 0x80000000;
> 3659
> 3660 // POWER_ACTION_POLICY.EventCode constants
> 3661 const ULONG
> 3662 POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001,
> 3663 POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002,
> 3664 POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004,
> 3665 POWER_USER_NOTIFY_BUTTON = 0x00000008,
> 3666 POWER_USER_NOTIFY_SHUTDOWN = 0x00000010,
> 3667 POWER_FORCE_TRIGGER_RESET = 0x80000000;
> 3668
> 3669 const size_t
> 3670 DISCHARGE_POLICY_CRITICAL = 0,
> 3671 DISCHARGE_POLICY_LOW = 1,
> 3672 NUM_DISCHARGE_POLICIES = 4;
> 3673
> 3674 enum : BYTE {
> 3675 PO_THROTTLE_NONE,
> 3676 PO_THROTTLE_CONSTANT,
> 3677 PO_THROTTLE_DEGRADE,
> 3678 PO_THROTTLE_ADAPTIVE,
> 3679 PO_THROTTLE_MAXIMUM
> 3680 }
> 3681
> 3682 struct SYSTEM_POWER_LEVEL {
> 3683 BOOLEAN Enable;
> 3684 UCHAR[3] Spare;
> 3685 ULONG BatteryLevel;
> 3686 POWER_ACTION_POLICY PowerPolicy;
> 3687 SYSTEM_POWER_STATE MinSystemState;
> 3688 }
> 3689 alias SYSTEM_POWER_LEVEL* PSYSTEM_POWER_LEVEL;
> 3690
> 3691 struct SYSTEM_POWER_POLICY {
> 3692 ULONG Revision;
> 3693 POWER_ACTION_POLICY PowerButton;
> 3694 POWER_ACTION_POLICY SleepButton;
> 3695 POWER_ACTION_POLICY LidClose;
> 3696 SYSTEM_POWER_STATE LidOpenWake;
> 3697 ULONG Reserved;
> 3698 POWER_ACTION_POLICY Idle;
> 3699 ULONG IdleTimeout;
> 3700 UCHAR IdleSensitivity;
> 3701 UCHAR DynamicThrottle;
> 3702 UCHAR[2] Spare2;
> 3703 SYSTEM_POWER_STATE MinSleep;
> 3704 SYSTEM_POWER_STATE MaxSleep;
> 3705 SYSTEM_POWER_STATE ReducedLatencySleep;
> 3706 ULONG WinLogonFlags;
> 3707 ULONG Spare3;
> 3708 ULONG DozeS4Timeout;
> 3709 ULONG BroadcastCapacityResolution;
> 3710 SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy;
> 3711 ULONG VideoTimeout;
> 3712 BOOLEAN VideoDimDisplay;
> 3713 ULONG[3] VideoReserved;
> 3714 ULONG SpindownTimeout;
> 3715 BOOLEAN OptimizeForPower;
> 3716 UCHAR FanThrottleTolerance;
> 3717 UCHAR ForcedThrottle;
> 3718 UCHAR MinThrottle;
> 3719 POWER_ACTION_POLICY OverThrottled;
> 3720 }
> 3721 alias SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY;
> 3722
> 3723 struct SYSTEM_POWER_CAPABILITIES {
> 3724 BOOLEAN PowerButtonPresent;
> 3725 BOOLEAN SleepButtonPresent;
> 3726 BOOLEAN LidPresent;
> 3727 BOOLEAN SystemS1;
> 3728 BOOLEAN SystemS2;
> 3729 BOOLEAN SystemS3;
> 3730 BOOLEAN SystemS4;
> 3731 BOOLEAN SystemS5;
> 3732 BOOLEAN HiberFilePresent;
> 3733 BOOLEAN FullWake;
> 3734 BOOLEAN VideoDimPresent;
> 3735 BOOLEAN ApmPresent;
> 3736 BOOLEAN UpsPresent;
> 3737 BOOLEAN ThermalControl;
> 3738 BOOLEAN ProcessorThrottle;
> 3739 UCHAR ProcessorMinThrottle;
> 3740 UCHAR ProcessorMaxThrottle;
> 3741 UCHAR[4] spare2;
> 3742 BOOLEAN DiskSpinDown;
> 3743 UCHAR[8] spare3;
> 3744 BOOLEAN SystemBatteriesPresent;
> 3745 BOOLEAN BatteriesAreShortTerm;
> 3746 BATTERY_REPORTING_SCALE[3] BatteryScale;
> 3747 SYSTEM_POWER_STATE AcOnLineWake;
> 3748 SYSTEM_POWER_STATE SoftLidWake;
> 3749 SYSTEM_POWER_STATE RtcWake;
> 3750 SYSTEM_POWER_STATE MinDeviceWakeState;
> 3751 SYSTEM_POWER_STATE DefaultLowLatencyWake;
> 3752 }
> 3753 alias SYSTEM_POWER_CAPABILITIES* PSYSTEM_POWER_CAPABILITIES;
> 3754
> 3755 struct SYSTEM_BATTERY_STATE {
> 3756 BOOLEAN AcOnLine;
> 3757 BOOLEAN BatteryPresent;
> 3758 BOOLEAN Charging;
> 3759 BOOLEAN Discharging;
> 3760 BOOLEAN[4] Spare1;
> 3761 ULONG MaxCapacity;
> 3762 ULONG RemainingCapacity;
> 3763 ULONG Rate;
> 3764 ULONG EstimatedTime;
> 3765 ULONG DefaultAlert1;
> 3766 ULONG DefaultAlert2;
> 3767 }
> 3768 alias SYSTEM_BATTERY_STATE* PSYSTEM_BATTERY_STATE;
> 3769
> 3770 enum POWER_INFORMATION_LEVEL {
> 3771 SystemPowerPolicyAc,
> 3772 SystemPowerPolicyDc,
> 3773 VerifySystemPolicyAc,
> 3774 VerifySystemPolicyDc,
> 3775 SystemPowerCapabilities,
> 3776 SystemBatteryState,
> 3777 SystemPowerStateHandler,
> 3778 ProcessorStateHandler,
> 3779 SystemPowerPolicyCurrent,
> 3780 AdministratorPowerPolicy,
> 3781 SystemReserveHiberFile,
> 3782 ProcessorInformation,
> 3783 SystemPowerInformation,
> 3784 ProcessorStateHandler2,
> 3785 LastWakeTime,
> 3786 LastSleepTime,
> 3787 SystemExecutionState,
> 3788 SystemPowerStateNotifyHandler,
> 3789 ProcessorPowerPolicyAc,
> 3790 ProcessorPowerPolicyDc,
> 3791 VerifyProcessorPowerPolicyAc,
> 3792 VerifyProcessorPowerPolicyDc,
> 3793 ProcessorPowerPolicyCurrent
> 3794 }
> 3795
> 3796 //#if 1 /* (WIN32_WINNT >= 0x0500) */
> 3797 struct SYSTEM_POWER_INFORMATION {
> 3798 ULONG MaxIdlenessAllowed;
> 3799 ULONG Idleness;
> 3800 ULONG TimeRemaining;
> 3801 UCHAR CoolingMode;
> 3802 }
> 3803 alias SYSTEM_POWER_INFORMATION* PSYSTEM_POWER_INFORMATION;
> 3804 //#endif
> 3805
> 3806 struct PROCESSOR_POWER_POLICY_INFO {
> 3807 ULONG TimeCheck;
> 3808 ULONG DemoteLimit;
> 3809 ULONG PromoteLimit;
> 3810 UCHAR DemotePercent;
> 3811 UCHAR PromotePercent;
> 3812 UCHAR[2] Spare;
> 3813 uint _bf;
> 3814
> 3815 bool AllowDemotion() { return cast(bool)(_bf & 1); }
> 3816 bool AllowPromotion() { return cast(bool)(_bf & 2); }
> 3817
> 3818 bool AllowDemotion(bool a) { _bf = (_bf & ~1) | a; return a; }
> 3819 bool AllowPromotion(bool a) { _bf = (_bf & ~2) | (a << 1); return a; }
> 3820 /+
> 3821 ULONG AllowDemotion : 1;
> 3822 ULONG AllowPromotion : 1;
> 3823 ULONG Reserved : 30;
> 3824 +/
> 3825 }
> 3826 alias PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO;
> 3827
> 3828 struct PROCESSOR_POWER_POLICY {
> 3829 ULONG Revision;
> 3830 UCHAR DynamicThrottle;
> 3831 UCHAR[3] Spare;
> 3832 ULONG Reserved;
> 3833 ULONG PolicyCount;
> 3834 PROCESSOR_POWER_POLICY_INFO[3] Policy;
> 3835 }
> 3836 alias PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY;
> 3837
> 3838 struct ADMINISTRATOR_POWER_POLICY {
> 3839 SYSTEM_POWER_STATE MinSleep;
> 3840 SYSTEM_POWER_STATE MaxSleep;
> 3841 ULONG MinVideoTimeout;
> 3842 ULONG MaxVideoTimeout;
> 3843 ULONG MinSpindownTimeout;
> 3844 ULONG MaxSpindownTimeout;
3383 } 3845 }
3384 alias _IMAGE_FILE_HEADER IMAGE_FILE_HEADER; | 3846 alias ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY;
3385 alias _IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER; <
3386 | 3847
3387 enum : uint { IMAGE_SIZEOF_FILE_HEADER = 20 } <
> 3848 //}//#endif /* WINVER >= 0x0500 */
3388 | 3849
> 3850 extern (Windows) {
3389 enum : uint { IMAGE_FILE_RELOCS_STRIPPED = 0x0001 } | 3851 alias void function(PVOID, DWORD, PVOID) PIMAGE_TLS_CALLBACK;
3390 enum : uint { IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002 } <
3391 enum : uint { IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004 } <
3392 enum : uint { IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008 } <
3393 enum : uint { IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010 } <
3394 enum : uint { IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020 } <
3395 enum : uint { IMAGE_FILE_BYTES_REVERSED_LO = 0x0080 } <
3396 enum : uint { IMAGE_FILE_32BIT_MACHINE = 0x0100 } <
3397 enum : uint { IMAGE_FILE_DEBUG_STRIPPED = 0x0200 } <
3398 enum : uint { IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400 } <
3399 enum : uint { IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800 } <
3400 enum : uint { IMAGE_FILE_SYSTEM = 0x1000 } <
3401 enum : uint { IMAGE_FILE_DLL = 0x2000 } <
3402 enum : uint { IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000 } <
3403 enum : uint { IMAGE_FILE_BYTES_REVERSED_HI = 0x8000 } <
3404 | 3852
3405 enum : uint { IMAGE_FILE_MACHINE_UNKNOWN = 0 } <
3406 enum : uint { IMAGE_FILE_MACHINE_I386 = 0x014c } <
3407 enum : uint { IMAGE_FILE_MACHINE_R3000 = 0x0162 } <
3408 enum : uint { IMAGE_FILE_MACHINE_R4000 = 0x0166 } <
3409 enum : uint { IMAGE_FILE_MACHINE_R10000 = 0x0168 } <
3410 enum : uint { IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169 } <
3411 enum : uint { IMAGE_FILE_MACHINE_ALPHA = 0x0184 } <
3412 enum : uint { IMAGE_FILE_MACHINE_SH3 = 0x01a2 } <
3413 enum : uint { IMAGE_FILE_MACHINE_SH3DSP = 0x01a3 } <
3414 enum : uint { IMAGE_FILE_MACHINE_SH3E = 0x01a4 } <
3415 enum : uint { IMAGE_FILE_MACHINE_SH4 = 0x01a6 } <
3416 enum : uint { IMAGE_FILE_MACHINE_SH5 = 0x01a8 } <
3417 enum : uint { IMAGE_FILE_MACHINE_ARM = 0x01c0 } <
3418 enum : uint { IMAGE_FILE_MACHINE_THUMB = 0x01c2 } <
3419 enum : uint { IMAGE_FILE_MACHINE_AM33 = 0x01d3 } <
3420 enum : uint { IMAGE_FILE_MACHINE_POWERPC = 0x01F0 } <
3421 enum : uint { IMAGE_FILE_MACHINE_POWERPCFP = 0x01f1 } <
3422 enum : uint { IMAGE_FILE_MACHINE_IA64 = 0x0200 } <
3423 enum : uint { IMAGE_FILE_MACHINE_MIPS16 = 0x0266 } <
3424 enum : uint { IMAGE_FILE_MACHINE_ALPHA64 = 0x0284 } <
3425 enum : uint { IMAGE_FILE_MACHINE_MIPSFPU = 0x0366 } <
3426 enum : uint { IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466 } <
3427 alias IMAGE_FILE_MACHINE_ALPHA64 IMAGE_FILE_MACHINE_AXP64; <
3428 enum : uint { IMAGE_FILE_MACHINE_TRICORE = 0x0520 } <
3429 enum : uint { IMAGE_FILE_MACHINE_CEF = 0x0CEF } <
3430 enum : uint { IMAGE_FILE_MACHINE_EBC = 0x0EBC } <
3431 enum : uint { IMAGE_FILE_MACHINE_AMD64 = 0x8664 } <
3432 enum : uint { IMAGE_FILE_MACHINE_M32R = 0x9041 } <
3433 enum : uint { IMAGE_FILE_MACHINE_CEE = 0xC0EE } <
> 3853 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
> 3854 alias LONG function(PEXCEPTION_POINTERS) PVECTORED_EXCEPTION_HAN
> 3855 alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACKFUNC;
3434 | 3856 }
3435 struct _IMAGE_DATA_DIRECTORY { <
3436 DWORD VirtualAddress; <
3437 DWORD Size; <
3438 } 3857 }
3439 alias _IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY; <
3440 alias _IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY; <
3441 3858
3442 enum : uint { IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 } | 3859 static if (WINVER >= 0x501) {
> 3860 enum HEAP_INFORMATION_CLASS {
> 3861 HeapCompatibilityInformation
> 3862 }
> 3863
> 3864 enum ACTIVATION_CONTEXT_INFO_CLASS {
> 3865 ActivationContextBasicInformation = 1,
> 3866 ActivationContextDetailedInformation,
> 3867 AssemblyDetailedInformationInActivationContext,
> 3868 FileInformationInAssemblyOfAssemblyInActivationContext
> 3869 }
> 3870
> 3871 struct ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {
> 3872 DWORD ulFlags;
> 3873 DWORD ulEncodedAssemblyIdentityLength;
> 3874 DWORD ulManifestPathType;
> 3875 DWORD ulManifestPathLength;
> 3876 LARGE_INTEGER liManifestLastWriteTime;
> 3877 DWORD ulPolicyPathType;
> 3878 DWORD ulPolicyPathLength;
> 3879 LARGE_INTEGER liPolicyLastWriteTime;
> 3880 DWORD ulMetadataSatelliteRosterIndex;
> 3881 DWORD ulManifestVersionMajor;
> 3882 DWORD ulManifestVersionMinor;
> 3883 DWORD ulPolicyVersionMajor;
> 3884 DWORD ulPolicyVersionMinor;
> 3885 DWORD ulAssemblyDirectoryNameLength;
> 3886 PCWSTR lpAssemblyEncodedAssemblyIdentity;
> 3887 PCWSTR lpAssemblyManifestPath;
> 3888 PCWSTR lpAssemblyPolicyPath;
> 3889 PCWSTR lpAssemblyDirectoryName;
> 3890 }
> 3891 alias ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION*
> 3892 PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
> 3893 alias CPtr!(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)
> 3894 PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
3443 3895
3444 struct _IMAGE_OPTIONAL_HEADER { | 3896 struct ACTIVATION_CONTEXT_DETAILED_INFORMATION {
> 3897 DWORD dwFlags;
> 3898 DWORD ulFormatVersion;
> 3899 DWORD ulAssemblyCount;
> 3900 DWORD ulRootManifestPathType;
> 3901 DWORD ulRootManifestPathChars;
> 3902 DWORD ulRootConfigurationPathType;
> 3903 DWORD ulRootConfigurationPathChars;
> 3904 DWORD ulAppDirPathType;
> 3905 DWORD ulAppDirPathChars;
> 3906 PCWSTR lpRootManifestPath;
> 3907 PCWSTR lpRootConfigurationPath;
> 3908 PCWSTR lpAppDirPath;
> 3909 }
> 3910 alias ACTIVATION_CONTEXT_DETAILED_INFORMATION*
> 3911 PACTIVATION_CONTEXT_DETAILED_INFORMATION;
> 3912 alias CPtr!(ACTIVATION_CONTEXT_DETAILED_INFORMATION)
> 3913 PCACTIVATION_CONTEXT_DETAILED_INFORMATION;
3445 3914
3446 WORD Magic; | 3915 struct ACTIVATION_CONTEXT_QUERY_INDEX {
3447 BYTE MajorLinkerVersion; | 3916 ULONG ulAssemblyIndex;
3448 BYTE MinorLinkerVersion; | 3917 ULONG ulFileIndexInAssembly;
3449 DWORD SizeOfCode; <
> 3918 }
3450 DWORD SizeOfInitializedData; | 3919 alias ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_IN
3451 DWORD SizeOfUninitializedData; | 3920 alias CPtr!(ACTIVATION_CONTEXT_QUERY_INDEX) PCACTIVATION_CONTEXT_QUERY_I
3452 DWORD AddressOfEntryPoint; <
3453 DWORD BaseOfCode; <
3454 DWORD BaseOfData; <
3455 3921
> 3922 struct ASSEMBLY_FILE_DETAILED_INFORMATION {
3456 DWORD ImageBase; | 3923 DWORD ulFlags;
3457 DWORD SectionAlignment; <
3458 DWORD FileAlignment; | 3924 DWORD ulFilenameLength;
3459 WORD MajorOperatingSystemVersion; | 3925 DWORD ulPathLength;
3460 WORD MinorOperatingSystemVersion; | 3926 PCWSTR lpFileName;
3461 WORD MajorImageVersion; | 3927 PCWSTR lpFilePath;
3462 WORD MinorImageVersion; <
> 3928 }
3463 WORD MajorSubsystemVersion; | 3929 alias ASSEMBLY_FILE_DETAILED_INFORMATION*
3464 WORD MinorSubsystemVersion; | 3930 PASSEMBLY_FILE_DETAILED_INFORMATION;
3465 DWORD Win32VersionValue; | 3931 alias CPtr!(ASSEMBLY_FILE_DETAILED_INFORMATION)
3466 DWORD SizeOfImage; | 3932 PCASSEMBLY_FILE_DETAILED_INFORMATION;
3467 DWORD SizeOfHeaders; <
3468 DWORD CheckSum; <
3469 WORD Subsystem; <
3470 WORD DllCharacteristics; <
3471 DWORD SizeOfStackReserve; <
3472 DWORD SizeOfStackCommit; <
3473 DWORD SizeOfHeapReserve; <
3474 DWORD SizeOfHeapCommit; <
3475 DWORD LoaderFlags; <
3476 DWORD NumberOfRvaAndSizes; <
3477 IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; <
3478 } 3933 }
3479 alias _IMAGE_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER32; <
3480 alias _IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER32; <
3481 <
3482 struct _IMAGE_ROM_OPTIONAL_HEADER { <
3483 WORD Magic; <
3484 BYTE MajorLinkerVersion; <
3485 BYTE MinorLinkerVersion; <
3486 DWORD SizeOfCode; <
3487 DWORD SizeOfInitializedData; <
3488 DWORD SizeOfUninitializedData; <
3489 DWORD AddressOfEntryPoint; <
3490 DWORD BaseOfCode; <
3491 DWORD BaseOfData; <
3492 DWORD BaseOfBss; <
3493 DWORD GprMask; <
3494 DWORD CprMask[4]; <
3495 DWORD GpValue; <
3496 } <
3497 alias _IMAGE_ROM_OPTIONAL_HEADER IMAGE_ROM_OPTIONAL_HEADER; <
3498 alias _IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER; <
3499 3934
3500 struct _IMAGE_OPTIONAL_HEADER64 { | 3935 version (Unicode) {
3501 WORD Magic; | 3936 alias OSVERSIONINFOW OSVERSIONINFO;
3502 BYTE MajorLinkerVersion; | 3937 alias OSVERSIONINFOEXW OSVERSIONINFOEX;
3503 BYTE MinorLinkerVersion; | 3938 } else {
3504 DWORD SizeOfCode; | 3939 alias OSVERSIONINFOA OSVERSIONINFO;
3505 DWORD SizeOfInitializedData; | 3940 alias OSVERSIONINFOEXA OSVERSIONINFOEX;
3506 DWORD SizeOfUninitializedData; <
3507 DWORD AddressOfEntryPoint; <
3508 DWORD BaseOfCode; <
3509 ULONGLONG ImageBase; <
3510 DWORD SectionAlignment; <
3511 DWORD FileAlignment; <
3512 WORD MajorOperatingSystemVersion; <
3513 WORD MinorOperatingSystemVersion; <
3514 WORD MajorImageVersion; <
3515 WORD MinorImageVersion; <
3516 WORD MajorSubsystemVersion; <
3517 WORD MinorSubsystemVersion; <
3518 DWORD Win32VersionValue; <
3519 DWORD SizeOfImage; <
3520 DWORD SizeOfHeaders; <
3521 DWORD CheckSum; <
3522 WORD Subsystem; <
3523 WORD DllCharacteristics; <
3524 ULONGLONG SizeOfStackReserve; <
3525 ULONGLONG SizeOfStackCommit; <
3526 ULONGLONG SizeOfHeapReserve; <
3527 ULONGLONG SizeOfHeapCommit; <
3528 DWORD LoaderFlags; <
3529 DWORD NumberOfRvaAndSizes; <
3530 IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; <
3531 } 3941 }
3532 alias _IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER64; <
3533 alias _IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64; <
3534 3942
3535 enum : uint { IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 } | 3943 alias OSVERSIONINFO* POSVERSIONINFO, LPOSVERSIONINFO;
3536 enum : uint { IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 } | 3944 alias OSVERSIONINFOEX* POSVERSIONINFOEX, LPOSVERSIONINFOEX;
3537 enum : uint { IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224 } <
3538 enum : uint { IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240 } <
> 3945
3539 3946
3540 enum : uint { IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b } | 3947 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
3541 enum : uint { IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b } | 3948 extern (Windows) ULONGLONG VerSetConditionMask(ULONGLONG, DWORD, BYTE);
3542 enum : uint { IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x107 } <
3543 <
3544 // #ifdef _WIN64 <
3545 // ... <
3546 // #... <
3547 // #... <
3548 // #else <
3549 alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; <
3550 alias PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; <
3551 alias IMAGE_SIZEOF_NT_OPTIONAL32_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER; <
3552 alias IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC; <
3553 // #endif <
3554 <
3555 struct _IMAGE_NT_HEADERS64 { <
3556 DWORD Signature; <
3557 IMAGE_FILE_HEADER FileHeader; <
3558 IMAGE_OPTIONAL_HEADER64 OptionalHeader; <
3559 } <
3560 alias _IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS64; <
3561 alias _IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64; <
3562 <
3563 struct _IMAGE_NT_HEADERS { <
3564 DWORD Signature; <
3565 IMAGE_FILE_HEADER FileHeader; <
3566 IMAGE_OPTIONAL_HEADER32 OptionalHeader; <
3567 } <
3568 alias _IMAGE_NT_HEADERS IMAGE_NT_HEADERS32; <
3569 alias _IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS32; <
3570 <
3571 struct _IMAGE_ROM_HEADERS { <
3572 IMAGE_FILE_HEADER FileHeader; <
3573 IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; <
3574 } <
3575 alias _IMAGE_ROM_HEADERS IMAGE_ROM_HEADERS; <
3576 alias _IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS; <
3577 <
3578 // #ifdef _WIN64 <
3579 // ... <
3580 // #else <
3581 alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; <
3582 alias PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; <
3583 // #endif <
3584 <
3585 // #define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) ((ULONG_PTR) <
3586 <
3587 enum : uint { IMAGE_SUBSYSTEM_UNKNOWN = 0 } <
3588 enum : uint { IMAGE_SUBSYSTEM_NATIVE = 1 } <
3589 enum : uint { IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 } <
3590 enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 } <
3591 enum : uint { IMAGE_SUBSYSTEM_OS2_CUI = 5 } <
3592 enum : uint { IMAGE_SUBSYSTEM_POSIX_CUI = 7 } <
3593 enum : uint { IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8 } <
3594 enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9 } <
3595 enum : uint { IMAGE_SUBSYSTEM_EFI_APPLICATION = 10 } <
3596 enum : uint { IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11 } <
3597 enum : uint { IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12 } <
3598 enum : uint { IMAGE_SUBSYSTEM_EFI_ROM = 13 } <
3599 enum : uint { IMAGE_SUBSYSTEM_XBOX = 14 } <
3600 <
3601 enum : uint { IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800 } <
3602 <
3603 enum : uint { IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000 } <
3604 <
3605 enum : uint { IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 } <
3606 <
3607 enum : uint { IMAGE_DIRECTORY_ENTRY_EXPORT = 0 } <
3608 enum : uint { IMAGE_DIRECTORY_ENTRY_IMPORT = 1 } <
3609 enum : uint { IMAGE_DIRECTORY_ENTRY_RESOURCE = 2 } <
3610 enum : uint { IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3 } <
3611 enum : uint { IMAGE_DIRECTORY_ENTRY_SECURITY = 4 } <
3612 enum : uint { IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 } <
3613 enum : uint { IMAGE_DIRECTORY_ENTRY_DEBUG = 6 } <
3614 <
3615 enum : uint { IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7 } <
3616 enum : uint { IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8 } <
3617 enum : uint { IMAGE_DIRECTORY_ENTRY_TLS = 9 } <
3618 enum : uint { IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10 } <
3619 enum : uint { IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11 } <
3620 enum : uint { IMAGE_DIRECTORY_ENTRY_IAT = 12 } <
3621 enum : uint { IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13 } <
3622 enum : uint { IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 } <
3623 <
3624 struct ANON_OBJECT_HEADER { <
3625 WORD Sig1; <
3626 WORD Sig2; <
3627 WORD Version; <
3628 WORD Machine; <
3629 DWORD TimeDateStamp; <
3630 CLSID ClassID; <
3631 DWORD SizeOfData; <
3632 } 3949 }
3633 3950
3634 enum : uint { IMAGE_SIZEOF_SHORT_NAME = 8 } | 3951 version (Win64) {
3635 <
3636 struct _IMAGE_SECTION_HEADER { <
3637 BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; <
3638 union { <
3639 DWORD PhysicalAddress; <
3640 DWORD VirtualSize; <
3641 } <
3642 <
3643 DWORD VirtualAddress; <
3644 DWORD SizeOfRawData; <
3645 DWORD PointerToRawData; <
3646 DWORD PointerToRelocations; <
3647 DWORD PointerToLinenumbers; <
3648 WORD NumberOfRelocations; <
3649 WORD NumberOfLinenumbers; <
3650 DWORD Characteristics; <
3651 } <
3652 alias _IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER; <
3653 alias _IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER; <
> 3952 const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR64_MAGIC;
3654 3953
3655 enum : uint { IMAGE_SIZEOF_SECTION_HEADER = 40 } | 3954 alias IMAGE_ORDINAL_FLAG64 IMAGE_ORDINAL_FLAG;
3656 <
> 3955 alias IMAGE_SNAP_BY_ORDINAL64 IMAGE_SNAP_BY_ORDINAL;
3657 enum : uint { IMAGE_SCN_TYPE_NO_PAD = 0x00000008 } | 3956 alias IMAGE_ORDINAL64 IMAGE_ORDINAL;
3658 <
> 3957 alias IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER;
3659 enum : uint { IMAGE_SCN_CNT_CODE = 0x00000020 } | 3958 alias IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS;
3660 enum : uint { IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 } | 3959 alias IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA;
3661 enum : uint { IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 } | 3960 alias IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY;
3662 <
> 3961 } else {
3663 enum : uint { IMAGE_SCN_LNK_OTHER = 0x00000100 } | 3962 const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC;
3664 enum : uint { IMAGE_SCN_LNK_INFO = 0x00000200 } <
3665 <
3666 enum : uint { IMAGE_SCN_LNK_REMOVE = 0x00000800 } <
3667 enum : uint { IMAGE_SCN_LNK_COMDAT = 0x00001000 } <
3668 <
3669 enum : uint { IMAGE_SCN_NO_DEFER_SPEC_EXC = 0x00004000 } <
3670 enum : uint { IMAGE_SCN_GPREL = 0x00008000 } <
3671 enum : uint { IMAGE_SCN_MEM_FARDATA = 0x00008000 } <
3672 <
3673 enum : uint { IMAGE_SCN_MEM_PURGEABLE = 0x00020000 } <
3674 enum : uint { IMAGE_SCN_MEM_16BIT = 0x00020000 } <
3675 enum : uint { IMAGE_SCN_MEM_LOCKED = 0x00040000 } <
3676 enum : uint { IMAGE_SCN_MEM_PRELOAD = 0x00080000 } <
3677 <
3678 enum : uint { IMAGE_SCN_ALIGN_1BYTES = 0x00100000 } <
3679 enum : uint { IMAGE_SCN_ALIGN_2BYTES = 0x00200000 } <
3680 enum : uint { IMAGE_SCN_ALIGN_4BYTES = 0x00300000 } <
3681 enum : uint { IMAGE_SCN_ALIGN_8BYTES = 0x00400000 } <
3682 enum : uint { IMAGE_SCN_ALIGN_16BYTES = 0x00500000 } <
3683 enum : uint { IMAGE_SCN_ALIGN_32BYTES = 0x00600000 } <
3684 enum : uint { IMAGE_SCN_ALIGN_64BYTES = 0x00700000 } <
3685 enum : uint { IMAGE_SCN_ALIGN_128BYTES = 0x00800000 } <
3686 enum : uint { IMAGE_SCN_ALIGN_256BYTES = 0x00900000 } <
3687 enum : uint { IMAGE_SCN_ALIGN_512BYTES = 0x00A00000 } <
3688 enum : uint { IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000 } <
3689 enum : uint { IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000 } <
3690 enum : uint { IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000 } <
3691 enum : uint { IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000 } <
3692 <
3693 enum : uint { IMAGE_SCN_ALIGN_MASK = 0x00F00000 } <
3694 <
3695 enum : uint { IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 } <
3696 enum : uint { IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 } <
3697 enum : uint { IMAGE_SCN_MEM_NOT_CACHED = 0x04000000 } <
3698 enum : uint { IMAGE_SCN_MEM_NOT_PAGED = 0x08000000 } <
3699 enum : uint { IMAGE_SCN_MEM_SHARED = 0x10000000 } <
3700 enum : uint { IMAGE_SCN_MEM_EXECUTE = 0x20000000 } <
3701 enum : uint { IMAGE_SCN_MEM_READ = 0x40000000 } <
3702 enum : uint { IMAGE_SCN_MEM_WRITE = 0x80000000 } <
3703 <
3704 enum : uint { IMAGE_SCN_SCALE_INDEX = 0x00000001 } <
3705 <
3706 // #ifndef _MAC <
3707 align(2): <
3708 // #endif <
3709 <
3710 struct _IMAGE_SYMBOL { <
3711 union { <
3712 BYTE ShortName[8]; <
3713 struct { <
3714 DWORD Short; <
3715 DWORD Long; <
3716 } <
3717 <
3718 DWORD LongName[2]; <
3719 } <
3720 <
3721 DWORD Value; <
3722 SHORT SectionNumber; <
3723 WORD Type; <
3724 BYTE StorageClass; <
3725 BYTE NumberOfAuxSymbols; <
3726 } <
3727 alias _IMAGE_SYMBOL IMAGE_SYMBOL; <
3728 <
3729 alias IMAGE_SYMBOL* PIMAGE_SYMBOL; <
3730 <
3731 enum : uint { IMAGE_SIZEOF_SYMBOL = 18 } <
3732 3963
3733 enum : SHORT { IMAGE_SYM_UNDEFINED = 0 } | 3964 alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG;
3734 enum : SHORT { IMAGE_SYM_ABSOLUTE = -1 } | 3965 alias IMAGE_ORDINAL32 IMAGE_ORDINAL;
3735 enum : SHORT { IMAGE_SYM_DEBUG = -2 } | 3966 alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL;
3736 enum : uint { IMAGE_SYM_SECTION_MAX = 0xFEFF } | 3967 alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;
3737 <
> 3968 alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
3738 enum : uint { IMAGE_SYM_TYPE_NULL = 0x0000 } | 3969 alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;
3739 enum : uint { IMAGE_SYM_TYPE_VOID = 0x0001 } | 3970 alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY;
3740 enum : uint { IMAGE_SYM_TYPE_CHAR = 0x0002 } <
3741 enum : uint { IMAGE_SYM_TYPE_SHORT = 0x0003 } <
3742 enum : uint { IMAGE_SYM_TYPE_INT = 0x0004 } <
3743 enum : uint { IMAGE_SYM_TYPE_LONG = 0x0005 } <
3744 enum : uint { IMAGE_SYM_TYPE_FLOAT = 0x0006 } <
3745 enum : uint { IMAGE_SYM_TYPE_DOUBLE = 0x0007 } <
3746 enum : uint { IMAGE_SYM_TYPE_STRUCT = 0x0008 } <
3747 enum : uint { IMAGE_SYM_TYPE_UNION = 0x0009 } <
3748 enum : uint { IMAGE_SYM_TYPE_ENUM = 0x000A } <
3749 enum : uint { IMAGE_SYM_TYPE_MOE = 0x000B } <
3750 enum : uint { IMAGE_SYM_TYPE_BYTE = 0x000C } <
3751 enum : uint { IMAGE_SYM_TYPE_WORD = 0x000D } <
3752 enum : uint { IMAGE_SYM_TYPE_UINT = 0x000E } <
3753 enum : uint { IMAGE_SYM_TYPE_DWORD = 0x000F } <
3754 enum : uint { IMAGE_SYM_TYPE_PCODE = 0x8000 } <
3755 <
3756 enum : uint { IMAGE_SYM_DTYPE_NULL = 0 } <
3757 enum : uint { IMAGE_SYM_DTYPE_POINTER = 1 } <
3758 enum : uint { IMAGE_SYM_DTYPE_FUNCTION = 2 } <
3759 enum : uint { IMAGE_SYM_DTYPE_ARRAY = 3 } <
3760 <
3761 enum : BYTE { IMAGE_SYM_CLASS_END_OF_FUNCTION = cast(BYTE)-1 } <
3762 enum : uint { IMAGE_SYM_CLASS_NULL = 0x0000 } <
3763 enum : uint { IMAGE_SYM_CLASS_AUTOMATIC = 0x0001 } <
3764 enum : uint { IMAGE_SYM_CLASS_EXTERNAL = 0x0002 } <
3765 enum : uint { IMAGE_SYM_CLASS_STATIC = 0x0003 } <
3766 enum : uint { IMAGE_SYM_CLASS_REGISTER = 0x0004 } <
3767 enum : uint { IMAGE_SYM_CLASS_EXTERNAL_DEF = 0x0005 } <
3768 enum : uint { IMAGE_SYM_CLASS_LABEL = 0x0006 } <
3769 enum : uint { IMAGE_SYM_CLASS_UNDEFINED_LABEL = 0x0007 } <
3770 enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 0x0008 } <
3771 enum : uint { IMAGE_SYM_CLASS_ARGUMENT = 0x0009 } <
3772 enum : uint { IMAGE_SYM_CLASS_STRUCT_TAG = 0x000A } <
3773 enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_UNION = 0x000B } <
3774 enum : uint { IMAGE_SYM_CLASS_UNION_TAG = 0x000C } <
3775 enum : uint { IMAGE_SYM_CLASS_TYPE_DEFINITION = 0x000D } <
3776 enum : uint { IMAGE_SYM_CLASS_UNDEFINED_STATIC = 0x000E } <
3777 enum : uint { IMAGE_SYM_CLASS_ENUM_TAG = 0x000F } <
3778 enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 0x0010 } <
3779 enum : uint { IMAGE_SYM_CLASS_REGISTER_PARAM = 0x0011 } <
3780 enum : uint { IMAGE_SYM_CLASS_BIT_FIELD = 0x0012 } <
3781 <
3782 enum : uint { IMAGE_SYM_CLASS_FAR_EXTERNAL = 0x0044 } <
3783 <
3784 enum : uint { IMAGE_SYM_CLASS_BLOCK = 0x0064 } <
3785 enum : uint { IMAGE_SYM_CLASS_FUNCTION = 0x0065 } <
3786 enum : uint { IMAGE_SYM_CLASS_END_OF_STRUCT = 0x0066 } <
3787 enum : uint { IMAGE_SYM_CLASS_FILE = 0x0067 } <
3788 <
3789 enum : uint { IMAGE_SYM_CLASS_SECTION = 0x0068 } <
3790 enum : uint { IMAGE_SYM_CLASS_WEAK_EXTERNAL = 0x0069 } <
3791 <
3792 enum : uint { IMAGE_SYM_CLASS_CLR_TOKEN = 0x006B } <
3793 <
3794 enum : uint { N_BTMASK = 0x000F } <
3795 enum : uint { N_TMASK = 0x0030 } <
3796 enum : uint { N_TMASK1 = 0x00C0 } <
3797 enum : uint { N_TMASK2 = 0x00F0 } <
3798 enum : uint { N_BTSHFT = 4 } <
3799 enum : uint { N_TSHIFT = 2 } <
3800 <
3801 BYTE BTYPE(BYTE x){ return x & N_BTMASK; } <
3802 <
3803 // #ifndef ISPTR <
3804 bit ISPTR(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT) <
3805 // #endif <
3806 <
3807 // #ifndef ISFCN <
3808 bit ISFCN(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT <
3809 // #endif <
3810 <
3811 // #ifndef ISARY <
3812 bit ISARY(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); <
3813 // #endif <
3814 <
3815 // #ifndef ISTAG <
3816 bit ISTAG(uint x){ return x == IMAGE_SYM_CLASS_STRUCT_TAG || x == IMAGE_SYM_CLAS <
3817 // #endif <
3818 <
3819 // #ifndef INCREF <
3820 uint INCREF(uint x){ return ((x&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<< <
3821 // #endif <
3822 // #ifndef DECREF <
3823 uint DECREF(uint x){ return ((x >>> N_TSHIFT) & ~N_BTMASK)|(x & N_BTMASK); } <
3824 // #endif <
3825 <
3826 union _IMAGE_AUX_SYMBOL { <
3827 struct { <
3828 DWORD TagIndex; <
3829 union { <
3830 struct { <
3831 WORD Linenumber; <
3832 WORD Size; <
3833 } 3971 }
3834 3972
3835 DWORD TotalSize; | 3973 alias IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER;
3836 } <
3837 <
> 3974 alias IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS;
> 3975 alias IMAGE_THUNK_DATA* PIMAGE_THUNK_DATA;
3838 union { | 3976 alias IMAGE_TLS_DIRECTORY* PIMAGE_TLS_DIRECTORY;
3839 struct { <
3840 DWORD PointerToLinenumber; <
3841 DWORD PointerToNextFunction; <
3842 } <
3843 <
3844 struct { <
3845 WORD Dimension[4]; <
3846 } <
3847 <
3848 } <
3849 <
3850 WORD TvIndex; <
3851 } <
3852 <
3853 struct { <
3854 BYTE Name[IMAGE_SIZEOF_SYMBOL]; <
3855 } <
3856 <
3857 struct { <
3858 DWORD Length; <
3859 WORD NumberOfRelocations; <
3860 WORD NumberOfLinenumbers; <
3861 DWORD CheckSum; <
3862 SHORT Number; <
3863 BYTE Selection; <
3864 } <
3865 <
3866 } <
3867 alias _IMAGE_AUX_SYMBOL IMAGE_AUX_SYMBOL; <
3868 <
3869 alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL; <
3870 <
3871 enum : uint { IMAGE_SIZEOF_AUX_SYMBOL = 18 } <
3872 <
3873 alias int IMAGE_AUX_SYMBOL_TYPE; <
3874 enum { <
3875 IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, <
3876 } <
3877 <
3878 align(2): <
3879 <
3880 struct IMAGE_AUX_SYMBOL_TOKEN_DEF { <
3881 BYTE bAuxType; <
3882 BYTE bReserved; <
3883 DWORD SymbolTableIndex; <
3884 BYTE rgbReserved[12]; <
3885 } <
3886 <
3887 alias IMAGE_AUX_SYMBOL_TOKEN_DEF* PIMAGE_AUX_SYMBOL_TOKEN_DEF; <
3888 <
3889 align: <
3890 <
3891 enum : uint { IMAGE_COMDAT_SELECT_NODUPLICATES = 1 } <
3892 enum : uint { IMAGE_COMDAT_SELECT_ANY = 2 } <
3893 enum : uint { IMAGE_COMDAT_SELECT_SAME_SIZE = 3 } <
3894 enum : uint { IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 } <
3895 enum : uint { IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 } <
3896 enum : uint { IMAGE_COMDAT_SELECT_LARGEST = 6 } <
3897 enum : uint { IMAGE_COMDAT_SELECT_NEWEST = 7 } <
3898 <
3899 enum : uint { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 } <
3900 enum : uint { IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 } <
3901 enum : uint { IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 } <
3902 <
3903 struct _IMAGE_RELOCATION { <
3904 union { <
3905 DWORD VirtualAddress; <
3906 DWORD RelocCount; <
3907 } <
3908 <
3909 DWORD SymbolTableIndex; <
3910 WORD Type; <
3911 } <
3912 alias _IMAGE_RELOCATION IMAGE_RELOCATION; <
3913 <
3914 alias IMAGE_RELOCATION* PIMAGE_RELOCATION; <
3915 <
3916 enum : uint { IMAGE_SIZEOF_RELOCATION = 10 } <
3917 <
3918 enum : uint { IMAGE_REL_I386_ABSOLUTE = 0x0000 } <
3919 enum : uint { IMAGE_REL_I386_DIR16 = 0x0001 } <
3920 enum : uint { IMAGE_REL_I386_REL16 = 0x0002 } <
3921 enum : uint { IMAGE_REL_I386_DIR32 = 0x0006 } <
3922 enum : uint { IMAGE_REL_I386_DIR32NB = 0x0007 } <
3923 enum : uint { IMAGE_REL_I386_SEG12 = 0x0009 } <
3924 enum : uint { IMAGE_REL_I386_SECTION = 0x000A } <
3925 enum : uint { IMAGE_REL_I386_SECREL = 0x000B } <
3926 enum : uint { IMAGE_REL_I386_TOKEN = 0x000C } <
3927 enum : uint { IMAGE_REL_I386_SECREL7 = 0x000D } <
3928 enum : uint { IMAGE_REL_I386_REL32 = 0x0014 } <
3929 <
3930 enum : uint { IMAGE_REL_MIPS_ABSOLUTE = 0x0000 } <
3931 enum : uint { IMAGE_REL_MIPS_REFHALF = 0x0001 } <
3932 enum : uint { IMAGE_REL_MIPS_REFWORD = 0x0002 } <
3933 enum : uint { IMAGE_REL_MIPS_JMPADDR = 0x0003 } <
3934 enum : uint { IMAGE_REL_MIPS_REFHI = 0x0004 } <
3935 enum : uint { IMAGE_REL_MIPS_REFLO = 0x0005 } <
3936 enum : uint { IMAGE_REL_MIPS_GPREL = 0x0006 } <
3937 enum : uint { IMAGE_REL_MIPS_LITERAL = 0x0007 } <
3938 enum : uint { IMAGE_REL_MIPS_SECTION = 0x000A } <
3939 enum : uint { IMAGE_REL_MIPS_SECREL = 0x000B } <
3940 enum : uint { IMAGE_REL_MIPS_SECRELLO = 0x000C } <
3941 enum : uint { IMAGE_REL_MIPS_SECRELHI = 0x000D } <
3942 enum : uint { IMAGE_REL_MIPS_TOKEN = 0x000E } <
3943 enum : uint { IMAGE_REL_MIPS_JMPADDR16 = 0x0010 } <
3944 enum : uint { IMAGE_REL_MIPS_REFWORDNB = 0x0022 } <
3945 enum : uint { IMAGE_REL_MIPS_PAIR = 0x0025 } <
3946 <
3947 enum : uint { IMAGE_REL_ALPHA_ABSOLUTE = 0x0000 } <
3948 enum : uint { IMAGE_REL_ALPHA_REFLONG = 0x0001 } <
3949 enum : uint { IMAGE_REL_ALPHA_REFQUAD = 0x0002 } <
3950 enum : uint { IMAGE_REL_ALPHA_GPREL32 = 0x0003 } <
3951 enum : uint { IMAGE_REL_ALPHA_LITERAL = 0x0004 } <
3952 enum : uint { IMAGE_REL_ALPHA_LITUSE = 0x0005 } <
3953 enum : uint { IMAGE_REL_ALPHA_GPDISP = 0x0006 } <
3954 enum : uint { IMAGE_REL_ALPHA_BRADDR = 0x0007 } <
3955 enum : uint { IMAGE_REL_ALPHA_HINT = 0x0008 } <
3956 enum : uint { IMAGE_REL_ALPHA_INLINE_REFLONG = 0x0009 } <
3957 enum : uint { IMAGE_REL_ALPHA_REFHI = 0x000A } <
3958 enum : uint { IMAGE_REL_ALPHA_REFLO = 0x000B } <
3959 enum : uint { IMAGE_REL_ALPHA_PAIR = 0x000C } <
3960 enum : uint { IMAGE_REL_ALPHA_MATCH = 0x000D } <
3961 enum : uint { IMAGE_REL_ALPHA_SECTION = 0x000E } <
3962 enum : uint { IMAGE_REL_ALPHA_SECREL = 0x000F } <
3963 enum : uint { IMAGE_REL_ALPHA_REFLONGNB = 0x0010 } <
3964 enum : uint { IMAGE_REL_ALPHA_SECRELLO = 0x0011 } <
3965 enum : uint { IMAGE_REL_ALPHA_SECRELHI = 0x0012 } <
3966 enum : uint { IMAGE_REL_ALPHA_REFQ3 = 0x0013 } <
3967 enum : uint { IMAGE_REL_ALPHA_REFQ2 = 0x0014 } <
3968 enum : uint { IMAGE_REL_ALPHA_REFQ1 = 0x0015 } <
3969 enum : uint { IMAGE_REL_ALPHA_GPRELLO = 0x0016 } <
3970 enum : uint { IMAGE_REL_ALPHA_GPRELHI = 0x0017 } <
3971 <
3972 enum : uint { IMAGE_REL_PPC_ABSOLUTE = 0x0000 } <
3973 enum : uint { IMAGE_REL_PPC_ADDR64 = 0x0001 } <
3974 enum : uint { IMAGE_REL_PPC_ADDR32 = 0x0002 } <
3975 enum : uint { IMAGE_REL_PPC_ADDR24 = 0x0003 } <
3976 enum : uint { IMAGE_REL_PPC_ADDR16 = 0x0004 } <
3977 enum : uint { IMAGE_REL_PPC_ADDR14 = 0x0005 } <
3978 enum : uint { IMAGE_REL_PPC_REL24 = 0x0006 } <
3979 enum : uint { IMAGE_REL_PPC_REL14 = 0x0007 } <
3980 enum : uint { IMAGE_REL_PPC_TOCREL16 = 0x0008 } <
3981 enum : uint { IMAGE_REL_PPC_TOCREL14 = 0x0009 } <
3982 <
3983 enum : uint { IMAGE_REL_PPC_ADDR32NB = 0x000A } <
3984 enum : uint { IMAGE_REL_PPC_SECREL = 0x000B } <
3985 enum : uint { IMAGE_REL_PPC_SECTION = 0x000C } <
3986 enum : uint { IMAGE_REL_PPC_IFGLUE = 0x000D } <
3987 enum : uint { IMAGE_REL_PPC_IMGLUE = 0x000E } <
3988 enum : uint { IMAGE_REL_PPC_SECREL16 = 0x000F } <
3989 enum : uint { IMAGE_REL_PPC_REFHI = 0x0010 } <
3990 enum : uint { IMAGE_REL_PPC_REFLO = 0x0011 } <
3991 enum : uint { IMAGE_REL_PPC_PAIR = 0x0012 } <
3992 enum : uint { IMAGE_REL_PPC_SECRELLO = 0x0013 } <
3993 enum : uint { IMAGE_REL_PPC_SECRELHI = 0x0014 } <
3994 enum : uint { IMAGE_REL_PPC_GPREL = 0x0015 } <
3995 enum : uint { IMAGE_REL_PPC_TOKEN = 0x0016 } <
3996 <
3997 enum : uint { IMAGE_REL_PPC_TYPEMASK = 0x00FF } <
3998 <
3999 enum : uint { IMAGE_REL_PPC_NEG = 0x0100 } <
4000 enum : uint { IMAGE_REL_PPC_BRTAKEN = 0x0200 } <
4001 enum : uint { IMAGE_REL_PPC_BRNTAKEN = 0x0400 } <
4002 enum : uint { IMAGE_REL_PPC_TOCDEFN = 0x0800 } <
4003 <
4004 enum : uint { IMAGE_REL_SH3_ABSOLUTE = 0x0000 } <
4005 enum : uint { IMAGE_REL_SH3_DIRECT16 = 0x0001 } <
4006 enum : uint { IMAGE_REL_SH3_DIRECT32 = 0x0002 } <
4007 enum : uint { IMAGE_REL_SH3_DIRECT8 = 0x0003 } <
4008 enum : uint { IMAGE_REL_SH3_DIRECT8_WORD = 0x0004 } <
4009 enum : uint { IMAGE_REL_SH3_DIRECT8_LONG = 0x0005 } <
4010 enum : uint { IMAGE_REL_SH3_DIRECT4 = 0x0006 } <
4011 enum : uint { IMAGE_REL_SH3_DIRECT4_WORD = 0x0007 } <
4012 enum : uint { IMAGE_REL_SH3_DIRECT4_LONG = 0x0008 } <
4013 enum : uint { IMAGE_REL_SH3_PCREL8_WORD = 0x0009 } <
4014 enum : uint { IMAGE_REL_SH3_PCREL8_LONG = 0x000A } <
4015 enum : uint { IMAGE_REL_SH3_PCREL12_WORD = 0x000B } <
4016 enum : uint { IMAGE_REL_SH3_STARTOF_SECTION = 0x000C } <
4017 enum : uint { IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D } <
4018 enum : uint { IMAGE_REL_SH3_SECTION = 0x000E } <
4019 enum : uint { IMAGE_REL_SH3_SECREL = 0x000F } <
4020 enum : uint { IMAGE_REL_SH3_DIRECT32_NB = 0x0010 } <
4021 enum : uint { IMAGE_REL_SH3_GPREL4_LONG = 0x0011 } <
4022 enum : uint { IMAGE_REL_SH3_TOKEN = 0x0012 } <
4023 <
4024 enum : uint { IMAGE_REL_ARM_ABSOLUTE = 0x0000 } <
4025 enum : uint { IMAGE_REL_ARM_ADDR32 = 0x0001 } <
4026 enum : uint { IMAGE_REL_ARM_ADDR32NB = 0x0002 } <
4027 enum : uint { IMAGE_REL_ARM_BRANCH24 = 0x0003 } <
4028 enum : uint { IMAGE_REL_ARM_BRANCH11 = 0x0004 } <
4029 enum : uint { IMAGE_REL_ARM_TOKEN = 0x0005 } <
4030 enum : uint { IMAGE_REL_ARM_GPREL12 = 0x0006 } <
4031 enum : uint { IMAGE_REL_ARM_GPREL7 = 0x0007 } <
4032 enum : uint { IMAGE_REL_ARM_BLX24 = 0x0008 } <
4033 enum : uint { IMAGE_REL_ARM_BLX11 = 0x0009 } <
4034 enum : uint { IMAGE_REL_ARM_SECTION = 0x000E } <
4035 enum : uint { IMAGE_REL_ARM_SECREL = 0x000F } <
4036 <
4037 enum : uint { IMAGE_REL_AM_ABSOLUTE = 0x0000 } <
4038 enum : uint { IMAGE_REL_AM_ADDR32 = 0x0001 } <
4039 enum : uint { IMAGE_REL_AM_ADDR32NB = 0x0002 } <
4040 enum : uint { IMAGE_REL_AM_CALL32 = 0x0003 } <
4041 enum : uint { IMAGE_REL_AM_FUNCINFO = 0x0004 } <
4042 enum : uint { IMAGE_REL_AM_REL32_1 = 0x0005 } <
4043 enum : uint { IMAGE_REL_AM_REL32_2 = 0x0006 } <
4044 enum : uint { IMAGE_REL_AM_SECREL = 0x0007 } <
4045 enum : uint { IMAGE_REL_AM_SECTION = 0x0008 } <
4046 enum : uint { IMAGE_REL_AM_TOKEN = 0x0009 } <
4047 <
4048 enum : uint { IMAGE_REL_AMD64_ABSOLUTE = 0x0000 } <
4049 enum : uint { IMAGE_REL_AMD64_ADDR64 = 0x0001 } <
4050 enum : uint { IMAGE_REL_AMD64_ADDR32 = 0x0002 } <
4051 enum : uint { IMAGE_REL_AMD64_ADDR32NB = 0x0003 } <
4052 enum : uint { IMAGE_REL_AMD64_REL32 = 0x0004 } <
4053 enum : uint { IMAGE_REL_AMD64_REL32_1 = 0x0005 } <
4054 enum : uint { IMAGE_REL_AMD64_REL32_2 = 0x0006 } <
4055 enum : uint { IMAGE_REL_AMD64_REL32_3 = 0x0007 } <
4056 enum : uint { IMAGE_REL_AMD64_REL32_4 = 0x0008 } <
4057 enum : uint { IMAGE_REL_AMD64_REL32_5 = 0x0009 } <
4058 enum : uint { IMAGE_REL_AMD64_SECTION = 0x000A } <
4059 enum : uint { IMAGE_REL_AMD64_SECREL = 0x000B } <
4060 enum : uint { IMAGE_REL_AMD64_SECREL7 = 0x000C } <
4061 enum : uint { IMAGE_REL_AMD64_TOKEN = 0x000D } <
4062 <
4063 enum : uint { IMAGE_REL_IA64_ABSOLUTE = 0x0000 } <
4064 enum : uint { IMAGE_REL_IA64_IMM14 = 0x0001 } <
4065 enum : uint { IMAGE_REL_IA64_IMM22 = 0x0002 } <
4066 enum : uint { IMAGE_REL_IA64_IMM64 = 0x0003 } <
4067 enum : uint { IMAGE_REL_IA64_DIR32 = 0x0004 } <
4068 enum : uint { IMAGE_REL_IA64_DIR64 = 0x0005 } <
4069 enum : uint { IMAGE_REL_IA64_PCREL21B = 0x0006 } <
4070 enum : uint { IMAGE_REL_IA64_PCREL21M = 0x0007 } <
4071 enum : uint { IMAGE_REL_IA64_PCREL21F = 0x0008 } <
4072 enum : uint { IMAGE_REL_IA64_GPREL22 = 0x0009 } <
4073 enum : uint { IMAGE_REL_IA64_LTOFF22 = 0x000A } <
4074 enum : uint { IMAGE_REL_IA64_SECTION = 0x000B } <
4075 enum : uint { IMAGE_REL_IA64_SECREL22 = 0x000C } <
4076 enum : uint { IMAGE_REL_IA64_SECREL64I = 0x000D } <
4077 enum : uint { IMAGE_REL_IA64_SECREL32 = 0x000E } <
4078 <
4079 enum : uint { IMAGE_REL_IA64_DIR32NB = 0x0010 } <
4080 enum : uint { IMAGE_REL_IA64_SREL14 = 0x0011 } <
4081 enum : uint { IMAGE_REL_IA64_SREL22 = 0x0012 } <
4082 enum : uint { IMAGE_REL_IA64_SREL32 = 0x0013 } <
4083 enum : uint { IMAGE_REL_IA64_UREL32 = 0x0014 } <
4084 enum : uint { IMAGE_REL_IA64_PCREL60X = 0x0015 } <
4085 enum : uint { IMAGE_REL_IA64_PCREL60B = 0x0016 } <
4086 enum : uint { IMAGE_REL_IA64_PCREL60F = 0x0017 } <
4087 enum : uint { IMAGE_REL_IA64_PCREL60I = 0x0018 } <
4088 enum : uint { IMAGE_REL_IA64_PCREL60M = 0x0019 } <
4089 enum : uint { IMAGE_REL_IA64_IMMGPREL64 = 0x001A } <
4090 enum : uint { IMAGE_REL_IA64_TOKEN = 0x001B } <
4091 enum : uint { IMAGE_REL_IA64_GPREL32 = 0x001C } <
4092 enum : uint { IMAGE_REL_IA64_ADDEND = 0x001F } <
4093 <
4094 enum : uint { IMAGE_REL_CEF_ABSOLUTE = 0x0000 } <
4095 enum : uint { IMAGE_REL_CEF_ADDR32 = 0x0001 } <
4096 enum : uint { IMAGE_REL_CEF_ADDR64 = 0x0002 } <
4097 enum : uint { IMAGE_REL_CEF_ADDR32NB = 0x0003 } <
4098 enum : uint { IMAGE_REL_CEF_SECTION = 0x0004 } <
4099 enum : uint { IMAGE_REL_CEF_SECREL = 0x0005 } <
4100 enum : uint { IMAGE_REL_CEF_TOKEN = 0x0006 } <
4101 <
4102 enum : uint { IMAGE_REL_CEE_ABSOLUTE = 0x0000 } <
4103 enum : uint { IMAGE_REL_CEE_ADDR32 = 0x0001 } <
4104 enum : uint { IMAGE_REL_CEE_ADDR64 = 0x0002 } <
4105 enum : uint { IMAGE_REL_CEE_ADDR32NB = 0x0003 } <
4106 enum : uint { IMAGE_REL_CEE_SECTION = 0x0004 } <
4107 enum : uint { IMAGE_REL_CEE_SECREL = 0x0005 } <
4108 enum : uint { IMAGE_REL_CEE_TOKEN = 0x0006 } <
4109 <
4110 enum : uint { IMAGE_REL_M32R_ABSOLUTE = 0x0000 } <
4111 enum : uint { IMAGE_REL_M32R_ADDR32 = 0x0001 } <
4112 enum : uint { IMAGE_REL_M32R_ADDR32NB = 0x0002 } <
4113 enum : uint { IMAGE_REL_M32R_ADDR24 = 0x0003 } <
4114 enum : uint { IMAGE_REL_M32R_GPREL16 = 0x0004 } <
4115 enum : uint { IMAGE_REL_M32R_PCREL24 = 0x0005 } <
4116 enum : uint { IMAGE_REL_M32R_PCREL16 = 0x0006 } <
4117 enum : uint { IMAGE_REL_M32R_PCREL8 = 0x0007 } <
4118 enum : uint { IMAGE_REL_M32R_REFHALF = 0x0008 } <
4119 enum : uint { IMAGE_REL_M32R_REFHI = 0x0009 } <
4120 enum : uint { IMAGE_REL_M32R_REFLO = 0x000A } <
4121 enum : uint { IMAGE_REL_M32R_PAIR = 0x000B } <
4122 enum : uint { IMAGE_REL_M32R_SECTION = 0x000C } <
4123 enum : uint { IMAGE_REL_M32R_SECREL32 = 0x000D } <
4124 enum : uint { IMAGE_REL_M32R_TOKEN = 0x000E } <
4125 3977
4126 // #define EXT_IMM64(Value, Address, Size, InstPos, ValPos) Value |= (((ULONGLON | 3978 // TODO: MinGW implements these in assembly. How to translate?
4127 <
> 3979 PVOID GetCurrentFiber();
4128 // #define INS_IMM64(Value, Address, Size, InstPos, ValPos) *(PDWORD)Address = ( | 3980 PVOID GetFiberData();
4129 <
4130 enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_X = 3 } <
4131 enum : uint { EMARCH_ENC_I17_IMM7B_SIZE_X = 7 } <
4132 enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X = 4 } <
4133 enum : uint { EMARCH_ENC_I17_IMM7B_VAL_POS_X = 0 } <
4134 <
4135 enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_X = 3 } <
4136 enum : uint { EMARCH_ENC_I17_IMM9D_SIZE_X = 9 } <
4137 enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X = 18 } <
4138 enum : uint { EMARCH_ENC_I17_IMM9D_VAL_POS_X = 7 } <
4139 <
4140 enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_X = 3 } <
4141 enum : uint { EMARCH_ENC_I17_IMM5C_SIZE_X = 5 } <
4142 enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X = 13 } <
4143 enum : uint { EMARCH_ENC_I17_IMM5C_VAL_POS_X = 16 } <
4144 <
4145 enum : uint { EMARCH_ENC_I17_IC_INST_WORD_X = 3 } <
4146 enum : uint { EMARCH_ENC_I17_IC_SIZE_X = 1 } <
4147 enum : uint { EMARCH_ENC_I17_IC_INST_WORD_POS_X = 12 } <
4148 enum : uint { EMARCH_ENC_I17_IC_VAL_POS_X = 21 } <
4149 <
4150 enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_X = 1 } <
4151 enum : uint { EMARCH_ENC_I17_IMM41a_SIZE_X = 10 } <
4152 enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X = 14 } <
4153 enum : uint { EMARCH_ENC_I17_IMM41a_VAL_POS_X = 22 } <
4154 <
4155 enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_X = 1 } <
4156 enum : uint { EMARCH_ENC_I17_IMM41b_SIZE_X = 8 } <
4157 enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X = 24 } <
4158 enum : uint { EMARCH_ENC_I17_IMM41b_VAL_POS_X = 32 } <
4159 <
4160 enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_X = 2 } <
4161 enum : uint { EMARCH_ENC_I17_IMM41c_SIZE_X = 23 } <
4162 enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X = 0 } <
4163 enum : uint { EMARCH_ENC_I17_IMM41c_VAL_POS_X = 40 } <
4164 <
4165 enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_X = 3 } <
4166 enum : uint { EMARCH_ENC_I17_SIGN_SIZE_X = 1 } <
4167 enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_POS_X = 27 } <
4168 enum : uint { EMARCH_ENC_I17_SIGN_VAL_POS_X = 63 } <
4169 <
4170 struct _IMAGE_LINENUMBER { <
4171 union { <
4172 DWORD SymbolTableIndex; <
4173 DWORD VirtualAddress; <
4174 } <
4175 <
4176 WORD Linenumber; <
4177 } <
4178 alias _IMAGE_LINENUMBER IMAGE_LINENUMBER; <
4179 <
4180 alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER; <
4181 <
4182 enum : uint { IMAGE_SIZEOF_LINENUMBER = 6 } <
4183 <
4184 // #ifndef _MAC <
4185 align: <
4186 // #endif <
4187 <
4188 struct _IMAGE_BASE_RELOCATION { <
4189 DWORD VirtualAddress; <
4190 DWORD SizeOfBlock; <
4191 } <
4192 alias _IMAGE_BASE_RELOCATION IMAGE_BASE_RELOCATION; <
4193 <
4194 alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION; <
4195 <
4196 enum : uint { IMAGE_SIZEOF_BASE_RELOCATION = 8 } <
4197 <
4198 enum : uint { IMAGE_REL_BASED_ABSOLUTE = 0 } <
4199 enum : uint { IMAGE_REL_BASED_HIGH = 1 } <
4200 enum : uint { IMAGE_REL_BASED_LOW = 2 } <
4201 enum : uint { IMAGE_REL_BASED_HIGHLOW = 3 } <
4202 enum : uint { IMAGE_REL_BASED_HIGHADJ = 4 } <
4203 enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR = 5 } <
4204 enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR16 = 9 } <
4205 enum : uint { IMAGE_REL_BASED_IA64_IMM64 = 9 } <
4206 enum : uint { IMAGE_REL_BASED_DIR64 = 10 } <
4207 <
4208 enum : uint { IMAGE_ARCHIVE_START_SIZE = 8 } <
4209 const char[] IMAGE_ARCHIVE_START = "!<arch>\n"; <
4210 const char[] IMAGE_ARCHIVE_END = "`\n"; <
4211 const char[] IMAGE_ARCHIVE_PAD = "\n"; <
4212 const char[] IMAGE_ARCHIVE_LINKER_MEMBER = "/ "; <
4213 const char[] IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// "; <
4214 <
4215 struct _IMAGE_ARCHIVE_MEMBER_HEADER { <
4216 BYTE Name[16]; <
4217 BYTE Date[12]; <
4218 BYTE UserID[6]; <
4219 BYTE GroupID[6]; <
4220 BYTE Mode[8]; <
4221 BYTE Size[10]; <
4222 BYTE EndHeader[2]; <
4223 } <
4224 alias _IMAGE_ARCHIVE_MEMBER_HEADER IMAGE_ARCHIVE_MEMBER_HEADER; <
4225 alias _IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER; <
4226 <
4227 enum : uint { IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 } <
4228 <
4229 struct _IMAGE_EXPORT_DIRECTORY { <
4230 DWORD Characteristics; <
4231 DWORD TimeDateStamp; <
4232 WORD MajorVersion; <
4233 WORD MinorVersion; <
4234 DWORD Name; <
4235 DWORD Base; <
4236 DWORD NumberOfFunctions; <
4237 DWORD NumberOfNames; <
4238 DWORD AddressOfFunctions; <
4239 DWORD AddressOfNames; <
4240 DWORD AddressOfNameOrdinals; <
4241 } <
4242 alias _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY; <
4243 alias _IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY; <
4244 <
4245 struct _IMAGE_IMPORT_BY_NAME { <
4246 WORD Hint; <
4247 BYTE Name[1]; <
4248 } <
4249 alias _IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME; <
4250 alias _IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME; <
4251 <
4252 align(8): <
4253 <
4254 struct _IMAGE_THUNK_DATA64 { <
4255 union { <
4256 ULONGLONG ForwarderString; <
4257 ULONGLONG Function; <
4258 ULONGLONG Ordinal; <
4259 ULONGLONG AddressOfData; <
4260 } <
4261 <
4262 } <
4263 alias _IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA64; <
4264 <
4265 alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64; <
4266 <
4267 align: <
4268 <
4269 struct _IMAGE_THUNK_DATA32 { <
4270 union { <
4271 DWORD ForwarderString; <
4272 DWORD Function; <
4273 DWORD Ordinal; <
4274 DWORD AddressOfData; <
4275 } <
4276 <
4277 } <
4278 alias _IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA32; <
4279 <
4280 alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32; <
4281 <
4282 const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000; <
4283 enum : uint { IMAGE_ORDINAL_FLAG32 = 0x80000000 } <
4284 ulong IMAGE_ORDINAL64(ulong Ordinal){ return Ordinal & 0xffff; } <
4285 uint IMAGE_ORDINAL32(uint Ordinal){ return Ordinal & 0xffff; } <
4286 bit IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG <
4287 bit IMAGE_SNAP_BY_ORDINAL32(uint Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG3 <
4288 <
4289 extern(Windows) alias VOID function( PVOID DllHandle, DWORD Reason, PVOID Reserv <
4290 <
4291 struct _IMAGE_TLS_DIRECTORY64 { <
4292 ULONGLONG StartAddressOfRawData; <
4293 ULONGLONG EndAddressOfRawData; <
4294 ULONGLONG AddressOfIndex; <
4295 ULONGLONG AddressOfCallBacks; <
4296 DWORD SizeOfZeroFill; <
4297 DWORD Characteristics; <
4298 } <
4299 alias _IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY64; <
4300 <
4301 alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64; <
4302 <
4303 struct _IMAGE_TLS_DIRECTORY32 { <
4304 DWORD StartAddressOfRawData; <
4305 DWORD EndAddressOfRawData; <
4306 DWORD AddressOfIndex; <
4307 DWORD AddressOfCallBacks; <
4308 DWORD SizeOfZeroFill; <
4309 DWORD Characteristics; <
4310 } <
4311 alias _IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY32; <
4312 <
4313 alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32; <
4314 <
4315 // #ifdef _WIN64 <
4316 // #... <
4317 // #... <
4318 // ... <
4319 // #... <
4320 // ... <
4321 // #else <
4322 alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG; <
4323 alias IMAGE_ORDINAL32 IMAGE_ORDINAL; <
4324 alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; <
4325 alias PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; <
4326 alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL; <
4327 alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; <
4328 alias PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; <
4329 // #endif <
4330 <
4331 struct _IMAGE_IMPORT_DESCRIPTOR { <
4332 union { <
4333 DWORD Characteristics; <
4334 DWORD OriginalFirstThunk; <
4335 } <
4336 <
4337 DWORD TimeDateStamp; <
4338 <
4339 DWORD ForwarderChain; <
4340 DWORD Name; <
4341 DWORD FirstThunk; <
4342 } <
4343 alias _IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_DESCRIPTOR; <
4344 <
4345 alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR; <
4346 <
4347 struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { <
4348 DWORD TimeDateStamp; <
4349 WORD OffsetModuleName; <
4350 WORD NumberOfModuleForwarderRefs; <
4351 } <
4352 alias _IMAGE_BOUND_IMPORT_DESCRIPTOR IMAGE_BOUND_IMPORT_DESCRIPTOR; <
4353 alias _IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR; <
4354 <
4355 struct _IMAGE_BOUND_FORWARDER_REF { <
4356 DWORD TimeDateStamp; <
4357 WORD OffsetModuleName; <
4358 WORD Reserved; <
4359 } <
4360 alias _IMAGE_BOUND_FORWARDER_REF IMAGE_BOUND_FORWARDER_REF; <
4361 alias _IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF; <
4362 <
4363 struct _IMAGE_RESOURCE_DIRECTORY { <
4364 DWORD Characteristics; <
4365 DWORD TimeDateStamp; <
4366 WORD MajorVersion; <
4367 WORD MinorVersion; <
4368 WORD NumberOfNamedEntries; <
4369 WORD NumberOfIdEntries; <
4370 } <
4371 alias _IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY; <
4372 alias _IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY; <
4373 <
4374 enum : uint { IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000 } <
4375 enum : uint { IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000 } <
4376 <
4377 struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { <
4378 union { <
4379 struct { <
4380 // DWORD NameOffset:31; <
4381 // DWORD NameIsString:1; <
4382 } <
4383 <
4384 DWORD Name; <
4385 WORD Id; <
4386 } <
4387 <
4388 union { <
4389 DWORD OffsetToData; <
4390 struct { <
4391 // DWORD OffsetToDirectory:31; <
4392 // DWORD DataIsDirectory:1; <
4393 } <
4394 <
4395 } <
4396 <
4397 } <
4398 alias _IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_ENTRY; <
4399 alias _IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY; <
4400 <
4401 struct _IMAGE_RESOURCE_DIRECTORY_STRING { <
4402 WORD Length; <
4403 CHAR NameString[ 1 ]; <
4404 } <
4405 alias _IMAGE_RESOURCE_DIRECTORY_STRING IMAGE_RESOURCE_DIRECTORY_STRING; <
4406 alias _IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING; <
4407 <
4408 struct _IMAGE_RESOURCE_DIR_STRING_U { <
4409 WORD Length; <
4410 WCHAR NameString[ 1 ]; <
4411 } <
4412 alias _IMAGE_RESOURCE_DIR_STRING_U IMAGE_RESOURCE_DIR_STRING_U; <
4413 alias _IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U; <
4414 <
4415 struct _IMAGE_RESOURCE_DATA_ENTRY { <
4416 DWORD OffsetToData; <
4417 DWORD Size; <
4418 DWORD CodePage; <
4419 DWORD Reserved; <
4420 } <
4421 alias _IMAGE_RESOURCE_DATA_ENTRY IMAGE_RESOURCE_DATA_ENTRY; <
4422 alias _IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY; <
4423 <
4424 struct _12 { <
4425 DWORD Characteristics; <
4426 DWORD TimeDateStamp; <
4427 WORD MajorVersion; <
4428 WORD MinorVersion; <
4429 DWORD GlobalFlagsClear; <
4430 DWORD GlobalFlagsSet; <
4431 DWORD CriticalSectionDefaultTimeout; <
4432 DWORD DeCommitFreeBlockThreshold; <
4433 DWORD DeCommitTotalFreeThreshold; <
4434 DWORD LockPrefixTable; <
4435 DWORD MaximumAllocationSize; <
4436 DWORD VirtualMemoryThreshold; <
4437 DWORD ProcessHeapFlags; <
4438 DWORD ProcessAffinityMask; <
4439 WORD CSDVersion; <
4440 WORD Reserved1; <
4441 DWORD EditList; <
4442 DWORD Reserved[ 1 ]; <
4443 } <
4444 alias _12 IMAGE_LOAD_CONFIG_DIRECTORY32; <
4445 alias _12* PIMAGE_LOAD_CONFIG_DIRECTORY32; <
4446 <
4447 struct _13 { <
4448 DWORD Characteristics; <
4449 DWORD TimeDateStamp; <
4450 WORD MajorVersion; <
4451 WORD MinorVersion; <
4452 DWORD GlobalFlagsClear; <
4453 DWORD GlobalFlagsSet; <
4454 DWORD CriticalSectionDefaultTimeout; <
4455 ULONGLONG DeCommitFreeBlockThreshold; <
4456 ULONGLONG DeCommitTotalFreeThreshold; <
4457 ULONGLONG LockPrefixTable; <
4458 ULONGLONG MaximumAllocationSize; <
4459 ULONGLONG VirtualMemoryThreshold; <
4460 ULONGLONG ProcessAffinityMask; <
4461 DWORD ProcessHeapFlags; <
4462 WORD CSDVersion; <
4463 WORD Reserved1; <
4464 ULONGLONG EditList; <
4465 DWORD Reserved[ 2 ]; <
4466 } <
4467 alias _13 IMAGE_LOAD_CONFIG_DIRECTORY64; <
4468 alias _13* PIMAGE_LOAD_CONFIG_DIRECTORY64; <
4469 <
4470 // #ifdef _WIN64 <
4471 // ... <
4472 // #else <
4473 alias IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; <
4474 alias PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; <
4475 // #endif <
4476 <
4477 struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY { <
4478 DWORD FuncStart; <
4479 // DWORD PrologLen : 8; <
4480 // DWORD FuncLen : 22; <
4481 // DWORD ThirtyTwoBit : 1; <
4482 // DWORD ExceptionFlag : 1; <
4483 } <
4484 alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY IMAGE_CE_RUNTIME_FUNCTION_ENTRY; <
4485 alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; <
4486 <
4487 struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { <
4488 ULONGLONG BeginAddress; <
4489 ULONGLONG EndAddress; <
4490 ULONGLONG ExceptionHandler; <
4491 ULONGLONG HandlerData; <
4492 ULONGLONG PrologEndAddress; <
4493 } <
4494 alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY <
4495 alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENT <
4496 <
4497 struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { <
4498 DWORD BeginAddress; <
4499 DWORD EndAddress; <
4500 DWORD ExceptionHandler; <
4501 DWORD HandlerData; <
4502 DWORD PrologEndAddress; <
4503 } <
4504 alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; <
4505 alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; <
4506 <
4507 struct _IMAGE_RUNTIME_FUNCTION_ENTRY { <
4508 DWORD BeginAddress; <
4509 DWORD EndAddress; <
4510 DWORD UnwindInfoAddress; <
4511 } <
4512 alias _IMAGE_RUNTIME_FUNCTION_ENTRY* _PIMAGE_RUNTIME_FUNCTION_ENTRY; <
4513 <
4514 alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY; <
4515 alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY; <
4516 <
4517 // #if defined(_AXP64_) <
4518 <
4519 // ... <
4520 <
4521 // #elif defined(_ALPHA_) <
4522 <
4523 // ... <
4524 <
4525 // #else <
4526 <
4527 alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; <
4528 alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; <
4529 <
4530 // #endif <
4531 <
4532 struct _IMAGE_DEBUG_DIRECTORY { <
4533 DWORD Characteristics; <
4534 DWORD TimeDateStamp; <
4535 WORD MajorVersion; <
4536 WORD MinorVersion; <
4537 DWORD Type; <
4538 DWORD SizeOfData; <
4539 DWORD AddressOfRawData; <
4540 DWORD PointerToRawData; <
4541 } <
4542 alias _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY; <
4543 alias _IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY; <
4544 <
4545 enum : uint { IMAGE_DEBUG_TYPE_UNKNOWN = 0 } <
4546 enum : uint { IMAGE_DEBUG_TYPE_COFF = 1 } <
4547 enum : uint { IMAGE_DEBUG_TYPE_CODEVIEW = 2 } <
4548 enum : uint { IMAGE_DEBUG_TYPE_FPO = 3 } <
4549 enum : uint { IMAGE_DEBUG_TYPE_MISC = 4 } <
4550 enum : uint { IMAGE_DEBUG_TYPE_EXCEPTION = 5 } <
4551 enum : uint { IMAGE_DEBUG_TYPE_FIXUP = 6 } <
4552 enum : uint { IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 } <
4553 enum : uint { IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 } <
4554 enum : uint { IMAGE_DEBUG_TYPE_BORLAND = 9 } <
4555 enum : uint { IMAGE_DEBUG_TYPE_RESERVED10 = 10 } <
4556 enum : uint { IMAGE_DEBUG_TYPE_CLSID = 11 } <
4557 <
4558 struct _IMAGE_COFF_SYMBOLS_HEADER { <
4559 DWORD NumberOfSymbols; <
4560 DWORD LvaToFirstSymbol; <
4561 DWORD NumberOfLinenumbers; <
4562 DWORD LvaToFirstLinenumber; <
4563 DWORD RvaToFirstByteOfCode; <
4564 DWORD RvaToLastByteOfCode; <
4565 DWORD RvaToFirstByteOfData; <
4566 DWORD RvaToLastByteOfData; <
4567 } <
4568 alias _IMAGE_COFF_SYMBOLS_HEADER IMAGE_COFF_SYMBOLS_HEADER; <
4569 alias _IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER; <
4570 <
4571 enum : uint { FRAME_FPO = 0 } <
4572 enum : uint { FRAME_TRAP = 1 } <
4573 enum : uint { FRAME_TSS = 2 } <
4574 enum : uint { FRAME_NONFPO = 3 } <
4575 <
4576 struct _FPO_DATA { <
4577 DWORD ulOffStart; <
4578 DWORD cbProcSize; <
4579 DWORD cdwLocals; <
4580 WORD cdwParams; <
4581 // WORD cbProlog : 8; <
4582 // WORD cbRegs : 3; <
4583 // WORD fHasSEH : 1; <
4584 // WORD fUseBP : 1; <
4585 // WORD reserved : 1; <
4586 // WORD cbFrame : 2; <
4587 } <
4588 alias _FPO_DATA FPO_DATA; <
4589 alias _FPO_DATA* PFPO_DATA; <
4590 <
4591 enum : uint { SIZEOF_RFPO_DATA = 16 } <
4592 <
4593 enum : uint { IMAGE_DEBUG_MISC_EXENAME = 1 } <
4594 <
4595 struct _IMAGE_DEBUG_MISC { <
4596 DWORD DataType; <
4597 DWORD Length; <
4598 <
4599 BOOLEAN Unicode; <
4600 BYTE Reserved[ 3 ]; <
4601 BYTE Data[ 1 ]; <
4602 } <
4603 alias _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC; <
4604 alias _IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC; <
4605 <
4606 struct _IMAGE_FUNCTION_ENTRY { <
4607 DWORD StartingAddress; <
4608 DWORD EndingAddress; <
4609 DWORD EndOfPrologue; <
4610 } <
4611 alias _IMAGE_FUNCTION_ENTRY IMAGE_FUNCTION_ENTRY; <
4612 alias _IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY; <
4613 <
4614 struct _IMAGE_FUNCTION_ENTRY64 { <
4615 ULONGLONG StartingAddress; <
4616 ULONGLONG EndingAddress; <
4617 union { <
4618 ULONGLONG EndOfPrologue; <
4619 ULONGLONG UnwindInfoAddress; <
4620 } <
4621 <
4622 } <
4623 alias _IMAGE_FUNCTION_ENTRY64 IMAGE_FUNCTION_ENTRY64; <
4624 alias _IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64; <
4625 <
4626 struct _IMAGE_SEPARATE_DEBUG_HEADER { <
4627 WORD Signature; <
4628 WORD Flags; <
4629 WORD Machine; <
4630 WORD Characteristics; <
4631 DWORD TimeDateStamp; <
4632 DWORD CheckSum; <
4633 DWORD ImageBase; <
4634 DWORD SizeOfImage; <
4635 DWORD NumberOfSections; <
4636 DWORD ExportedNamesSize; <
4637 DWORD DebugDirectorySize; <
4638 DWORD SectionAlignment; <
4639 DWORD Reserved[2]; <
4640 } <
4641 alias _IMAGE_SEPARATE_DEBUG_HEADER IMAGE_SEPARATE_DEBUG_HEADER; <
4642 alias _IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER; <
4643 <
4644 struct _NON_PAGED_DEBUG_INFO { <
4645 WORD Signature; <
4646 WORD Flags; <
4647 DWORD Size; <
4648 WORD Machine; <
4649 WORD Characteristics; <
4650 DWORD TimeDateStamp; <
4651 DWORD CheckSum; <
4652 DWORD SizeOfImage; <
4653 ULONGLONG ImageBase; <
4654 <
4655 } <
4656 alias _NON_PAGED_DEBUG_INFO NON_PAGED_DEBUG_INFO; <
4657 alias _NON_PAGED_DEBUG_INFO* PNON_PAGED_DEBUG_INFO; <
4658 <
4659 // #ifndef _MAC <
4660 enum : uint { IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944 } <
4661 enum : uint { NON_PAGED_DEBUG_SIGNATURE = 0x494E } <
4662 // #else <
4663 // #... <
4664 // #... <
4665 // #endif <
4666 <
4667 enum : uint { IMAGE_SEPARATE_DEBUG_FLAGS_MASK = 0x8000 } <
4668 enum : uint { IMAGE_SEPARATE_DEBUG_MISMATCH = 0x8000 } <
4669 <
4670 struct _ImageArchitectureHeader { <
4671 // unsigned int AmaskValue: 1; <
4672 <
4673 // int :7; <
4674 // unsigned int AmaskShift: 8; <
4675 // int :16; <
4676 DWORD FirstEntryRVA; <
4677 } <
4678 alias _ImageArchitectureHeader IMAGE_ARCHITECTURE_HEADER; <
4679 alias _ImageArchitectureHeader* PIMAGE_ARCHITECTURE_HEADER; <
4680 <
4681 struct _ImageArchitectureEntry { <
4682 DWORD FixupInstRVA; <
4683 DWORD NewInst; <
4684 } <
4685 alias _ImageArchitectureEntry IMAGE_ARCHITECTURE_ENTRY; <
4686 alias _ImageArchitectureEntry* PIMAGE_ARCHITECTURE_ENTRY; <
4687 <
4688 align: <
4689 <
4690 enum : uint { IMPORT_OBJECT_HDR_SIG2 = 0xffff } <
4691 <
4692 struct IMPORT_OBJECT_HEADER { <
4693 WORD Sig1; <
4694 WORD Sig2; <
4695 WORD Version; <
4696 WORD Machine; <
4697 DWORD TimeDateStamp; <
4698 DWORD SizeOfData; <
4699 <
4700 union { <
4701 WORD Ordinal; <
4702 WORD Hint; <
4703 } <
4704 <
4705 // WORD Type : 2; <
4706 // WORD NameType : 3; <
4707 // WORD Reserved : 11; <
4708 } <
4709 <
4710 alias int IMPORT_OBJECT_TYPE; <
4711 enum { <
4712 IMPORT_OBJECT_CODE = 0, <
4713 IMPORT_OBJECT_DATA = 1, <
4714 IMPORT_OBJECT_CONST = 2, <
4715 } <
4716 <
4717 alias int IMPORT_OBJECT_NAME_TYPE; <
4718 enum { <
4719 IMPORT_OBJECT_ORDINAL = 0, <
4720 IMPORT_OBJECT_NAME = 1, <
4721 IMPORT_OBJECT_NAME_NO_PREFIX = 2, <
4722 IMPORT_OBJECT_NAME_UNDECORATE = 3, <
4723 <
4724 } <
4725 <
4726 // #ifndef __IMAGE_COR20_HEADER_DEFINED__ <
4727 // #define __IMAGE_COR20_HEADER_DEFINED__ <
4728 <
4729 alias int ReplacesCorHdrNumericDefines; <
4730 enum { <
4731 <
4732 COMIMAGE_FLAGS_ILONLY = 0x00000001, <
4733 COMIMAGE_FLAGS_32BITREQUIRED = 0x00000002, <
4734 COMIMAGE_FLAGS_IL_LIBRARY = 0x00000004, <
4735 COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000, <
4736 <
4737 COR_VERSION_MAJOR_V2 = 2, <
4738 COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2, <
4739 COR_VERSION_MINOR = 0, <
4740 COR_DELETED_NAME_LENGTH = 8, <
4741 COR_VTABLEGAP_NAME_LENGTH = 8, <
4742 <
4743 NATIVE_TYPE_MAX_CB = 1, <
4744 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xFF, <
4745 <
4746 IMAGE_COR_MIH_METHODRVA = 0x01, <
4747 IMAGE_COR_MIH_EHRVA = 0x02, <
4748 IMAGE_COR_MIH_BASICBLOCK = 0x08, <
4749 <
4750 COR_VTABLE_32BIT = 0x01, <
4751 COR_VTABLE_64BIT = 0x02, <
4752 COR_VTABLE_FROM_UNMANAGED = 0x04, <
4753 COR_VTABLE_CALL_MOST_DERIVED = 0x10, <
4754 <
4755 IMAGE_COR_EATJ_THUNK_SIZE = 32, <
4756 <
4757 MAX_CLASS_NAME = 1024, <
4758 MAX_PACKAGE_NAME = 1024, <
4759 } <
4760 <
4761 struct IMAGE_COR20_HEADER { <
4762 <
4763 DWORD cb; <
4764 WORD MajorRuntimeVersion; <
4765 WORD MinorRuntimeVersion; <
4766 IMAGE_DATA_DIRECTORY MetaData; <
4767 DWORD Flags; <
4768 DWORD EntryPointToken; <
4769 IMAGE_DATA_DIRECTORY Resources; <
4770 IMAGE_DATA_DIRECTORY StrongNameSignature; <
4771 IMAGE_DATA_DIRECTORY CodeManagerTable; <
4772 IMAGE_DATA_DIRECTORY VTableFixups; <
4773 IMAGE_DATA_DIRECTORY ExportAddressTableJumps; <
4774 IMAGE_DATA_DIRECTORY ManagedNativeHeader; <
4775 } <
4776 alias IMAGE_COR20_HEADER* PIMAGE_COR20_HEADER; <
4777 <
4778 // #endif // __IMAGE_COR20_HEADER_DEFINED__ <
4779 <
4780 // #ifdef _MAC <
4781 // #ifndef _INC_STRING <
4782 // #... <
4783 // #endif /* _INC_STRING */ <
4784 // #else <
4785 // #include <string.h> <
4786 // #endif // _MAC <
4787 <
4788 // #ifndef _SLIST_HEADER_ <
4789 // #define _SLIST_HEADER_ <
4790 <
4791 alias SINGLE_LIST_ENTRY SLIST_ENTRY; <
4792 alias _SINGLE_LIST_ENTRY _SLIST_ENTRY; <
4793 alias PSINGLE_LIST_ENTRY PSLIST_ENTRY; <
4794 <
4795 // #if defined(_WIN64) <
4796 <
4797 // ... <
4798 <
4799 // ... <
4800 <
4801 // #else <
4802 <
4803 union _SLIST_HEADER { <
4804 ULONGLONG Alignment; <
4805 struct { <
4806 SLIST_ENTRY Next; <
4807 WORD Depth; <
4808 WORD Sequence; <
4809 } <
4810 <
4811 } <
4812 alias _SLIST_HEADER SLIST_HEADER; <
4813 alias _SLIST_HEADER* PSLIST_HEADER; <
4814 <
4815 // #endif <
4816 <
4817 // #endif <
4818 <
4819 extern(Windows) export VOID RtlInitializeSListHead( <
4820 PSLIST_HEADER ListHead); <
4821 <
4822 extern(Windows) export PSLIST_ENTRY RtlFirstEntrySList( <
4823 SLIST_HEADER *ListHead); <
4824 <
4825 extern(Windows) export PSLIST_ENTRY RtlInterlockedPopEntrySList( <
4826 PSLIST_HEADER ListHead); <
4827 <
4828 extern(Windows) export PSLIST_ENTRY RtlInterlockedPushEntrySList( <
4829 PSLIST_HEADER ListHead, <
4830 PSLIST_ENTRY ListEntry); <
4831 <
4832 extern(Windows) export PSLIST_ENTRY RtlInterlockedFlushSList( <
4833 PSLIST_HEADER ListHead); <
4834 <
4835 extern(Windows) export WORD RtlQueryDepthSList( <
4836 PSLIST_HEADER ListHead); <
4837 <
4838 enum : uint { HEAP_NO_SERIALIZE = 0x00000001 } <
4839 enum : uint { HEAP_GROWABLE = 0x00000002 } <
4840 enum : uint { HEAP_GENERATE_EXCEPTIONS = 0x00000004 } <
4841 enum : uint { HEAP_ZERO_MEMORY = 0x00000008 } <
4842 enum : uint { HEAP_REALLOC_IN_PLACE_ONLY = 0x00000010 } <
4843 enum : uint { HEAP_TAIL_CHECKING_ENABLED = 0x00000020 } <
4844 enum : uint { HEAP_FREE_CHECKING_ENABLED = 0x00000040 } <
4845 enum : uint { HEAP_DISABLE_COALESCE_ON_FREE = 0x00000080 } <
4846 enum : uint { HEAP_CREATE_ALIGN_16 = 0x00010000 } <
4847 enum : uint { HEAP_CREATE_ENABLE_TRACING = 0x00020000 } <
4848 enum : uint { HEAP_MAXIMUM_TAG = 0x0FFF } <
4849 enum : uint { HEAP_PSEUDO_TAG_FLAG = 0x8000 } <
4850 enum : uint { HEAP_TAG_SHIFT = 18 } <
4851 uint HEAP_MAKE_TAG_FLAGS(uint b, uint o){ return b + (o << 18); } <
4852 <
4853 enum : uint { IS_TEXT_UNICODE_ASCII16 = 0x0001 } <
4854 enum : uint { IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010 } <
4855 <
4856 enum : uint { IS_TEXT_UNICODE_STATISTICS = 0x0002 } <
4857 enum : uint { IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020 } <
4858 <
4859 enum : uint { IS_TEXT_UNICODE_CONTROLS = 0x0004 } <
4860 enum : uint { IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040 } <
4861 <
4862 enum : uint { IS_TEXT_UNICODE_SIGNATURE = 0x0008 } <
4863 enum : uint { IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080 } <
4864 <
4865 enum : uint { IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100 } <
4866 enum : uint { IS_TEXT_UNICODE_ODD_LENGTH = 0x0200 } <
4867 enum : uint { IS_TEXT_UNICODE_DBCS_LEADBYTE = 0x0400 } <
4868 enum : uint { IS_TEXT_UNICODE_NULL_BYTES = 0x1000 } <
4869 <
4870 enum : uint { IS_TEXT_UNICODE_UNICODE_MASK = 0x000F } <
4871 enum : uint { IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0 } <
4872 enum : uint { IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00 } <
4873 enum : uint { IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000 } <
4874 <
4875 enum : uint { COMPRESSION_FORMAT_NONE = 0x0000 } <
4876 enum : uint { COMPRESSION_FORMAT_DEFAULT = 0x0001 } <
4877 enum : uint { COMPRESSION_FORMAT_LZNT1 = 0x0002 } <
4878 enum : uint { COMPRESSION_ENGINE_STANDARD = 0x0000 } <
4879 enum : uint { COMPRESSION_ENGINE_MAXIMUM = 0x0100 } <
4880 enum : uint { COMPRESSION_ENGINE_HIBER = 0x0200 } <
4881 <
4882 extern(Windows) export SIZE_T RtlCompareMemory( <
4883 VOID *Source1, <
4884 VOID *Source2, <
4885 SIZE_T Length); <
4886 <
4887 // #if defined(_M_AMD64) || defined(_M_IA64) <
4888 <
4889 // #... <
4890 // ... <
4891 <
4892 // ... <
4893 <
4894 // #if !defined(_M_AMD64) <
4895 <
4896 // ... <
4897 <
4898 // #endif <
4899 <
4900 // ... <
4901 <
4902 // ... <
4903 <
4904 // ... <
4905 <
4906 // #else <
4907 <
4908 bit RtlEqualMemory(void* x, void* y, uint len){ return memcmp(x, y, len) == 0; } <
4909 void RtlMoveMemory(void* d, void* s, uint len){ memmove(d, s, len); } <
4910 void RtlCopyMemory(void* d, void* s, uint len){ memcpy(d, s, len); } <
4911 void RtlFillMemory(void* d, uint len, ubyte f){ memset(d, f, len); } <
4912 void RtlZeroMemory(void* d, uint len){ memset(d, 0, len); } <
4913 <
4914 // #endif <
4915 <
4916 struct _MESSAGE_RESOURCE_ENTRY { <
4917 WORD Length; <
4918 WORD Flags; <
4919 BYTE Text[ 1 ]; <
4920 } <
4921 alias _MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_ENTRY; <
4922 alias _MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY; <
4923 <
4924 enum : uint { MESSAGE_RESOURCE_UNICODE = 0x0001 } <
4925 <
4926 struct _MESSAGE_RESOURCE_BLOCK { <
4927 DWORD LowId; <
4928 DWORD HighId; <
4929 DWORD OffsetToEntries; <
4930 } <
4931 alias _MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_BLOCK; <
4932 alias _MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK; <
4933 <
4934 struct _MESSAGE_RESOURCE_DATA { <
4935 DWORD NumberOfBlocks; <
4936 MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; <
4937 } <
4938 alias _MESSAGE_RESOURCE_DATA MESSAGE_RESOURCE_DATA; <
4939 alias _MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA; <
4940 <
4941 struct _OSVERSIONINFOA { <
4942 DWORD dwOSVersionInfoSize; <
4943 DWORD dwMajorVersion; <
4944 DWORD dwMinorVersion; <
4945 DWORD dwBuildNumber; <
4946 DWORD dwPlatformId; <
4947 CHAR szCSDVersion[ 128 ]; <
4948 } <
4949 alias _OSVERSIONINFOA OSVERSIONINFOA; <
4950 alias _OSVERSIONINFOA* POSVERSIONINFOA; <
4951 alias _OSVERSIONINFOA* LPOSVERSIONINFOA; <
4952 <
4953 struct _OSVERSIONINFOW { <
4954 DWORD dwOSVersionInfoSize; <
4955 DWORD dwMajorVersion; <
4956 DWORD dwMinorVersion; <
4957 DWORD dwBuildNumber; <
4958 DWORD dwPlatformId; <
4959 WCHAR szCSDVersion[ 128 ]; <
4960 } <
4961 alias _OSVERSIONINFOW OSVERSIONINFOW; <
4962 alias _OSVERSIONINFOW* POSVERSIONINFOW; <
4963 alias _OSVERSIONINFOW* LPOSVERSIONINFOW; <
4964 alias _OSVERSIONINFOW RTL_OSVERSIONINFOW; <
4965 alias _OSVERSIONINFOW* PRTL_OSVERSIONINFOW; <
4966 <
4967 // #ifdef UNICODE <
4968 alias OSVERSIONINFOW OSVERSIONINFO; <
4969 alias POSVERSIONINFOW POSVERSIONINFO; <
4970 alias LPOSVERSIONINFOW LPOSVERSIONINFO; <
4971 // #else <
4972 // ... <
4973 // #endif // UNICODE <
4974 <
4975 struct _OSVERSIONINFOEXA { <
4976 DWORD dwOSVersionInfoSize; <
4977 DWORD dwMajorVersion; <
4978 DWORD dwMinorVersion; <
4979 DWORD dwBuildNumber; <
4980 DWORD dwPlatformId; <
4981 CHAR szCSDVersion[ 128 ]; <
4982 WORD wServicePackMajor; <
4983 WORD wServicePackMinor; <
4984 WORD wSuiteMask; <
4985 BYTE wProductType; <
4986 BYTE wReserved; <
4987 } <
4988 alias _OSVERSIONINFOEXA OSVERSIONINFOEXA; <
4989 alias _OSVERSIONINFOEXA* POSVERSIONINFOEXA; <
4990 alias _OSVERSIONINFOEXA* LPOSVERSIONINFOEXA; <
4991 <
4992 struct _OSVERSIONINFOEXW { <
4993 DWORD dwOSVersionInfoSize; <
4994 DWORD dwMajorVersion; <
4995 DWORD dwMinorVersion; <
4996 DWORD dwBuildNumber; <
4997 DWORD dwPlatformId; <
4998 WCHAR szCSDVersion[ 128 ]; <
4999 WORD wServicePackMajor; <
5000 WORD wServicePackMinor; <
5001 WORD wSuiteMask; <
5002 BYTE wProductType; <
5003 BYTE wReserved; <
5004 } <
5005 alias _OSVERSIONINFOEXW OSVERSIONINFOEXW; <
5006 alias _OSVERSIONINFOEXW* POSVERSIONINFOEXW; <
5007 alias _OSVERSIONINFOEXW* LPOSVERSIONINFOEXW; <
5008 alias _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW; <
5009 alias _OSVERSIONINFOEXW* PRTL_OSVERSIONINFOEXW; <
5010 <
5011 // #ifdef UNICODE <
5012 alias OSVERSIONINFOEXW OSVERSIONINFOEX; <
5013 alias POSVERSIONINFOEXW POSVERSIONINFOEX; <
5014 alias LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; <
5015 // #else <
5016 // ... <
5017 // #endif // UNICODE <
5018 <
5019 enum : uint { VER_EQUAL = 1 } <
5020 enum : uint { VER_GREATER = 2 } <
5021 enum : uint { VER_GREATER_EQUAL = 3 } <
5022 enum : uint { VER_LESS = 4 } <
5023 enum : uint { VER_LESS_EQUAL = 5 } <
5024 enum : uint { VER_AND = 6 } <
5025 enum : uint { VER_OR = 7 } <
5026 <
5027 enum : uint { VER_CONDITION_MASK = 7 } <
5028 enum : uint { VER_NUM_BITS_PER_CONDITION_MASK = 3 } <
5029 <
5030 enum : uint { VER_MINORVERSION = 0x0000001 } <
5031 enum : uint { VER_MAJORVERSION = 0x0000002 } <
5032 enum : uint { VER_BUILDNUMBER = 0x0000004 } <
5033 enum : uint { VER_PLATFORMID = 0x0000008 } <
5034 enum : uint { VER_SERVICEPACKMINOR = 0x0000010 } <
5035 enum : uint { VER_SERVICEPACKMAJOR = 0x0000020 } <
5036 enum : uint { VER_SUITENAME = 0x0000040 } <
5037 enum : uint { VER_PRODUCT_TYPE = 0x0000080 } <
5038 <
5039 enum : uint { VER_NT_WORKSTATION = 0x0000001 } <
5040 enum : uint { VER_NT_DOMAIN_CONTROLLER = 0x0000002 } <
5041 enum : uint { VER_NT_SERVER = 0x0000003 } <
5042 <
5043 enum : uint { VER_PLATFORM_WIN32s = 0 } <
5044 enum : uint { VER_PLATFORM_WIN32_WINDOWS = 1 } <
5045 enum : uint { VER_PLATFORM_WIN32_NT = 2 } <
5046 <
5047 // #define VER_SET_CONDITION(_m_,_t_,_c_) ((_m_)=VerSetConditionMask((_m_),(_t_) <
5048 <
5049 extern(Windows) export ULONGLONG VerSetConditionMask( <
5050 ULONGLONG ConditionMask, <
5051 DWORD TypeMask, <
5052 BYTE Condition); <
5053 <
5054 struct _RTL_CRITICAL_SECTION_DEBUG { <
5055 WORD Type; <
5056 WORD CreatorBackTraceIndex; <
5057 _RTL_CRITICAL_SECTION *CriticalSection; <
5058 LIST_ENTRY ProcessLocksList; <
5059 DWORD EntryCount; <
5060 DWORD ContentionCount; <
5061 DWORD Spare[ 2 ]; <
5062 } <
5063 alias _RTL_CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG; <
5064 alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG; <
5065 alias _RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG; <
5066 alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_RESOURCE_DEBUG; <
5067 <
5068 enum : uint { RTL_CRITSECT_TYPE = 0 } <
5069 enum : uint { RTL_RESOURCE_TYPE = 1 } <
5070 <
5071 struct _RTL_CRITICAL_SECTION { <
5072 PRTL_CRITICAL_SECTION_DEBUG DebugInfo; <
5073 <
5074 LONG LockCount; <
5075 LONG RecursionCount; <
5076 HANDLE OwningThread; <
5077 HANDLE LockSemaphore; <
5078 ULONG_PTR SpinCount; <
5079 } <
5080 alias _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION; <
5081 alias _RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION; <
5082 <
5083 extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSiz <
5084 <
5085 extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSiz <
5086 <
5087 struct _RTL_VERIFIER_THUNK_DESCRIPTOR { <
5088 <
5089 PCHAR ThunkName; <
5090 PVOID ThunkOldAddress; <
5091 PVOID ThunkNewAddress; <
5092 } <
5093 alias _RTL_VERIFIER_THUNK_DESCRIPTOR RTL_VERIFIER_THUNK_DESCRIPTOR; <
5094 alias _RTL_VERIFIER_THUNK_DESCRIPTOR* PRTL_VERIFIER_THUNK_DESCRIPTOR; <
5095 <
5096 struct _RTL_VERIFIER_DLL_DESCRIPTOR { <
5097 <
5098 PWCHAR DllName; <
5099 DWORD DllFlags; <
5100 PVOID DllAddress; <
5101 PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks; <
5102 } <
5103 alias _RTL_VERIFIER_DLL_DESCRIPTOR RTL_VERIFIER_DLL_DESCRIPTOR; <
5104 alias _RTL_VERIFIER_DLL_DESCRIPTOR* PRTL_VERIFIER_DLL_DESCRIPTOR; <
5105 <
5106 struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR { <
5107 <
5108 DWORD Length; <
5109 PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls; <
5110 RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback; <
5111 RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback; <
5112 <
5113 PWSTR VerifierImage; <
5114 DWORD VerifierFlags; <
5115 DWORD VerifierDebug; <
5116 } <
5117 alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR RTL_VERIFIER_PROVIDER_DESCRIPTOR; <
5118 alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR* PRTL_VERIFIER_PROVIDER_DESCRIPTOR; <
5119 <
5120 enum : uint { RTL_VRF_FLG_FULL_PAGE_HEAP = 0x0001 } <
5121 enum : uint { RTL_VRF_FLG_LOCK_CHECKS = 0x0002 } <
5122 enum : uint { RTL_VRF_FLG_HANDLE_CHECKS = 0x0004 } <
5123 enum : uint { RTL_VRF_FLG_STACK_CHECKS = 0x0008 } <
5124 enum : uint { RTL_VRF_FLG_APPCOMPAT_CHECKS = 0x0010 } <
5125 <
5126 enum : uint { APPLICATION_VERIFIER_INTERNAL_ERROR = 0x80000000 } <
5127 enum : uint { APPLICATION_VERIFIER_INTERNAL_WARNING = 0x40000000 } <
5128 enum : uint { APPLICATION_VERIFIER_NO_BREAK = 0x20000000 } <
5129 enum : uint { APPLICATION_VERIFIER_RESERVED_BIT_28 = 0x10000000 } <
5130 <
5131 enum : uint { APPLICATION_VERIFIER_UNKNOWN_ERROR = 0x0001 } <
5132 enum : uint { APPLICATION_VERIFIER_ACCESS_VIOLATION = 0x0002 } <
5133 enum : uint { APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS = 0x0003 } <
5134 enum : uint { APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST = 0x0004 } <
5135 enum : uint { APPLICATION_VERIFIER_BAD_HEAP_HANDLE = 0x0005 } <
5136 enum : uint { APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE = 0x0006 } <
5137 enum : uint { APPLICATION_VERIFIER_DOUBLE_FREE = 0x0007 } <
5138 enum : uint { APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK = 0x0008 } <
5139 enum : uint { APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP = 0x0009 } <
5140 enum : uint { APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION = 0x000A } <
5141 enum : uint { APPLICATION_VERIFIER_STACK_OVERFLOW = 0x000B } <
5142 <
5143 enum : uint { APPLICATION_VERIFIER_TERMINATE_THREAD_CALL = 0x0100 } <
5144 <
5145 enum : uint { APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK = 0x0200 } <
5146 enum : uint { APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL = 0x0201 } <
5147 enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP = 0x0202 } <
5148 enum : uint { APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE = 0x0203 } <
5149 enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY = 0x0204 } <
5150 enum : uint { APPLICATION_VERIFIER_LOCK_CORRUPTED = 0x0205 } <
5151 enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_OWNER = 0x0206 } <
5152 enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT = 0x0207 } <
5153 enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT = 0x0208 } <
5154 enum : uint { APPLICATION_VERIFIER_LOCK_OVER_RELEASED = 0x0209 } <
5155 enum : uint { APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED = 0x0210 } <
5156 <
5157 enum : uint { APPLICATION_VERIFIER_INVALID_HANDLE = 0x0300 } <
5158 <
5159 // #define VERIFIER_STOP(Code, Msg, P1, S1, P2, S2, P3, S3, P4, S4) { RtlApplica <
5160 <
5161 extern(Windows) export VOID RtlApplicationVerifierStop( <
5162 ULONG_PTR Code, <
5163 PCHAR Message, <
5164 ULONG_PTR Param1, PCHAR Description1, <
5165 ULONG_PTR Param2, PCHAR Description2, <
5166 ULONG_PTR Param3, PCHAR Description3, <
5167 ULONG_PTR Param4, PCHAR Description4); <
5168 <
5169 extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PVECT <
5170 enum : uint { SEF_DACL_AUTO_INHERIT = 0x01 } <
5171 enum : uint { SEF_SACL_AUTO_INHERIT = 0x02 } <
5172 enum : uint { SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = 0x04 } <
5173 enum : uint { SEF_AVOID_PRIVILEGE_CHECK = 0x08 } <
5174 enum : uint { SEF_AVOID_OWNER_CHECK = 0x10 } <
5175 enum : uint { SEF_DEFAULT_OWNER_FROM_PARENT = 0x20 } <
5176 enum : uint { SEF_DEFAULT_GROUP_FROM_PARENT = 0x40 } <
5177 <
5178 alias int _HEAP_INFORMATION_CLASS; <
5179 enum { <
5180 <
5181 HeapCompatibilityInformation, <
5182 <
5183 } <
5184 alias _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS; <
5185 <
5186 extern(Windows) export DWORD RtlSetHeapInformation( <
5187 PVOID HeapHandle, <
5188 HEAP_INFORMATION_CLASS HeapInformationClass, <
5189 PVOID HeapInformation , <
5190 SIZE_T HeapInformationLength ); <
5191 <
5192 extern(Windows) export DWORD RtlQueryHeapInformation( <
5193 PVOID HeapHandle, <
5194 HEAP_INFORMATION_CLASS HeapInformationClass, <
5195 PVOID HeapInformation , <
5196 SIZE_T HeapInformationLength , <
5197 PSIZE_T ReturnLength ); <
5198 <
5199 enum : uint { WT_EXECUTEDEFAULT = 0x00000000 } <
5200 enum : uint { WT_EXECUTEINIOTHREAD = 0x00000001 } <
5201 enum : uint { WT_EXECUTEINUITHREAD = 0x00000002 } <
5202 enum : uint { WT_EXECUTEINWAITTHREAD = 0x00000004 } <
5203 enum : uint { WT_EXECUTEONLYONCE = 0x00000008 } <
5204 enum : uint { WT_EXECUTEINTIMERTHREAD = 0x00000020 } <
5205 enum : uint { WT_EXECUTELONGFUNCTION = 0x00000010 } <
5206 enum : uint { WT_EXECUTEINPERSISTENTIOTHREAD = 0x00000040 } <
5207 enum : uint { WT_EXECUTEINPERSISTENTTHREAD = 0x00000080 } <
5208 // #define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16) <
5209 extern(Windows) alias VOID function(PVOID, BOOLEAN ) WAITORTIMERCALLBACKFUNC; <
5210 extern(Windows) alias VOID function(PVOID ) WORKERCALLBACKFUNC; <
5211 extern(Windows) alias VOID function(DWORD , PVOID, PVOID) APC_CALLBACK_FUNCTION; <
5212 enum : uint { WT_EXECUTEINLONGTHREAD = 0x00000010 } <
5213 enum : uint { WT_EXECUTEDELETEWAIT = 0x00000008 } <
5214 <
5215 alias int _ACTIVATION_CONTEXT_INFO_CLASS; <
5216 enum { <
5217 ActivationContextBasicInformation = 1, <
5218 ActivationContextDetailedInformation = 2, <
5219 AssemblyDetailedInformationInActivationContext = 3, <
5220 FileInformationInAssemblyOfAssemblyInActivationContext = 4, <
5221 MaxActivationContextInfoClass, <
5222 <
5223 AssemblyDetailedInformationInActivationContxt = 3, <
5224 FileInformationInAssemblyOfAssemblyInActivationContxt = 4, <
5225 } <
5226 alias _ACTIVATION_CONTEXT_INFO_CLASS ACTIVATION_CONTEXT_INFO_CLASS; <
5227 <
5228 alias ACTIVATION_CONTEXT_INFO_CLASS ACTIVATIONCONTEXTINFOCLASS; <
5229 <
5230 struct _ACTIVATION_CONTEXT_QUERY_INDEX { <
5231 DWORD ulAssemblyIndex; <
5232 DWORD ulFileIndexInAssembly; <
5233 } <
5234 alias _ACTIVATION_CONTEXT_QUERY_INDEX ACTIVATION_CONTEXT_QUERY_INDEX; <
5235 alias _ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; <
5236 <
5237 alias _ACTIVATION_CONTEXT_QUERY_INDEX* PCACTIVATION_CONTEXT_QUERY_INDEX; <
5238 <
5239 enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_NONE = 1 } <
5240 enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE = 2 } <
5241 enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_URL = 3 } <
5242 enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF = 4 } <
5243 <
5244 struct _ASSEMBLY_FILE_DETAILED_INFORMATION { <
5245 DWORD ulFlags; <
5246 DWORD ulFilenameLength; <
5247 DWORD ulPathLength; <
5248 PCWSTR lpFileName; <
5249 PCWSTR lpFilePath; <
5250 } <
5251 alias _ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION; <
5252 alias _ASSEMBLY_FILE_DETAILED_INFORMATION* PASSEMBLY_FILE_DETAILED_INFORMATION; <
5253 <
5254 alias ASSEMBLY_FILE_DETAILED_INFORMATION* PCASSEMBLY_FILE_DETAILED_INFORMATION; <
5255 <
5256 alias _ASSEMBLY_FILE_DETAILED_INFORMATION _ASSEMBLY_DLL_REDIRECTION_DETAILED_INF <
5257 alias ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_DLL_REDIRECTION_DETAILED_INFOR <
5258 alias PASSEMBLY_FILE_DETAILED_INFORMATION PASSEMBLY_DLL_REDIRECTION_DETAILED_INF <
5259 alias PCASSEMBLY_FILE_DETAILED_INFORMATION PCASSEMBLY_DLL_REDIRECTION_DETAILED_I <
5260 <
5261 struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { <
5262 DWORD ulFlags; <
5263 DWORD ulEncodedAssemblyIdentityLength; <
5264 DWORD ulManifestPathType; <
5265 DWORD ulManifestPathLength; <
5266 LARGE_INTEGER liManifestLastWriteTime; <
5267 DWORD ulPolicyPathType; <
5268 DWORD ulPolicyPathLength; <
5269 LARGE_INTEGER liPolicyLastWriteTime; <
5270 DWORD ulMetadataSatelliteRosterIndex; <
5271 DWORD ulManifestVersionMajor; <
5272 DWORD ulManifestVersionMinor; <
5273 DWORD ulPolicyVersionMajor; <
5274 DWORD ulPolicyVersionMinor; <
5275 DWORD ulAssemblyDirectoryNameLength; <
5276 <
5277 PCWSTR lpAssemblyEncodedAssemblyIdentity; <
5278 PCWSTR lpAssemblyManifestPath; <
5279 PCWSTR lpAssemblyPolicyPath; <
5280 PCWSTR lpAssemblyDirectoryName; <
5281 DWORD ulFileCount; <
5282 } <
5283 alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ACTIVATION_CONTEXT_ASSEM <
5284 alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PACTIVATION_CONTEXT_ASS <
5285 <
5286 alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_AS <
5287 <
5288 struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION { <
5289 DWORD dwFlags; <
5290 DWORD ulFormatVersion; <
5291 DWORD ulAssemblyCount; <
5292 DWORD ulRootManifestPathType; <
5293 DWORD ulRootManifestPathChars; <
5294 DWORD ulRootConfigurationPathType; <
5295 DWORD ulRootConfigurationPathChars; <
5296 DWORD ulAppDirPathType; <
5297 DWORD ulAppDirPathChars; <
5298 PCWSTR lpRootManifestPath; <
5299 PCWSTR lpRootConfigurationPath; <
5300 PCWSTR lpAppDirPath; <
5301 } <
5302 alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION ACTIVATION_CONTEXT_DETAILED_INFOR <
5303 alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PACTIVATION_CONTEXT_DETAILED_INF <
5304 <
5305 alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_DETAILED_IN <
5306 <
5307 enum : uint { DLL_PROCESS_ATTACH = 1 } <
5308 enum : uint { DLL_THREAD_ATTACH = 2 } <
5309 enum : uint { DLL_THREAD_DETACH = 3 } <
5310 enum : uint { DLL_PROCESS_DETACH = 0 } <
5311 enum : uint { DLL_PROCESS_VERIFIER = 4 } <
5312 <
5313 enum : uint { EVENTLOG_SEQUENTIAL_READ = 0x0001 } <
5314 enum : uint { EVENTLOG_SEEK_READ = 0x0002 } <
5315 enum : uint { EVENTLOG_FORWARDS_READ = 0x0004 } <
5316 enum : uint { EVENTLOG_BACKWARDS_READ = 0x0008 } <
5317 <
5318 enum : uint { EVENTLOG_SUCCESS = 0x0000 } <
5319 enum : uint { EVENTLOG_ERROR_TYPE = 0x0001 } <
5320 enum : uint { EVENTLOG_WARNING_TYPE = 0x0002 } <
5321 enum : uint { EVENTLOG_INFORMATION_TYPE = 0x0004 } <
5322 enum : uint { EVENTLOG_AUDIT_SUCCESS = 0x0008 } <
5323 enum : uint { EVENTLOG_AUDIT_FAILURE = 0x0010 } <
5324 <
5325 enum : uint { EVENTLOG_START_PAIRED_EVENT = 0x0001 } <
5326 enum : uint { EVENTLOG_END_PAIRED_EVENT = 0x0002 } <
5327 enum : uint { EVENTLOG_END_ALL_PAIRED_EVENTS = 0x0004 } <
5328 enum : uint { EVENTLOG_PAIRED_EVENT_ACTIVE = 0x0008 } <
5329 enum : uint { EVENTLOG_PAIRED_EVENT_INACTIVE = 0x0010 } <
5330 <
5331 struct _EVENTLOGRECORD { <
5332 DWORD Length; <
5333 DWORD Reserved; <
5334 DWORD RecordNumber; <
5335 DWORD TimeGenerated; <
5336 DWORD TimeWritten; <
5337 DWORD EventID; <
5338 WORD EventType; <
5339 WORD NumStrings; <
5340 WORD EventCategory; <
5341 WORD ReservedFlags; <
5342 DWORD ClosingRecordNumber; <
5343 DWORD StringOffset; <
5344 DWORD UserSidLength; <
5345 DWORD UserSidOffset; <
5346 DWORD DataLength; <
5347 DWORD DataOffset; <
5348 <
5349 } <
5350 alias _EVENTLOGRECORD EVENTLOGRECORD; <
5351 alias _EVENTLOGRECORD* PEVENTLOGRECORD; <
5352 <
5353 enum : uint { MAXLOGICALLOGNAMESIZE = 256 } <
5354 <
5355 // #if _MSC_VER >= 1200 <
5356 // #pragma warning(push) <
5357 // #endif <
5358 // #pragma warning(disable : 4200) <
5359 struct _EVENTSFORLOGFILE { <
5360 DWORD ulSize; <
5361 WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE]; <
5362 DWORD ulNumRecords; <
5363 EVENTLOGRECORD pEventLogRecords[]; <
5364 } <
5365 alias _EVENTSFORLOGFILE EVENTSFORLOGFILE; <
5366 alias _EVENTSFORLOGFILE* PEVENTSFORLOGFILE; <
5367 <
5368 struct _PACKEDEVENTINFO { <
5369 DWORD ulSize; <
5370 DWORD ulNumEventsForLogFile; <
5371 DWORD ulOffsets[]; <
5372 } <
5373 alias _PACKEDEVENTINFO PACKEDEVENTINFO; <
5374 alias _PACKEDEVENTINFO* PPACKEDEVENTINFO; <
5375 <
5376 // #if _MSC_VER >= 1200 <
5377 // #pragma warning(pop) <
5378 // #else <
5379 // #... <
5380 // #endif <
5381 <
5382 enum : uint { KEY_QUERY_VALUE = 0x0001 } <
5383 enum : uint { KEY_SET_VALUE = 0x0002 } <
5384 enum : uint { KEY_CREATE_SUB_KEY = 0x0004 } <
5385 enum : uint { KEY_ENUMERATE_SUB_KEYS = 0x0008 } <
5386 enum : uint { KEY_NOTIFY = 0x0010 } <
5387 enum : uint { KEY_CREATE_LINK = 0x0020 } <
5388 enum : uint { KEY_WOW64_32KEY = 0x0200 } <
5389 enum : uint { KEY_WOW64_64KEY = 0x0100 } <
5390 enum : uint { KEY_WOW64_RES = 0x0300 } <
5391 <
5392 enum : uint { KEY_READ = (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE <
5393 <
5394 enum : uint { KEY_WRITE = (STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SU <
5395 <
5396 enum : uint { KEY_EXECUTE = KEY_READ & ~SYNCHRONIZE } <
5397 <
5398 enum : uint { KEY_ALL_ACCESS = (STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_ <
5399 <
5400 enum : uint { REG_OPTION_RESERVED = 0x00000000 } <
5401 <
5402 enum : uint { REG_OPTION_NON_VOLATILE = 0x00000000 } <
5403 <
5404 enum : uint { REG_OPTION_VOLATILE = 0x00000001 } <
5405 <
5406 enum : uint { REG_OPTION_CREATE_LINK = 0x00000002 } <
5407 <
5408 enum : uint { REG_OPTION_BACKUP_RESTORE = 0x00000004 } <
5409 <
5410 enum : uint { REG_OPTION_OPEN_LINK = 0x00000008 } <
5411 <
5412 enum : uint { REG_LEGAL_OPTION = REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | <
5413 <
5414 enum : uint { REG_CREATED_NEW_KEY = 0x00000001 } <
5415 enum : uint { REG_OPENED_EXISTING_KEY = 0x00000002 } <
5416 <
5417 enum : uint { REG_STANDARD_FORMAT = 1 } <
5418 enum : uint { REG_LATEST_FORMAT = 2 } <
5419 enum : uint { REG_NO_COMPRESSION = 4 } <
5420 <
5421 enum : uint { REG_WHOLE_HIVE_VOLATILE = 0x00000001 } <
5422 enum : uint { REG_REFRESH_HIVE = 0x00000002 } <
5423 enum : uint { REG_NO_LAZY_FLUSH = 0x00000004 } <
5424 enum : uint { REG_FORCE_RESTORE = 0x00000008 } <
5425 <
5426 enum : uint { REG_NOTIFY_CHANGE_NAME = 0x00000001 } <
5427 enum : uint { REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 } <
5428 enum : uint { REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 } <
5429 enum : uint { REG_NOTIFY_CHANGE_SECURITY = 0x00000008 } <
5430 <
5431 enum : uint { REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHAN <
5432 <
5433 enum : uint { REG_NONE = 0 } <
5434 enum : uint { REG_SZ = 1 } <
5435 enum : uint { REG_EXPAND_SZ = 2 } <
5436 <
5437 enum : uint { REG_BINARY = 3 } <
5438 enum : uint { REG_DWORD = 4 } <
5439 enum : uint { REG_DWORD_LITTLE_ENDIAN = 4 } <
5440 enum : uint { REG_DWORD_BIG_ENDIAN = 5 } <
5441 enum : uint { REG_LINK = 6 } <
5442 enum : uint { REG_MULTI_SZ = 7 } <
5443 enum : uint { REG_RESOURCE_LIST = 8 } <
5444 enum : uint { REG_FULL_RESOURCE_DESCRIPTOR = 9 } <
5445 enum : uint { REG_RESOURCE_REQUIREMENTS_LIST = 10 } <
5446 enum : uint { REG_QWORD = 11 } <
5447 enum : uint { REG_QWORD_LITTLE_ENDIAN = 11 } <
5448 <
5449 enum : uint { SERVICE_KERNEL_DRIVER = 0x00000001 } <
5450 enum : uint { SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 } <
5451 enum : uint { SERVICE_ADAPTER = 0x00000004 } <
5452 enum : uint { SERVICE_RECOGNIZER_DRIVER = 0x00000008 } <
5453 <
5454 enum : uint { SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVE <
5455 <
5456 enum : uint { SERVICE_WIN32_OWN_PROCESS = 0x00000010 } <
5457 enum : uint { SERVICE_WIN32_SHARE_PROCESS = 0x00000020 } <
5458 enum : uint { SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PR <
5459 <
5460 enum : uint { SERVICE_INTERACTIVE_PROCESS = 0x00000100 } <
5461 <
5462 enum : uint { SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVE <
5463 <
5464 enum : uint { SERVICE_BOOT_START = 0x00000000 } <
5465 enum : uint { SERVICE_SYSTEM_START = 0x00000001 } <
5466 enum : uint { SERVICE_AUTO_START = 0x00000002 } <
5467 enum : uint { SERVICE_DEMAND_START = 0x00000003 } <
5468 enum : uint { SERVICE_DISABLED = 0x00000004 } <
5469 <
5470 enum : uint { SERVICE_ERROR_IGNORE = 0x00000000 } <
5471 enum : uint { SERVICE_ERROR_NORMAL = 0x00000001 } <
5472 enum : uint { SERVICE_ERROR_SEVERE = 0x00000002 } <
5473 enum : uint { SERVICE_ERROR_CRITICAL = 0x00000003 } <
5474 <
5475 alias int _CM_SERVICE_NODE_TYPE; <
5476 enum { <
5477 DriverType = SERVICE_KERNEL_DRIVER, <
5478 FileSystemType = SERVICE_FILE_SYSTEM_DRIVER, <
5479 Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS, <
5480 Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS, <
5481 AdapterType = SERVICE_ADAPTER, <
5482 RecognizerType = SERVICE_RECOGNIZER_DRIVER, <
5483 } <
5484 alias _CM_SERVICE_NODE_TYPE SERVICE_NODE_TYPE; <
5485 <
5486 alias int _CM_SERVICE_LOAD_TYPE; <
5487 enum { <
5488 BootLoad = SERVICE_BOOT_START, <
5489 SystemLoad = SERVICE_SYSTEM_START, <
5490 AutoLoad = SERVICE_AUTO_START, <
5491 DemandLoad = SERVICE_DEMAND_START, <
5492 DisableLoad = SERVICE_DISABLED, <
5493 } <
5494 alias _CM_SERVICE_LOAD_TYPE SERVICE_LOAD_TYPE; <
5495 <
5496 alias int _CM_ERROR_CONTROL_TYPE; <
5497 enum { <
5498 IgnoreError = SERVICE_ERROR_IGNORE, <
5499 NormalError = SERVICE_ERROR_NORMAL, <
5500 SevereError = SERVICE_ERROR_SEVERE, <
5501 CriticalError = SERVICE_ERROR_CRITICAL, <
5502 } <
5503 alias _CM_ERROR_CONTROL_TYPE SERVICE_ERROR_TYPE; <
5504 <
5505 enum : uint { TAPE_ERASE_SHORT = 0 } <
5506 enum : uint { TAPE_ERASE_LONG = 1 } <
5507 <
5508 struct _TAPE_ERASE { <
5509 DWORD Type; <
5510 BOOLEAN Immediate; <
5511 } <
5512 alias _TAPE_ERASE TAPE_ERASE; <
5513 alias _TAPE_ERASE* PTAPE_ERASE; <
5514 <
5515 enum : uint { TAPE_LOAD = 0 } <
5516 enum : uint { TAPE_UNLOAD = 1 } <
5517 enum : uint { TAPE_TENSION = 2 } <
5518 enum : uint { TAPE_LOCK = 3 } <
5519 enum : uint { TAPE_UNLOCK = 4 } <
5520 enum : uint { TAPE_FORMAT = 5 } <
5521 <
5522 struct _TAPE_PREPARE { <
5523 DWORD Operation; <
5524 BOOLEAN Immediate; <
5525 } <
5526 alias _TAPE_PREPARE TAPE_PREPARE; <
5527 alias _TAPE_PREPARE* PTAPE_PREPARE; <
5528 <
5529 enum : uint { TAPE_SETMARKS = 0 } <
5530 enum : uint { TAPE_FILEMARKS = 1 } <
5531 enum : uint { TAPE_SHORT_FILEMARKS = 2 } <
5532 enum : uint { TAPE_LONG_FILEMARKS = 3 } <
5533 <
5534 struct _TAPE_WRITE_MARKS { <
5535 DWORD Type; <
5536 DWORD Count; <
5537 BOOLEAN Immediate; <
5538 } <
5539 alias _TAPE_WRITE_MARKS TAPE_WRITE_MARKS; <
5540 alias _TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS; <
5541 <
5542 enum : uint { TAPE_ABSOLUTE_POSITION = 0 } <
5543 enum : uint { TAPE_LOGICAL_POSITION = 1 } <
5544 enum : uint { TAPE_PSEUDO_LOGICAL_POSITION = 2 } <
5545 <
5546 struct _TAPE_GET_POSITION { <
5547 DWORD Type; <
5548 DWORD Partition; <
5549 LARGE_INTEGER Offset; <
5550 } <
5551 alias _TAPE_GET_POSITION TAPE_GET_POSITION; <
5552 alias _TAPE_GET_POSITION* PTAPE_GET_POSITION; <
5553 <
5554 enum : uint { TAPE_REWIND = 0 } <
5555 enum : uint { TAPE_ABSOLUTE_BLOCK = 1 } <
5556 enum : uint { TAPE_LOGICAL_BLOCK = 2 } <
5557 enum : uint { TAPE_PSEUDO_LOGICAL_BLOCK = 3 } <
5558 enum : uint { TAPE_SPACE_END_OF_DATA = 4 } <
5559 enum : uint { TAPE_SPACE_RELATIVE_BLOCKS = 5 } <
5560 enum : uint { TAPE_SPACE_FILEMARKS = 6 } <
5561 enum : uint { TAPE_SPACE_SEQUENTIAL_FMKS = 7 } <
5562 enum : uint { TAPE_SPACE_SETMARKS = 8 } <
5563 enum : uint { TAPE_SPACE_SEQUENTIAL_SMKS = 9 } <
5564 <
5565 struct _TAPE_SET_POSITION { <
5566 DWORD Method; <
5567 DWORD Partition; <
5568 LARGE_INTEGER Offset; <
5569 BOOLEAN Immediate; <
5570 } <
5571 alias _TAPE_SET_POSITION TAPE_SET_POSITION; <
5572 alias _TAPE_SET_POSITION* PTAPE_SET_POSITION; <
5573 <
5574 enum : uint { TAPE_DRIVE_FIXED = 0x00000001 } <
5575 enum : uint { TAPE_DRIVE_SELECT = 0x00000002 } <
5576 enum : uint { TAPE_DRIVE_INITIATOR = 0x00000004 } <
5577 <
5578 enum : uint { TAPE_DRIVE_ERASE_SHORT = 0x00000010 } <
5579 enum : uint { TAPE_DRIVE_ERASE_LONG = 0x00000020 } <
5580 enum : uint { TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040 } <
5581 enum : uint { TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080 } <
5582 <
5583 enum : uint { TAPE_DRIVE_TAPE_CAPACITY = 0x00000100 } <
5584 enum : uint { TAPE_DRIVE_TAPE_REMAINING = 0x00000200 } <
5585 enum : uint { TAPE_DRIVE_FIXED_BLOCK = 0x00000400 } <
5586 enum : uint { TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800 } <
5587 <
5588 enum : uint { TAPE_DRIVE_WRITE_PROTECT = 0x00001000 } <
5589 enum : uint { TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000 } <
5590 <
5591 enum : uint { TAPE_DRIVE_ECC = 0x00010000 } <
5592 enum : uint { TAPE_DRIVE_COMPRESSION = 0x00020000 } <
5593 enum : uint { TAPE_DRIVE_PADDING = 0x00040000 } <
5594 enum : uint { TAPE_DRIVE_REPORT_SMKS = 0x00080000 } <
5595 <
5596 enum : uint { TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000 } <
5597 enum : uint { TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000 } <
5598 enum : uint { TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000 } <
5599 <
5600 enum : uint { TAPE_DRIVE_EJECT_MEDIA = 0x01000000 } <
5601 enum : uint { TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000 } <
5602 enum : uint { TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000 } <
5603 <
5604 enum : uint { TAPE_DRIVE_RESERVED_BIT = 0x80000000 } <
5605 <
5606 enum : uint { TAPE_DRIVE_LOAD_UNLOAD = 0x80000001 } <
5607 enum : uint { TAPE_DRIVE_TENSION = 0x80000002 } <
5608 enum : uint { TAPE_DRIVE_LOCK_UNLOCK = 0x80000004 } <
5609 enum : uint { TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008 } <
5610 <
5611 enum : uint { TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010 } <
5612 enum : uint { TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020 } <
5613 enum : uint { TAPE_DRIVE_TENSION_IMMED = 0x80000040 } <
5614 enum : uint { TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080 } <
5615 <
5616 enum : uint { TAPE_DRIVE_SET_ECC = 0x80000100 } <
5617 enum : uint { TAPE_DRIVE_SET_COMPRESSION = 0x80000200 } <
5618 enum : uint { TAPE_DRIVE_SET_PADDING = 0x80000400 } <
5619 enum : uint { TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800 } <
5620 <
5621 enum : uint { TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000 } <
5622 enum : uint { TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000 } <
5623 enum : uint { TAPE_DRIVE_LOGICAL_BLK = 0x80004000 } <
5624 enum : uint { TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000 } <
5625 <
5626 enum : uint { TAPE_DRIVE_END_OF_DATA = 0x80010000 } <
5627 enum : uint { TAPE_DRIVE_RELATIVE_BLKS = 0x80020000 } <
5628 enum : uint { TAPE_DRIVE_FILEMARKS = 0x80040000 } <
5629 enum : uint { TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000 } <
5630 <
5631 enum : uint { TAPE_DRIVE_SETMARKS = 0x80100000 } <
5632 enum : uint { TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000 } <
5633 enum : uint { TAPE_DRIVE_REVERSE_POSITION = 0x80400000 } <
5634 enum : uint { TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000 } <
5635 <
5636 enum : uint { TAPE_DRIVE_WRITE_SETMARKS = 0x81000000 } <
5637 enum : uint { TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000 } <
5638 enum : uint { TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000 } <
5639 enum : uint { TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000 } <
5640 <
5641 enum : uint { TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000 } <
5642 enum : uint { TAPE_DRIVE_FORMAT = 0xA0000000 } <
5643 enum : uint { TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000 } <
5644 enum : uint { TAPE_DRIVE_HIGH_FEATURES = 0x80000000 } <
5645 <
5646 struct _TAPE_GET_DRIVE_PARAMETERS { <
5647 BOOLEAN ECC; <
5648 BOOLEAN Compression; <
5649 BOOLEAN DataPadding; <
5650 BOOLEAN ReportSetmarks; <
5651 DWORD DefaultBlockSize; <
5652 DWORD MaximumBlockSize; <
5653 DWORD MinimumBlockSize; <
5654 DWORD MaximumPartitionCount; <
5655 DWORD FeaturesLow; <
5656 DWORD FeaturesHigh; <
5657 DWORD EOTWarningZoneSize; <
5658 } <
5659 alias _TAPE_GET_DRIVE_PARAMETERS TAPE_GET_DRIVE_PARAMETERS; <
5660 alias _TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS; <
5661 <
5662 struct _TAPE_SET_DRIVE_PARAMETERS { <
5663 BOOLEAN ECC; <
5664 BOOLEAN Compression; <
5665 BOOLEAN DataPadding; <
5666 BOOLEAN ReportSetmarks; <
5667 DWORD EOTWarningZoneSize; <
5668 } <
5669 alias _TAPE_SET_DRIVE_PARAMETERS TAPE_SET_DRIVE_PARAMETERS; <
5670 alias _TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS; <
5671 <
5672 struct _TAPE_GET_MEDIA_PARAMETERS { <
5673 LARGE_INTEGER Capacity; <
5674 LARGE_INTEGER Remaining; <
5675 DWORD BlockSize; <
5676 DWORD PartitionCount; <
5677 BOOLEAN WriteProtected; <
5678 } <
5679 alias _TAPE_GET_MEDIA_PARAMETERS TAPE_GET_MEDIA_PARAMETERS; <
5680 alias _TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS; <
5681 <
5682 struct _TAPE_SET_MEDIA_PARAMETERS { <
5683 DWORD BlockSize; <
5684 } <
5685 alias _TAPE_SET_MEDIA_PARAMETERS TAPE_SET_MEDIA_PARAMETERS; <
5686 alias _TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS; <
5687 <
5688 enum : uint { TAPE_FIXED_PARTITIONS = 0 } <
5689 enum : uint { TAPE_SELECT_PARTITIONS = 1 } <
5690 enum : uint { TAPE_INITIATOR_PARTITIONS = 2 } <
5691 <
5692 struct _TAPE_CREATE_PARTITION { <
5693 DWORD Method; <
5694 DWORD Count; <
5695 DWORD Size; <
5696 } <
5697 alias _TAPE_CREATE_PARTITION TAPE_CREATE_PARTITION; <
5698 alias _TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION; <
5699 <
5700 enum : uint { TAPE_QUERY_DRIVE_PARAMETERS = 0 } <
5701 enum : uint { TAPE_QUERY_MEDIA_CAPACITY = 1 } <
5702 enum : uint { TAPE_CHECK_FOR_DRIVE_PROBLEM = 2 } <
5703 enum : uint { TAPE_QUERY_IO_ERROR_DATA = 3 } <
5704 enum : uint { TAPE_QUERY_DEVICE_ERROR_DATA = 4 } <
5705 <
5706 struct _TAPE_WMI_OPERATIONS { <
5707 DWORD Method; <
5708 DWORD DataBufferSize; <
5709 PVOID DataBuffer; <
5710 } <
5711 alias _TAPE_WMI_OPERATIONS TAPE_WMI_OPERATIONS; <
5712 alias _TAPE_WMI_OPERATIONS* PTAPE_WMI_OPERATIONS; <
5713 <
5714 alias int _TAPE_DRIVE_PROBLEM_TYPE; <
5715 enum { <
5716 TapeDriveProblemNone, <
5717 TapeDriveReadWriteWarning, <
5718 TapeDriveReadWriteError, <
5719 TapeDriveReadWarning, <
5720 TapeDriveWriteWarning, <
5721 TapeDriveReadError, <
5722 TapeDriveWriteError, <
5723 TapeDriveHardwareError, <
5724 TapeDriveUnsupportedMedia, <
5725 TapeDriveScsiConnectionError, <
5726 TapeDriveTimetoClean, <
5727 TapeDriveCleanDriveNow, <
5728 TapeDriveMediaLifeExpired, <
5729 TapeDriveSnappedTape, <
5730 } <
5731 alias _TAPE_DRIVE_PROBLEM_TYPE TAPE_DRIVE_PROBLEM_TYPE; <
5732 <
5733 // #if defined(_M_AMD64) && !defined(__midl) <
5734 <
5735 // ... <
5736 <
5737 // ... <
5738 <
5739 // ... <
5740 <
5741 // ... <
5742 <
5743 // ... <
5744 <
5745 // ... <
5746 <
5747 // #endif // _M_AMD64 && !defined(__midl) <
5748 <
5749 // #if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_E <
5750 enum : uint { ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1 } <
5751 enum : uint { ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION = 2 } <
5752 enum : uint { ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION = 3 } <
5753 enum : uint { ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION = 4 } <
5754 enum : uint { ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION = 5 } <
5755 enum : uint { ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION = 6 } <
5756 enum : uint { ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION = 7 } <
5757 enum : uint { ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE = 8 } <
5758 // #endif // winnt_only <
5759 <
5760 // #ifdef __cplusplus <
5761 // } <
5762 // #endif <
5763 <
5764 // #endif /* _WINNT_ */ <
5765 <