]>
Commit | Line | Data |
---|---|---|
1fd5e000 CF |
1 | #ifndef _WINNT_H |
2 | #define _WINNT_H | |
00314d7e | 3 | #if __GNUC__ >= 3 |
cf62424b DS |
4 | #pragma GCC system_header |
5 | #endif | |
6 | ||
1fd5e000 CF |
7 | /* translate GCC target defines to MS equivalents. Keep this synchronized |
8 | with windows.h. */ | |
9 | #if defined(__i686__) && !defined(_M_IX86) | |
10 | #define _M_IX86 600 | |
11 | #elif defined(__i586__) && !defined(_M_IX86) | |
12 | #define _M_IX86 500 | |
13 | #elif defined(__i486__) && !defined(_M_IX86) | |
14 | #define _M_IX86 400 | |
15 | #elif defined(__i386__) && !defined(_M_IX86) | |
16 | #define _M_IX86 300 | |
17 | #endif | |
18 | #if defined(_M_IX86) && !defined(_X86_) | |
19 | #define _X86_ | |
20 | #elif defined(_M_ALPHA) && !defined(_ALPHA_) | |
21 | #define _ALPHA_ | |
22 | #elif defined(_M_PPC) && !defined(_PPC_) | |
23 | #define _PPC_ | |
24 | #elif defined(_M_MRX000) && !defined(_MIPS_) | |
25 | #define _MIPS_ | |
26 | #elif defined(_M_M68K) && !defined(_68K_) | |
27 | #define _68K_ | |
28 | #endif | |
29 | ||
30 | #ifdef __cplusplus | |
31 | extern "C" { | |
32 | #endif | |
33 | ||
34 | #include <winerror.h> | |
35 | ||
36 | #ifndef RC_INVOKED | |
37 | #include <string.h> | |
38 | ||
39 | /* FIXME: add more architectures. Is there a way to specify this in GCC? */ | |
40 | #ifdef _X86_ | |
41 | #define UNALIGNED | |
42 | #else | |
43 | #define UNALIGNED | |
44 | #endif | |
45 | ||
46 | #ifndef VOID | |
47 | #define VOID void | |
de8e9cfb | 48 | #endif |
1fd5e000 CF |
49 | typedef char CHAR; |
50 | typedef short SHORT; | |
51 | typedef long LONG; | |
7c00c9bd | 52 | typedef char CCHAR, *PCCHAR; |
1fd5e000 CF |
53 | typedef unsigned char UCHAR,*PUCHAR; |
54 | typedef unsigned short USHORT,*PUSHORT; | |
55 | typedef unsigned long ULONG,*PULONG; | |
56 | typedef char *PSZ; | |
57 | ||
045d6a99 DS |
58 | typedef void *PVOID,*LPVOID; |
59 | ||
60 | /* FIXME for __WIN64 */ | |
61 | #ifndef __ptr64 | |
62 | #define __ptr64 | |
63 | #endif | |
64 | typedef void* __ptr64 PVOID64; | |
65 | ||
1fd5e000 CF |
66 | #ifndef _WCHAR_T_DEFINED |
67 | #define _WCHAR_T_DEFINED | |
68 | #ifndef _WCHAR_T_ | |
69 | #define _WCHAR_T_ | |
70 | #undef __need_wchar_t | |
71 | #ifndef __cplusplus | |
72 | typedef unsigned short wchar_t; | |
73 | #endif | |
74 | #endif | |
75 | #endif | |
76 | ||
77 | typedef wchar_t WCHAR; | |
78 | typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR; | |
79 | typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR; | |
80 | typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR; | |
81 | typedef CONST CHAR *LPCCH,*PCSTR,*LPCSTR; | |
82 | #ifndef _TCHAR_DEFINED | |
83 | #define _TCHAR_DEFINED | |
ea9bdf67 EB |
84 | #ifdef UNICODE |
85 | /* | |
86 | * NOTE: This tests UNICODE, which is different from the _UNICODE define | |
87 | * used to differentiate standard C runtime calls. | |
88 | */ | |
1fd5e000 | 89 | typedef WCHAR TCHAR; |
d554b253 | 90 | typedef WCHAR _TCHAR; |
1fd5e000 CF |
91 | #else |
92 | typedef CHAR TCHAR; | |
d554b253 | 93 | typedef CHAR _TCHAR; |
1fd5e000 CF |
94 | #endif |
95 | #endif | |
96 | typedef TCHAR TBYTE,*PTCH,*PTBYTE; | |
97 | typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR; | |
98 | typedef const TCHAR *LPCTSTR; | |
ea9bdf67 | 99 | #ifdef UNICODE |
7152ac2b EB |
100 | /* |
101 | * __TEXT is a private macro whose specific use is to force the expansion of a | |
ea9bdf67 | 102 | * macro passed as an argument to the macro TEXT. DO NOT use this |
7152ac2b EB |
103 | * macro within your programs. It's name and function could change without |
104 | * notice. | |
105 | */ | |
7152ac2b | 106 | #define __TEXT(q) L##q |
1fd5e000 | 107 | #else |
7152ac2b | 108 | #define __TEXT(q) q |
1fd5e000 | 109 | #endif |
7152ac2b | 110 | /* |
ea9bdf67 EB |
111 | * UNICODE a constant string when UNICODE is defined, else returns the string |
112 | * unmodified. | |
113 | * The corresponding macros _TEXT() and _T() for mapping _UNICODE strings | |
114 | * passed to C runtime functions are defined in mingw/tchar.h | |
7152ac2b | 115 | */ |
ea9bdf67 | 116 | #define TEXT(q) __TEXT(q) |
1fd5e000 CF |
117 | typedef SHORT *PSHORT; |
118 | typedef LONG *PLONG; | |
1fd5e000 | 119 | #ifdef STRICT |
57552a73 | 120 | typedef void *HANDLE; |
1fd5e000 CF |
121 | #define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n |
122 | #else | |
57552a73 | 123 | typedef PVOID HANDLE; |
1fd5e000 CF |
124 | #define DECLARE_HANDLE(n) typedef HANDLE n |
125 | #endif | |
a6674ee6 | 126 | typedef HANDLE *PHANDLE,*LPHANDLE; |
1fd5e000 CF |
127 | typedef DWORD LCID; |
128 | typedef PDWORD PLCID; | |
129 | typedef WORD LANGID; | |
130 | #ifdef __GNUC__ | |
adbc0b0a | 131 | #define _HAVE_INT64 |
1fd5e000 CF |
132 | #define _INTEGRAL_MAX_BITS 64 |
133 | #undef __int64 | |
134 | #define __int64 long long | |
6dfcb5a3 EB |
135 | #elif defined(__WATCOMC__) && (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64 ) |
136 | #define _HAVE_INT64 | |
137 | #endif /* __GNUC__/__WATCOMC */ | |
adbc0b0a | 138 | #if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64) |
1fd5e000 CF |
139 | typedef __int64 LONGLONG; |
140 | typedef unsigned __int64 DWORDLONG; | |
141 | #else | |
142 | typedef double LONGLONG,DWORDLONG; | |
143 | #endif | |
144 | typedef LONGLONG *PLONGLONG; | |
145 | typedef DWORDLONG *PDWORDLONG; | |
146 | typedef DWORDLONG ULONGLONG,*PULONGLONG; | |
147 | typedef LONGLONG USN; | |
adbc0b0a | 148 | #ifdef _HAVE_INT64 |
1fd5e000 CF |
149 | #define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b)) |
150 | #define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b)) | |
151 | #define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b)) | |
152 | #define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b)) | |
153 | #define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b)) | |
154 | #endif | |
155 | #define ANSI_NULL '\0' | |
156 | #define UNICODE_NULL L'\0' | |
157 | typedef BYTE BOOLEAN,*PBOOLEAN; | |
158 | #endif | |
7c00c9bd DS |
159 | typedef BYTE FCHAR; |
160 | typedef WORD FSHORT; | |
161 | typedef DWORD FLONG; | |
1fd5e000 CF |
162 | |
163 | #define NTAPI __stdcall | |
baf428f0 | 164 | #include <basetsd.h> |
8ff4b351 DP |
165 | #define ACE_OBJECT_TYPE_PRESENT 0x00000001 |
166 | #define ACE_INHERITED_OBJECT_TYPE_PRESENT 0x00000002 | |
1fd5e000 CF |
167 | #define APPLICATION_ERROR_MASK 0x20000000 |
168 | #define ERROR_SEVERITY_SUCCESS 0x00000000 | |
169 | #define ERROR_SEVERITY_INFORMATIONAL 0x40000000 | |
170 | #define ERROR_SEVERITY_WARNING 0x80000000 | |
171 | #define ERROR_SEVERITY_ERROR 0xC0000000 | |
1058b66e DS |
172 | /* also in ddk/ntifs.h */ |
173 | #define COMPRESSION_FORMAT_NONE (0x0000) | |
174 | #define COMPRESSION_FORMAT_DEFAULT (0x0001) | |
175 | #define COMPRESSION_FORMAT_LZNT1 (0x0002) | |
176 | #define COMPRESSION_ENGINE_STANDARD (0x0000) | |
177 | #define COMPRESSION_ENGINE_MAXIMUM (0x0100) | |
178 | #define COMPRESSION_ENGINE_HIBER (0x0200) | |
179 | #define ACCESS_ALLOWED_ACE_TYPE (0x0) | |
180 | #define ACCESS_DENIED_ACE_TYPE (0x1) | |
181 | #define SYSTEM_AUDIT_ACE_TYPE (0x2) | |
182 | #define SYSTEM_ALARM_ACE_TYPE (0x3) | |
183 | /*end ntifs.h */ | |
1fd5e000 | 184 | #define ANYSIZE_ARRAY 1 |
1fd5e000 CF |
185 | #define OBJECT_INHERIT_ACE 1 |
186 | #define CONTAINER_INHERIT_ACE 2 | |
187 | #define NO_PROPAGATE_INHERIT_ACE 4 | |
188 | #define INHERIT_ONLY_ACE 8 | |
189 | #define VALID_INHERIT_FLAGS 16 | |
190 | #define SUCCESSFUL_ACCESS_ACE_FLAG 64 | |
191 | #define FAILED_ACCESS_ACE_FLAG 128 | |
192 | #define DELETE 0x00010000L | |
193 | #define READ_CONTROL 0x20000L | |
194 | #define WRITE_DAC 0x40000L | |
195 | #define WRITE_OWNER 0x80000L | |
196 | #define SYNCHRONIZE 0x100000L | |
197 | #define STANDARD_RIGHTS_REQUIRED 0xF0000 | |
198 | #define STANDARD_RIGHTS_READ 0x20000 | |
199 | #define STANDARD_RIGHTS_WRITE 0x20000 | |
200 | #define STANDARD_RIGHTS_EXECUTE 0x20000 | |
201 | #define STANDARD_RIGHTS_ALL 0x1F0000 | |
202 | #define SPECIFIC_RIGHTS_ALL 0xFFFF | |
203 | #define ACCESS_SYSTEM_SECURITY 0x1000000 | |
00314d7e | 204 | |
1fd5e000 CF |
205 | #define MAXIMUM_ALLOWED 0x2000000 |
206 | #define GENERIC_READ 0x80000000 | |
207 | #define GENERIC_WRITE 0x40000000 | |
208 | #define GENERIC_EXECUTE 0x20000000 | |
209 | #define GENERIC_ALL 0x10000000 | |
00314d7e | 210 | |
334117a9 | 211 | #define INVALID_FILE_ATTRIBUTES ((DWORD)-1) |
1058b66e | 212 | |
00314d7e DS |
213 | /* Also in ddk/winddk.h */ |
214 | #define FILE_LIST_DIRECTORY 0x00000001 | |
215 | #define FILE_READ_DATA 0x00000001 | |
216 | #define FILE_ADD_FILE 0x00000002 | |
217 | #define FILE_WRITE_DATA 0x00000002 | |
218 | #define FILE_ADD_SUBDIRECTORY 0x00000004 | |
219 | #define FILE_APPEND_DATA 0x00000004 | |
220 | #define FILE_CREATE_PIPE_INSTANCE 0x00000004 | |
221 | #define FILE_READ_EA 0x00000008 | |
222 | #define FILE_READ_PROPERTIES 0x00000008 | |
223 | #define FILE_WRITE_EA 0x00000010 | |
224 | #define FILE_WRITE_PROPERTIES 0x00000010 | |
225 | #define FILE_EXECUTE 0x00000020 | |
226 | #define FILE_TRAVERSE 0x00000020 | |
227 | #define FILE_DELETE_CHILD 0x00000040 | |
228 | #define FILE_READ_ATTRIBUTES 0x00000080 | |
229 | #define FILE_WRITE_ATTRIBUTES 0x00000100 | |
851217a6 | 230 | |
00314d7e DS |
231 | #define FILE_SHARE_READ 0x00000001 |
232 | #define FILE_SHARE_WRITE 0x00000002 | |
233 | #define FILE_SHARE_DELETE 0x00000004 | |
234 | #define FILE_SHARE_VALID_FLAGS 0x00000007 | |
235 | ||
236 | #define FILE_ATTRIBUTE_READONLY 0x00000001 | |
237 | #define FILE_ATTRIBUTE_HIDDEN 0x00000002 | |
238 | #define FILE_ATTRIBUTE_SYSTEM 0x00000004 | |
239 | #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 | |
240 | #define FILE_ATTRIBUTE_ARCHIVE 0x00000020 | |
241 | #define FILE_ATTRIBUTE_DEVICE 0x00000040 | |
242 | #define FILE_ATTRIBUTE_NORMAL 0x00000080 | |
243 | #define FILE_ATTRIBUTE_TEMPORARY 0x00000100 | |
244 | #define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 | |
245 | #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 | |
246 | #define FILE_ATTRIBUTE_COMPRESSED 0x00000800 | |
247 | #define FILE_ATTRIBUTE_OFFLINE 0x00001000 | |
248 | #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 | |
249 | #define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 | |
250 | #define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7 | |
251 | #define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7 | |
252 | ||
253 | #define FILE_COPY_STRUCTURED_STORAGE 0x00000041 | |
254 | #define FILE_STRUCTURED_STORAGE 0x00000441 | |
255 | ||
256 | #define FILE_VALID_OPTION_FLAGS 0x00ffffff | |
257 | #define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032 | |
258 | #define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032 | |
259 | #define FILE_VALID_SET_FLAGS 0x00000036 | |
260 | ||
261 | #define FILE_SUPERSEDE 0x00000000 | |
262 | #define FILE_OPEN 0x00000001 | |
263 | #define FILE_CREATE 0x00000002 | |
264 | #define FILE_OPEN_IF 0x00000003 | |
265 | #define FILE_OVERWRITE 0x00000004 | |
266 | #define FILE_OVERWRITE_IF 0x00000005 | |
267 | #define FILE_MAXIMUM_DISPOSITION 0x00000005 | |
268 | ||
269 | #define FILE_DIRECTORY_FILE 0x00000001 | |
270 | #define FILE_WRITE_THROUGH 0x00000002 | |
271 | #define FILE_SEQUENTIAL_ONLY 0x00000004 | |
272 | #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 | |
273 | #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 | |
274 | #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 | |
275 | #define FILE_NON_DIRECTORY_FILE 0x00000040 | |
276 | #define FILE_CREATE_TREE_CONNECTION 0x00000080 | |
277 | #define FILE_COMPLETE_IF_OPLOCKED 0x00000100 | |
278 | #define FILE_NO_EA_KNOWLEDGE 0x00000200 | |
279 | #define FILE_OPEN_FOR_RECOVERY 0x00000400 | |
280 | #define FILE_RANDOM_ACCESS 0x00000800 | |
281 | #define FILE_DELETE_ON_CLOSE 0x00001000 | |
282 | #define FILE_OPEN_BY_FILE_ID 0x00002000 | |
283 | #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 | |
284 | #define FILE_NO_COMPRESSION 0x00008000 | |
285 | #define FILE_RESERVE_OPFILTER 0x00100000 | |
286 | #define FILE_OPEN_REPARSE_POINT 0x00200000 | |
287 | #define FILE_OPEN_NO_RECALL 0x00400000 | |
288 | #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 | |
289 | ||
290 | #define FILE_ALL_ACCESS \ | |
291 | (STANDARD_RIGHTS_REQUIRED | \ | |
292 | SYNCHRONIZE | \ | |
293 | 0x1FF) | |
294 | ||
295 | #define FILE_GENERIC_EXECUTE \ | |
296 | (STANDARD_RIGHTS_EXECUTE | \ | |
297 | FILE_READ_ATTRIBUTES | \ | |
298 | FILE_EXECUTE | \ | |
299 | SYNCHRONIZE) | |
300 | ||
301 | #define FILE_GENERIC_READ \ | |
302 | (STANDARD_RIGHTS_READ | \ | |
303 | FILE_READ_DATA | \ | |
304 | FILE_READ_ATTRIBUTES | \ | |
305 | FILE_READ_EA | \ | |
306 | SYNCHRONIZE) | |
307 | ||
308 | #define FILE_GENERIC_WRITE \ | |
309 | (STANDARD_RIGHTS_WRITE | \ | |
310 | FILE_WRITE_DATA | \ | |
311 | FILE_WRITE_ATTRIBUTES | \ | |
312 | FILE_WRITE_EA | \ | |
313 | FILE_APPEND_DATA | \ | |
314 | SYNCHRONIZE) | |
1058b66e DS |
315 | /* end winddk.h */ |
316 | /* also in ddk/ntifs.h */ | |
317 | #define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 | |
318 | #define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 | |
319 | #define FILE_NOTIFY_CHANGE_NAME 0x00000003 | |
320 | #define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 | |
321 | #define FILE_NOTIFY_CHANGE_SIZE 0x00000008 | |
322 | #define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 | |
323 | #define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 | |
324 | #define FILE_NOTIFY_CHANGE_CREATION 0x00000040 | |
325 | #define FILE_NOTIFY_CHANGE_EA 0x00000080 | |
326 | #define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 | |
327 | #define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200 | |
328 | #define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400 | |
329 | #define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800 | |
330 | #define FILE_NOTIFY_VALID_MASK 0x00000fff | |
00314d7e | 331 | |
1058b66e DS |
332 | #define FILE_CASE_SENSITIVE_SEARCH 0x00000001 |
333 | #define FILE_CASE_PRESERVED_NAMES 0x00000002 | |
334 | #define FILE_UNICODE_ON_DISK 0x00000004 | |
335 | #define FILE_PERSISTENT_ACLS 0x00000008 | |
336 | #define FILE_FILE_COMPRESSION 0x00000010 | |
337 | #define FILE_VOLUME_QUOTAS 0x00000020 | |
338 | #define FILE_SUPPORTS_SPARSE_FILES 0x00000040 | |
339 | #define FILE_SUPPORTS_REPARSE_POINTS 0x00000080 | |
340 | #define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 | |
341 | #define FS_LFN_APIS 0x00004000 | |
342 | #define FILE_VOLUME_IS_COMPRESSED 0x00008000 | |
343 | #define FILE_SUPPORTS_OBJECT_IDS 0x00010000 | |
344 | #define FILE_SUPPORTS_ENCRYPTION 0x00020000 | |
345 | #define FILE_NAMED_STREAMS 0x00040000 | |
346 | ||
347 | #define IO_COMPLETION_QUERY_STATE 0x0001 | |
348 | #define IO_COMPLETION_MODIFY_STATE 0x0002 | |
349 | #define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) | |
350 | /* end ntifs.h */ | |
351 | ||
352 | /* also in ddk/winddk.h */ | |
353 | #define DUPLICATE_CLOSE_SOURCE 0x00000001 | |
354 | #define DUPLICATE_SAME_ACCESS 0x00000002 | |
355 | #define DUPLICATE_SAME_ATTRIBUTES 0x00000004 | |
356 | /* end winddk.k */ | |
00314d7e | 357 | |
1fd5e000 CF |
358 | #define MAILSLOT_NO_MESSAGE ((DWORD)-1) |
359 | #define MAILSLOT_WAIT_FOREVER ((DWORD)-1) | |
1fd5e000 CF |
360 | #define PROCESS_TERMINATE 1 |
361 | #define PROCESS_CREATE_THREAD 2 | |
7c00c9bd | 362 | #define PROCESS_SET_SESSIONID 4 |
1fd5e000 CF |
363 | #define PROCESS_VM_OPERATION 8 |
364 | #define PROCESS_VM_READ 16 | |
365 | #define PROCESS_VM_WRITE 32 | |
366 | #define PROCESS_DUP_HANDLE 64 | |
367 | #define PROCESS_CREATE_PROCESS 128 | |
368 | #define PROCESS_SET_QUOTA 256 | |
369 | #define PROCESS_SET_INFORMATION 512 | |
370 | #define PROCESS_QUERY_INFORMATION 1024 | |
371 | #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xFFF) | |
372 | #define THREAD_TERMINATE 1 | |
373 | #define THREAD_SUSPEND_RESUME 2 | |
374 | #define THREAD_GET_CONTEXT 8 | |
375 | #define THREAD_SET_CONTEXT 16 | |
376 | #define THREAD_SET_INFORMATION 32 | |
377 | #define THREAD_QUERY_INFORMATION 64 | |
378 | #define THREAD_SET_THREAD_TOKEN 128 | |
379 | #define THREAD_IMPERSONATE 256 | |
380 | #define THREAD_DIRECT_IMPERSONATION 0x200 | |
381 | #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF) | |
e1377e38 DS |
382 | #define THREAD_BASE_PRIORITY_LOWRT 15 |
383 | #define THREAD_BASE_PRIORITY_MAX 2 | |
57552a73 EB |
384 | #define THREAD_BASE_PRIORITY_MIN (-2) |
385 | #define THREAD_BASE_PRIORITY_IDLE (-15) | |
1fd5e000 CF |
386 | #define EXCEPTION_NONCONTINUABLE 1 |
387 | #define EXCEPTION_MAXIMUM_PARAMETERS 15 | |
e1377e38 DS |
388 | #define MUTANT_QUERY_STATE 0x0001 |
389 | #define MUTANT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|MUTANT_QUERY_STATE) | |
e1377e38 DS |
390 | #define TIMER_QUERY_STATE 0x0001 |
391 | #define TIMER_MODIFY_STATE 0x0002 | |
392 | #define TIMER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|TIMER_QUERY_STATE|TIMER_MODIFY_STATE) | |
4d1fdcb6 RC |
393 | /* |
394 | * To prevent gcc compiler warnings, bracket these defines when initialising | |
395 | * a SID_IDENTIFIER_AUTHORITY, eg. | |
396 | * SID_IDENTIFIER_AUTHORITY aNullSidAuthority = {SECURITY_NULL_SID_AUTHORITY}; | |
397 | */ | |
29c63d06 RC |
398 | #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} |
399 | #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} | |
400 | #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} | |
401 | #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} | |
402 | #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} | |
403 | #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} | |
1fd5e000 | 404 | #define SECURITY_NULL_RID 0 |
1058b66e | 405 | #define SECURITY_WORLD_RID (0x00000000L) |
1fd5e000 CF |
406 | #define SECURITY_LOCAL_RID 0 |
407 | #define SECURITY_CREATOR_OWNER_RID 0 | |
408 | #define SECURITY_CREATOR_GROUP_RID 1 | |
409 | #define SECURITY_DIALUP_RID 1 | |
410 | #define SECURITY_NETWORK_RID 2 | |
411 | #define SECURITY_BATCH_RID 3 | |
412 | #define SECURITY_INTERACTIVE_RID 4 | |
413 | #define SECURITY_LOGON_IDS_RID 5 | |
414 | #define SECURITY_SERVICE_RID 6 | |
415 | #define SECURITY_LOCAL_SYSTEM_RID 18 | |
416 | #define SECURITY_BUILTIN_DOMAIN_RID 32 | |
417 | #define SECURITY_PRINCIPAL_SELF_RID 10 | |
7c00c9bd DS |
418 | #define SECURITY_CREATOR_OWNER_SERVER_RID 0x2 |
419 | #define SECURITY_CREATOR_GROUP_SERVER_RID 0x3 | |
420 | #define SECURITY_LOGON_IDS_RID_COUNT 0x3 | |
421 | #define SECURITY_ANONYMOUS_LOGON_RID 0x7 | |
422 | #define SECURITY_PROXY_RID 0x8 | |
423 | #define SECURITY_ENTERPRISE_CONTROLLERS_RID 0x9 | |
424 | #define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID | |
425 | #define SECURITY_AUTHENTICATED_USER_RID 0xB | |
426 | #define SECURITY_RESTRICTED_CODE_RID 0xC | |
427 | #define SECURITY_NT_NON_UNIQUE_RID 0x15 | |
67997034 | 428 | #define SID_REVISION 1 |
1fd5e000 CF |
429 | #define DOMAIN_USER_RID_ADMIN 0x1F4L |
430 | #define DOMAIN_USER_RID_GUEST 0x1F5L | |
431 | #define DOMAIN_GROUP_RID_ADMINS 0x200L | |
432 | #define DOMAIN_GROUP_RID_USERS 0x201L | |
433 | #define DOMAIN_ALIAS_RID_ADMINS 0x220L | |
434 | #define DOMAIN_ALIAS_RID_USERS 0x221L | |
435 | #define DOMAIN_ALIAS_RID_GUESTS 0x222L | |
436 | #define DOMAIN_ALIAS_RID_POWER_USERS 0x223L | |
437 | #define DOMAIN_ALIAS_RID_ACCOUNT_OPS 0x224L | |
438 | #define DOMAIN_ALIAS_RID_SYSTEM_OPS 0x225L | |
439 | #define DOMAIN_ALIAS_RID_PRINT_OPS 0x226L | |
440 | #define DOMAIN_ALIAS_RID_BACKUP_OPS 0x227L | |
441 | #define DOMAIN_ALIAS_RID_REPLICATOR 0x228L | |
ea9bdf67 EB |
442 | #define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege") |
443 | #define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege") | |
444 | #define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege") | |
445 | #define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege") | |
446 | #define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege") | |
447 | #define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege") | |
448 | #define SE_TCB_NAME TEXT("SeTcbPrivilege") | |
449 | #define SE_SECURITY_NAME TEXT("SeSecurityPrivilege") | |
450 | #define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege") | |
451 | #define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege") | |
452 | #define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege") | |
453 | #define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege") | |
454 | #define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege") | |
455 | #define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege") | |
456 | #define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege") | |
457 | #define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege") | |
458 | #define SE_BACKUP_NAME TEXT("SeBackupPrivilege") | |
459 | #define SE_RESTORE_NAME TEXT("SeRestorePrivilege") | |
460 | #define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege") | |
461 | #define SE_DEBUG_NAME TEXT("SeDebugPrivilege") | |
462 | #define SE_AUDIT_NAME TEXT("SeAuditPrivilege") | |
463 | #define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege") | |
464 | #define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege") | |
465 | #define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege") | |
0c7a57eb | 466 | #define SE_CREATE_GLOBAL_NAME TEXT("SeCreateGlobalPrivilege") |
631af2e6 CV |
467 | #define SE_GROUP_MANDATORY 1 |
468 | #define SE_GROUP_ENABLED_BY_DEFAULT 2 | |
469 | #define SE_GROUP_ENABLED 4 | |
470 | #define SE_GROUP_OWNER 8 | |
471 | #define SE_GROUP_USE_FOR_DENY_ONLY 16 | |
f6b52c79 | 472 | #define SE_GROUP_LOGON_ID 3221225472U |
631af2e6 | 473 | #define SE_GROUP_RESOURCE 536870912 |
df031c83 CF |
474 | #define LANG_NEUTRAL 0x00 |
475 | #define LANG_ARABIC 0x01 | |
476 | #define LANG_BULGARIAN 0x02 | |
477 | #define LANG_CATALAN 0x03 | |
478 | #define LANG_CHINESE 0x04 | |
479 | #define LANG_CZECH 0x05 | |
480 | #define LANG_DANISH 0x06 | |
481 | #define LANG_GERMAN 0x07 | |
482 | #define LANG_GREEK 0x08 | |
483 | #define LANG_ENGLISH 0x09 | |
484 | #define LANG_SPANISH 0x0a | |
485 | #define LANG_FINNISH 0x0b | |
486 | #define LANG_FRENCH 0x0c | |
487 | #define LANG_HEBREW 0x0d | |
488 | #define LANG_HUNGARIAN 0x0e | |
489 | #define LANG_ICELANDIC 0x0f | |
490 | #define LANG_ITALIAN 0x10 | |
491 | #define LANG_JAPANESE 0x11 | |
492 | #define LANG_KOREAN 0x12 | |
493 | #define LANG_DUTCH 0x13 | |
494 | #define LANG_NORWEGIAN 0x14 | |
495 | #define LANG_POLISH 0x15 | |
496 | #define LANG_PORTUGUESE 0x16 | |
497 | #define LANG_ROMANIAN 0x18 | |
498 | #define LANG_RUSSIAN 0x19 | |
499 | #define LANG_CROATIAN 0x1a | |
500 | #define LANG_SERBIAN 0x1a | |
501 | #define LANG_SLOVAK 0x1b | |
502 | #define LANG_ALBANIAN 0x1c | |
503 | #define LANG_SWEDISH 0x1d | |
504 | #define LANG_THAI 0x1e | |
505 | #define LANG_TURKISH 0x1f | |
506 | #define LANG_URDU 0x20 | |
507 | #define LANG_INDONESIAN 0x21 | |
508 | #define LANG_UKRAINIAN 0x22 | |
509 | #define LANG_BELARUSIAN 0x23 | |
510 | #define LANG_SLOVENIAN 0x24 | |
511 | #define LANG_ESTONIAN 0x25 | |
512 | #define LANG_LATVIAN 0x26 | |
513 | #define LANG_LITHUANIAN 0x27 | |
514 | #define LANG_FARSI 0x29 | |
515 | #define LANG_VIETNAMESE 0x2a | |
516 | #define LANG_ARMENIAN 0x2b | |
517 | #define LANG_AZERI 0x2c | |
518 | #define LANG_BASQUE 0x2d | |
519 | #define LANG_MACEDONIAN 0x2f | |
520 | #define LANG_AFRIKAANS 0x36 | |
521 | #define LANG_GEORGIAN 0x37 | |
522 | #define LANG_FAEROESE 0x38 | |
523 | #define LANG_HINDI 0x39 | |
524 | #define LANG_MALAY 0x3e | |
525 | #define LANG_KAZAK 0x3f | |
971a485f | 526 | #define LANG_KYRGYZ 0x40 |
df031c83 CF |
527 | #define LANG_SWAHILI 0x41 |
528 | #define LANG_UZBEK 0x43 | |
529 | #define LANG_TATAR 0x44 | |
530 | #define LANG_BENGALI 0x45 | |
531 | #define LANG_PUNJABI 0x46 | |
532 | #define LANG_GUJARATI 0x47 | |
533 | #define LANG_ORIYA 0x48 | |
534 | #define LANG_TAMIL 0x49 | |
535 | #define LANG_TELUGU 0x4a | |
536 | #define LANG_KANNADA 0x4b | |
537 | #define LANG_MALAYALAM 0x4c | |
538 | #define LANG_ASSAMESE 0x4d | |
539 | #define LANG_MARATHI 0x4e | |
540 | #define LANG_SANSKRIT 0x4f | |
971a485f DP |
541 | #define LANG_MONGOLIAN 0x50 |
542 | #define LANG_GALICIAN 0x56 | |
df031c83 CF |
543 | #define LANG_KONKANI 0x57 |
544 | #define LANG_MANIPURI 0x58 | |
545 | #define LANG_SINDHI 0x59 | |
971a485f | 546 | #define LANG_SYRIAC 0x5a |
df031c83 CF |
547 | #define LANG_KASHMIRI 0x60 |
548 | #define LANG_NEPALI 0x61 | |
971a485f DP |
549 | #define LANG_DIVEHI 0x65 |
550 | #define LANG_INVARIANT 0x7f | |
df031c83 CF |
551 | #define SUBLANG_NEUTRAL 0x00 |
552 | #define SUBLANG_DEFAULT 0x01 | |
553 | #define SUBLANG_SYS_DEFAULT 0x02 | |
554 | #define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 | |
555 | #define SUBLANG_ARABIC_IRAQ 0x02 | |
556 | #define SUBLANG_ARABIC_EGYPT 0x03 | |
557 | #define SUBLANG_ARABIC_LIBYA 0x04 | |
558 | #define SUBLANG_ARABIC_ALGERIA 0x05 | |
559 | #define SUBLANG_ARABIC_MOROCCO 0x06 | |
560 | #define SUBLANG_ARABIC_TUNISIA 0x07 | |
561 | #define SUBLANG_ARABIC_OMAN 0x08 | |
562 | #define SUBLANG_ARABIC_YEMEN 0x09 | |
563 | #define SUBLANG_ARABIC_SYRIA 0x0a | |
564 | #define SUBLANG_ARABIC_JORDAN 0x0b | |
565 | #define SUBLANG_ARABIC_LEBANON 0x0c | |
566 | #define SUBLANG_ARABIC_KUWAIT 0x0d | |
567 | #define SUBLANG_ARABIC_UAE 0x0e | |
568 | #define SUBLANG_ARABIC_BAHRAIN 0x0f | |
569 | #define SUBLANG_ARABIC_QATAR 0x10 | |
971a485f DP |
570 | #define SUBLANG_AZERI_LATIN 0x01 |
571 | #define SUBLANG_AZERI_CYRILLIC 0x02 | |
df031c83 CF |
572 | #define SUBLANG_CHINESE_TRADITIONAL 0x01 |
573 | #define SUBLANG_CHINESE_SIMPLIFIED 0x02 | |
574 | #define SUBLANG_CHINESE_HONGKONG 0x03 | |
575 | #define SUBLANG_CHINESE_SINGAPORE 0x04 | |
576 | #define SUBLANG_CHINESE_MACAU 0x05 | |
577 | #define SUBLANG_DUTCH 0x01 | |
578 | #define SUBLANG_DUTCH_BELGIAN 0x02 | |
579 | #define SUBLANG_ENGLISH_US 0x01 | |
580 | #define SUBLANG_ENGLISH_UK 0x02 | |
581 | #define SUBLANG_ENGLISH_AUS 0x03 | |
582 | #define SUBLANG_ENGLISH_CAN 0x04 | |
583 | #define SUBLANG_ENGLISH_NZ 0x05 | |
584 | #define SUBLANG_ENGLISH_EIRE 0x06 | |
585 | #define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 | |
586 | #define SUBLANG_ENGLISH_JAMAICA 0x08 | |
587 | #define SUBLANG_ENGLISH_CARIBBEAN 0x09 | |
588 | #define SUBLANG_ENGLISH_BELIZE 0x0a | |
589 | #define SUBLANG_ENGLISH_TRINIDAD 0x0b | |
971a485f DP |
590 | #define SUBLANG_ENGLISH_ZIMBABWE 0x0c |
591 | #define SUBLANG_ENGLISH_PHILIPPINES 0x0d | |
df031c83 CF |
592 | #define SUBLANG_FRENCH 0x01 |
593 | #define SUBLANG_FRENCH_BELGIAN 0x02 | |
594 | #define SUBLANG_FRENCH_CANADIAN 0x03 | |
595 | #define SUBLANG_FRENCH_SWISS 0x04 | |
596 | #define SUBLANG_FRENCH_LUXEMBOURG 0x05 | |
597 | #define SUBLANG_FRENCH_MONACO 0x06 | |
598 | #define SUBLANG_GERMAN 0x01 | |
599 | #define SUBLANG_GERMAN_SWISS 0x02 | |
600 | #define SUBLANG_GERMAN_AUSTRIAN 0x03 | |
601 | #define SUBLANG_GERMAN_LUXEMBOURG 0x04 | |
602 | #define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 | |
603 | #define SUBLANG_ITALIAN 0x01 | |
604 | #define SUBLANG_ITALIAN_SWISS 0x02 | |
605 | #define SUBLANG_KASHMIRI_INDIA 0x02 | |
971a485f | 606 | #define SUBLANG_KASHMIRI_SASIA 0x02 |
df031c83 CF |
607 | #define SUBLANG_KOREAN 0x01 |
608 | #define SUBLANG_LITHUANIAN 0x01 | |
609 | #define SUBLANG_MALAY_MALAYSIA 0x01 | |
610 | #define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 | |
611 | #define SUBLANG_NEPALI_INDIA 0x02 | |
612 | #define SUBLANG_NORWEGIAN_BOKMAL 0x01 | |
613 | #define SUBLANG_NORWEGIAN_NYNORSK 0x02 | |
614 | #define SUBLANG_PORTUGUESE 0x01 | |
615 | #define SUBLANG_PORTUGUESE_BRAZILIAN 0x02 | |
616 | #define SUBLANG_SERBIAN_LATIN 0x02 | |
617 | #define SUBLANG_SERBIAN_CYRILLIC 0x03 | |
618 | #define SUBLANG_SPANISH 0x01 | |
619 | #define SUBLANG_SPANISH_MEXICAN 0x02 | |
620 | #define SUBLANG_SPANISH_MODERN 0x03 | |
621 | #define SUBLANG_SPANISH_GUATEMALA 0x04 | |
622 | #define SUBLANG_SPANISH_COSTA_RICA 0x05 | |
623 | #define SUBLANG_SPANISH_PANAMA 0x06 | |
624 | #define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 | |
625 | #define SUBLANG_SPANISH_VENEZUELA 0x08 | |
626 | #define SUBLANG_SPANISH_COLOMBIA 0x09 | |
627 | #define SUBLANG_SPANISH_PERU 0x0a | |
628 | #define SUBLANG_SPANISH_ARGENTINA 0x0b | |
629 | #define SUBLANG_SPANISH_ECUADOR 0x0c | |
630 | #define SUBLANG_SPANISH_CHILE 0x0d | |
631 | #define SUBLANG_SPANISH_URUGUAY 0x0e | |
632 | #define SUBLANG_SPANISH_PARAGUAY 0x0f | |
633 | #define SUBLANG_SPANISH_BOLIVIA 0x10 | |
634 | #define SUBLANG_SPANISH_EL_SALVADOR 0x11 | |
635 | #define SUBLANG_SPANISH_HONDURAS 0x12 | |
636 | #define SUBLANG_SPANISH_NICARAGUA 0x13 | |
637 | #define SUBLANG_SPANISH_PUERTO_RICO 0x14 | |
638 | #define SUBLANG_SWEDISH 0x01 | |
639 | #define SUBLANG_SWEDISH_FINLAND 0x02 | |
640 | #define SUBLANG_URDU_PAKISTAN 0x01 | |
641 | #define SUBLANG_URDU_INDIA 0x02 | |
642 | #define SUBLANG_UZBEK_LATIN 0x01 | |
643 | #define SUBLANG_UZBEK_CYRILLIC 0x02 | |
1fd5e000 CF |
644 | #define NLS_VALID_LOCALE_MASK 1048575 |
645 | #define SORT_DEFAULT 0 | |
646 | #define SORT_JAPANESE_XJIS 0 | |
647 | #define SORT_JAPANESE_UNICODE 1 | |
648 | #define SORT_CHINESE_BIG5 0 | |
df031c83 | 649 | #define SORT_CHINESE_PRCP 0 |
1fd5e000 | 650 | #define SORT_CHINESE_UNICODE 1 |
df031c83 CF |
651 | #define SORT_CHINESE_PRC 2 |
652 | #define SORT_CHINESE_BOPOMOFO 3 | |
1fd5e000 CF |
653 | #define SORT_KOREAN_KSC 0 |
654 | #define SORT_KOREAN_UNICODE 1 | |
df031c83 CF |
655 | #define SORT_GERMAN_PHONE_BOOK 1 |
656 | #define SORT_HUNGARIAN_DEFAULT 0 | |
657 | #define SORT_HUNGARIAN_TECHNICAL 1 | |
658 | #define SORT_GEORGIAN_TRADITIONAL 0 | |
659 | #define SORT_GEORGIAN_MODERN 1 | |
1fd5e000 CF |
660 | #define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p)) |
661 | #define MAKELCID(l,s) ((DWORD)((((DWORD)((WORD)(s)))<<16)|((DWORD)((WORD)(l))))) | |
662 | #define PRIMARYLANGID(l) ((WORD)(l)&0x3ff) | |
663 | #define SORTIDFROMLCID(l) ((WORD)((((DWORD)(l))&NLS_VALID_LOCALE_MASK)>>16)) | |
664 | #define SORTVERSIONFROMLCID(l) ((WORD)((((DWORD)(l))>>20)&0xf)) | |
665 | #define SUBLANGID(l) ((WORD)(l)>>10) | |
666 | #define LANGIDFROMLCID(l) ((WORD)(l)) | |
667 | #define LANG_SYSTEM_DEFAULT MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT) | |
668 | #define LANG_USER_DEFAULT MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT) | |
669 | #define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT) | |
670 | #define ACL_REVISION 2 | |
671 | #define ACL_REVISION_DS 4 | |
672 | #define ACL_REVISION1 1 | |
673 | #define ACL_REVISION2 2 | |
674 | #define ACL_REVISION3 3 | |
675 | #define ACL_REVISION4 4 | |
676 | #define MIN_ACL_REVISION 2 | |
677 | #define MAX_ACL_REVISION 4 | |
678 | #define MINCHAR 0x80 | |
679 | #define MAXCHAR 0x7f | |
680 | #define MINSHORT 0x8000 | |
681 | #define MAXSHORT 0x7fff | |
682 | #define MINLONG 0x80000000 | |
683 | #define MAXLONG 0x7fffffff | |
684 | #define MAXBYTE 0xff | |
685 | #define MAXWORD 0xffff | |
686 | #define MAXDWORD 0xffffffff | |
687 | #define PROCESSOR_INTEL_386 386 | |
688 | #define PROCESSOR_INTEL_486 486 | |
689 | #define PROCESSOR_INTEL_PENTIUM 586 | |
690 | #define PROCESSOR_MIPS_R4000 4000 | |
691 | #define PROCESSOR_ALPHA_21064 21064 | |
045d6a99 DS |
692 | #define PROCESSOR_INTEL_IA64 2200 |
693 | ||
1fd5e000 CF |
694 | #define PROCESSOR_ARCHITECTURE_INTEL 0 |
695 | #define PROCESSOR_ARCHITECTURE_MIPS 1 | |
696 | #define PROCESSOR_ARCHITECTURE_ALPHA 2 | |
697 | #define PROCESSOR_ARCHITECTURE_PPC 3 | |
045d6a99 DS |
698 | #define PROCESSOR_ARCHITECTURE_SHX 4 |
699 | #define PROCESSOR_ARCHITECTURE_ARM 5 | |
700 | #define PROCESSOR_ARCHITECTURE_IA64 6 | |
701 | #define PROCESSOR_ARCHITECTURE_ALPHA64 7 | |
7ed02aab LD |
702 | #define PROCESSOR_ARCHITECTURE_MSIL 8 |
703 | #define PROCESSOR_ARCHITECTURE_AMD64 9 | |
704 | #define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10 | |
1fd5e000 | 705 | #define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF |
44506780 EB |
706 | #define PF_FLOATING_POINT_PRECISION_ERRATA 0 |
707 | #define PF_FLOATING_POINT_EMULATED 1 | |
708 | #define PF_COMPARE_EXCHANGE_DOUBLE 2 | |
709 | #define PF_MMX_INSTRUCTIONS_AVAILABLE 3 | |
710 | #define PF_PPC_MOVEMEM_64BIT_OK 4 | |
711 | #define PF_ALPHA_BYTE_INSTRUCTIONS 5 | |
712 | #define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 | |
713 | #define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7 | |
019f46a6 EB |
714 | #define PF_RDTSC_INSTRUCTION_AVAILABLE 8 |
715 | #define PF_PAE_ENABLED 9 | |
3332e57f | 716 | #define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 |
1058b66e DS |
717 | /* also in ddk/ntifs.h */ |
718 | #define FILE_ACTION_ADDED 0x00000001 | |
719 | #define FILE_ACTION_REMOVED 0x00000002 | |
720 | #define FILE_ACTION_MODIFIED 0x00000003 | |
721 | #define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 | |
722 | #define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 | |
723 | #define FILE_ACTION_ADDED_STREAM 0x00000006 | |
724 | #define FILE_ACTION_REMOVED_STREAM 0x00000007 | |
725 | #define FILE_ACTION_MODIFIED_STREAM 0x00000008 | |
726 | #define FILE_ACTION_REMOVED_BY_DELETE 0x00000009 | |
727 | #define FILE_ACTION_ID_NOT_TUNNELLED 0x0000000A | |
728 | #define FILE_ACTION_TUNNELLED_ID_COLLISION 0x0000000B | |
729 | /* end ntifs.h */ | |
1fd5e000 CF |
730 | #define HEAP_NO_SERIALIZE 1 |
731 | #define HEAP_GROWABLE 2 | |
732 | #define HEAP_GENERATE_EXCEPTIONS 4 | |
733 | #define HEAP_ZERO_MEMORY 8 | |
734 | #define HEAP_REALLOC_IN_PLACE_ONLY 16 | |
735 | #define HEAP_TAIL_CHECKING_ENABLED 32 | |
736 | #define HEAP_FREE_CHECKING_ENABLED 64 | |
737 | #define HEAP_DISABLE_COALESCE_ON_FREE 128 | |
738 | #define HEAP_CREATE_ALIGN_16 0x0000 | |
739 | #define HEAP_CREATE_ENABLE_TRACING 0x20000 | |
740 | #define HEAP_MAXIMUM_TAG 0xFFF | |
741 | #define HEAP_PSEUDO_TAG_FLAG 0x8000 | |
742 | #define HEAP_TAG_SHIFT 16 | |
743 | #define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16))) | |
744 | #define KEY_QUERY_VALUE 1 | |
745 | #define KEY_SET_VALUE 2 | |
746 | #define KEY_CREATE_SUB_KEY 4 | |
747 | #define KEY_ENUMERATE_SUB_KEYS 8 | |
748 | #define KEY_NOTIFY 16 | |
749 | #define KEY_CREATE_LINK 32 | |
750 | #define KEY_WRITE 0x20006 | |
751 | #define KEY_EXECUTE 0x20019 | |
752 | #define KEY_READ 0x20019 | |
753 | #define KEY_ALL_ACCESS 0xf003f | |
754 | #define REG_WHOLE_HIVE_VOLATILE 1 | |
755 | #define REG_REFRESH_HIVE 2 | |
756 | #define REG_NO_LAZY_FLUSH 4 | |
757 | #define REG_OPTION_RESERVED 0 | |
758 | #define REG_OPTION_NON_VOLATILE 0 | |
759 | #define REG_OPTION_VOLATILE 1 | |
760 | #define REG_OPTION_CREATE_LINK 2 | |
761 | #define REG_OPTION_BACKUP_RESTORE 4 | |
762 | #define REG_OPTION_OPEN_LINK 8 | |
763 | #define REG_LEGAL_OPTION 15 | |
764 | #define OWNER_SECURITY_INFORMATION 1 | |
765 | #define GROUP_SECURITY_INFORMATION 2 | |
766 | #define DACL_SECURITY_INFORMATION 4 | |
767 | #define SACL_SECURITY_INFORMATION 8 | |
768 | #define MAXIMUM_PROCESSORS 32 | |
3ad60fc8 DS |
769 | #define PAGE_NOACCESS 0x0001 |
770 | #define PAGE_READONLY 0x0002 | |
771 | #define PAGE_READWRITE 0x0004 | |
772 | #define PAGE_WRITECOPY 0x0008 | |
773 | #define PAGE_EXECUTE 0x0010 | |
774 | #define PAGE_EXECUTE_READ 0x0020 | |
775 | #define PAGE_EXECUTE_READWRITE 0x0040 | |
776 | #define PAGE_EXECUTE_WRITECOPY 0x0080 | |
777 | #define PAGE_GUARD 0x0100 | |
778 | #define PAGE_NOCACHE 0x0200 | |
186f78be RC |
779 | #define MEM_COMMIT 0x1000 |
780 | #define MEM_RESERVE 0x2000 | |
781 | #define MEM_DECOMMIT 0x4000 | |
782 | #define MEM_RELEASE 0x8000 | |
783 | #define MEM_FREE 0x10000 | |
784 | #define MEM_PRIVATE 0x20000 | |
785 | #define MEM_MAPPED 0x40000 | |
786 | #define MEM_RESET 0x80000 | |
787 | #define MEM_TOP_DOWN 0x100000 | |
d4b5d8fd EB |
788 | #define MEM_WRITE_WATCH 0x200000 /* 98/Me */ |
789 | #define MEM_PHYSICAL 0x400000 | |
186f78be | 790 | #define MEM_4MB_PAGES 0x80000000 |
1058b66e DS |
791 | /* also in ddk/ntifs.h */ |
792 | #define MEM_IMAGE SEC_IMAGE | |
793 | #define SEC_BASED 0x00200000 | |
794 | #define SEC_NO_CHANGE 0x00400000 | |
795 | #define SEC_FILE 0x00800000 | |
796 | #define SEC_IMAGE 0x01000000 | |
797 | #define SEC_VLM 0x02000000 | |
798 | #define SEC_RESERVE 0x04000000 | |
799 | #define SEC_COMMIT 0x08000000 | |
800 | #define SEC_NOCACHE 0x10000000 | |
801 | /* end ntifs.h */ | |
1fd5e000 CF |
802 | #define SECTION_EXTEND_SIZE 16 |
803 | #define SECTION_MAP_READ 4 | |
804 | #define SECTION_MAP_WRITE 2 | |
805 | #define SECTION_QUERY 1 | |
7c00c9bd | 806 | #define SECTION_MAP_EXECUTE 8 |
1fd5e000 CF |
807 | #define SECTION_ALL_ACCESS 0xf001f |
808 | #define MESSAGE_RESOURCE_UNICODE 1 | |
809 | #define RTL_CRITSECT_TYPE 0 | |
810 | #define RTL_RESOURCE_TYPE 1 | |
29598fc7 | 811 | /* Also in winddk.h */ |
1fd5e000 | 812 | #define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f)) |
29598fc7 DS |
813 | #ifndef CONTAINING_RECORD |
814 | #define CONTAINING_RECORD(address, type, field) \ | |
815 | ((type*)((PCHAR)(address) - (PCHAR)(&((type *)0)->field))) | |
816 | #endif | |
817 | /* end winddk.h */ | |
1fd5e000 CF |
818 | #define IMAGE_SIZEOF_FILE_HEADER 20 |
819 | #define IMAGE_FILE_RELOCS_STRIPPED 1 | |
820 | #define IMAGE_FILE_EXECUTABLE_IMAGE 2 | |
821 | #define IMAGE_FILE_LINE_NUMS_STRIPPED 4 | |
822 | #define IMAGE_FILE_LOCAL_SYMS_STRIPPED 8 | |
c3e82721 DS |
823 | #define IMAGE_FILE_AGGRESIVE_WS_TRIM 16 |
824 | #define IMAGE_FILE_LARGE_ADDRESS_AWARE 32 | |
1fd5e000 CF |
825 | #define IMAGE_FILE_BYTES_REVERSED_LO 128 |
826 | #define IMAGE_FILE_32BIT_MACHINE 256 | |
827 | #define IMAGE_FILE_DEBUG_STRIPPED 512 | |
828 | #define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 1024 | |
829 | #define IMAGE_FILE_NET_RUN_FROM_SWAP 2048 | |
830 | #define IMAGE_FILE_SYSTEM 4096 | |
831 | #define IMAGE_FILE_DLL 8192 | |
832 | #define IMAGE_FILE_UP_SYSTEM_ONLY 16384 | |
833 | #define IMAGE_FILE_BYTES_REVERSED_HI 32768 | |
834 | #define IMAGE_FILE_MACHINE_UNKNOWN 0 | |
835 | #define IMAGE_FILE_MACHINE_I386 332 | |
836 | #define IMAGE_FILE_MACHINE_R3000 354 | |
837 | #define IMAGE_FILE_MACHINE_R4000 358 | |
838 | #define IMAGE_FILE_MACHINE_R10000 360 | |
839 | #define IMAGE_FILE_MACHINE_ALPHA 388 | |
840 | #define IMAGE_FILE_MACHINE_POWERPC 496 | |
841 | #define IMAGE_DOS_SIGNATURE 0x5A4D | |
842 | #define IMAGE_OS2_SIGNATURE 0x454E | |
843 | #define IMAGE_OS2_SIGNATURE_LE 0x454C | |
844 | #define IMAGE_VXD_SIGNATURE 0x454C | |
845 | #define IMAGE_NT_SIGNATURE 0x00004550 | |
846 | #define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b | |
847 | #define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 | |
848 | #define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944 | |
849 | #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 | |
850 | #define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56 | |
851 | #define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28 | |
852 | #define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224 | |
853 | #define IMAGE_SIZEOF_SHORT_NAME 8 | |
854 | #define IMAGE_SIZEOF_SECTION_HEADER 40 | |
855 | #define IMAGE_SIZEOF_SYMBOL 18 | |
856 | #define IMAGE_SIZEOF_AUX_SYMBOL 18 | |
857 | #define IMAGE_SIZEOF_RELOCATION 10 | |
858 | #define IMAGE_SIZEOF_BASE_RELOCATION 8 | |
859 | #define IMAGE_SIZEOF_LINENUMBER 6 | |
860 | #define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 | |
861 | #define SIZEOF_RFPO_DATA 16 | |
862 | #define IMAGE_SUBSYSTEM_UNKNOWN 0 | |
863 | #define IMAGE_SUBSYSTEM_NATIVE 1 | |
864 | #define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 | |
865 | #define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 | |
866 | #define IMAGE_SUBSYSTEM_OS2_CUI 5 | |
867 | #define IMAGE_SUBSYSTEM_POSIX_CUI 7 | |
9e80cb96 | 868 | #define IMAGE_SUBSYSTEM_XBOX 14 |
1fd5e000 CF |
869 | #define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((DWORD)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader)) |
870 | #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 | |
871 | #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 | |
872 | #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 | |
873 | #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 | |
874 | #define IMAGE_DIRECTORY_ENTRY_SECURITY 4 | |
875 | #define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 | |
876 | #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 | |
877 | #define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 | |
878 | #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 | |
879 | #define IMAGE_DIRECTORY_ENTRY_TLS 9 | |
880 | #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 | |
881 | #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 | |
882 | #define IMAGE_DIRECTORY_ENTRY_IAT 12 | |
883 | #define IMAGE_SCN_TYPE_NO_PAD 8 | |
884 | #define IMAGE_SCN_CNT_CODE 32 | |
885 | #define IMAGE_SCN_CNT_INITIALIZED_DATA 64 | |
886 | #define IMAGE_SCN_CNT_UNINITIALIZED_DATA 128 | |
887 | #define IMAGE_SCN_LNK_OTHER 256 | |
888 | #define IMAGE_SCN_LNK_INFO 512 | |
889 | #define IMAGE_SCN_LNK_REMOVE 2048 | |
890 | #define IMAGE_SCN_LNK_COMDAT 4096 | |
891 | #define IMAGE_SCN_MEM_FARDATA 0x8000 | |
892 | #define IMAGE_SCN_MEM_PURGEABLE 0x20000 | |
893 | #define IMAGE_SCN_MEM_16BIT 0x20000 | |
894 | #define IMAGE_SCN_MEM_LOCKED 0x40000 | |
895 | #define IMAGE_SCN_MEM_PRELOAD 0x80000 | |
896 | #define IMAGE_SCN_ALIGN_1BYTES 0x100000 | |
897 | #define IMAGE_SCN_ALIGN_2BYTES 0x200000 | |
898 | #define IMAGE_SCN_ALIGN_4BYTES 0x300000 | |
899 | #define IMAGE_SCN_ALIGN_8BYTES 0x400000 | |
900 | #define IMAGE_SCN_ALIGN_16BYTES 0x500000 | |
901 | #define IMAGE_SCN_ALIGN_32BYTES 0x600000 | |
902 | #define IMAGE_SCN_ALIGN_64BYTES 0x700000 | |
903 | #define IMAGE_SCN_LNK_NRELOC_OVFL 0x1000000 | |
904 | #define IMAGE_SCN_MEM_DISCARDABLE 0x2000000 | |
905 | #define IMAGE_SCN_MEM_NOT_CACHED 0x4000000 | |
906 | #define IMAGE_SCN_MEM_NOT_PAGED 0x8000000 | |
907 | #define IMAGE_SCN_MEM_SHARED 0x10000000 | |
908 | #define IMAGE_SCN_MEM_EXECUTE 0x20000000 | |
909 | #define IMAGE_SCN_MEM_READ 0x40000000 | |
910 | #define IMAGE_SCN_MEM_WRITE 0x80000000 | |
911 | #define IMAGE_SYM_UNDEFINED 0 | |
912 | #define IMAGE_SYM_ABSOLUTE (-1) | |
913 | #define IMAGE_SYM_DEBUG (-2) | |
914 | #define IMAGE_SYM_TYPE_NULL 0 | |
915 | #define IMAGE_SYM_TYPE_VOID 1 | |
916 | #define IMAGE_SYM_TYPE_CHAR 2 | |
917 | #define IMAGE_SYM_TYPE_SHORT 3 | |
918 | #define IMAGE_SYM_TYPE_INT 4 | |
919 | #define IMAGE_SYM_TYPE_LONG 5 | |
920 | #define IMAGE_SYM_TYPE_FLOAT 6 | |
921 | #define IMAGE_SYM_TYPE_DOUBLE 7 | |
922 | #define IMAGE_SYM_TYPE_STRUCT 8 | |
923 | #define IMAGE_SYM_TYPE_UNION 9 | |
924 | #define IMAGE_SYM_TYPE_ENUM 10 | |
925 | #define IMAGE_SYM_TYPE_MOE 11 | |
926 | #define IMAGE_SYM_TYPE_BYTE 12 | |
927 | #define IMAGE_SYM_TYPE_WORD 13 | |
928 | #define IMAGE_SYM_TYPE_UINT 14 | |
929 | #define IMAGE_SYM_TYPE_DWORD 15 | |
930 | #define IMAGE_SYM_TYPE_PCODE 32768 | |
931 | #define IMAGE_SYM_DTYPE_NULL 0 | |
932 | #define IMAGE_SYM_DTYPE_POINTER 1 | |
933 | #define IMAGE_SYM_DTYPE_FUNCTION 2 | |
934 | #define IMAGE_SYM_DTYPE_ARRAY 3 | |
935 | #define IMAGE_SYM_CLASS_END_OF_FUNCTION (-1) | |
936 | #define IMAGE_SYM_CLASS_NULL 0 | |
937 | #define IMAGE_SYM_CLASS_AUTOMATIC 1 | |
938 | #define IMAGE_SYM_CLASS_EXTERNAL 2 | |
939 | #define IMAGE_SYM_CLASS_STATIC 3 | |
940 | #define IMAGE_SYM_CLASS_REGISTER 4 | |
941 | #define IMAGE_SYM_CLASS_EXTERNAL_DEF 5 | |
942 | #define IMAGE_SYM_CLASS_LABEL 6 | |
943 | #define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7 | |
944 | #define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8 | |
945 | #define IMAGE_SYM_CLASS_ARGUMENT 9 | |
946 | #define IMAGE_SYM_CLASS_STRUCT_TAG 10 | |
947 | #define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11 | |
948 | #define IMAGE_SYM_CLASS_UNION_TAG 12 | |
949 | #define IMAGE_SYM_CLASS_TYPE_DEFINITION 13 | |
950 | #define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14 | |
951 | #define IMAGE_SYM_CLASS_ENUM_TAG 15 | |
952 | #define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16 | |
953 | #define IMAGE_SYM_CLASS_REGISTER_PARAM 17 | |
954 | #define IMAGE_SYM_CLASS_BIT_FIELD 18 | |
955 | #define IMAGE_SYM_CLASS_FAR_EXTERNAL 68 | |
956 | #define IMAGE_SYM_CLASS_BLOCK 100 | |
957 | #define IMAGE_SYM_CLASS_FUNCTION 101 | |
958 | #define IMAGE_SYM_CLASS_END_OF_STRUCT 102 | |
959 | #define IMAGE_SYM_CLASS_FILE 103 | |
960 | #define IMAGE_SYM_CLASS_SECTION 104 | |
961 | #define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105 | |
962 | #define IMAGE_COMDAT_SELECT_NODUPLICATES 1 | |
963 | #define IMAGE_COMDAT_SELECT_ANY 2 | |
964 | #define IMAGE_COMDAT_SELECT_SAME_SIZE 3 | |
965 | #define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 | |
966 | #define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 | |
967 | #define IMAGE_COMDAT_SELECT_LARGEST 6 | |
968 | #define IMAGE_COMDAT_SELECT_NEWEST 7 | |
969 | #define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 | |
970 | #define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 | |
971 | #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 | |
972 | #define IMAGE_REL_I386_ABSOLUTE 0 | |
973 | #define IMAGE_REL_I386_DIR16 1 | |
974 | #define IMAGE_REL_I386_REL16 2 | |
975 | #define IMAGE_REL_I386_DIR32 6 | |
976 | #define IMAGE_REL_I386_DIR32NB 7 | |
977 | #define IMAGE_REL_I386_SEG12 9 | |
978 | #define IMAGE_REL_I386_SECTION 10 | |
979 | #define IMAGE_REL_I386_SECREL 11 | |
980 | #define IMAGE_REL_I386_REL32 20 | |
981 | #define IMAGE_REL_MIPS_ABSOLUTE 0 | |
982 | #define IMAGE_REL_MIPS_REFHALF 1 | |
983 | #define IMAGE_REL_MIPS_REFWORD 2 | |
984 | #define IMAGE_REL_MIPS_JMPADDR 3 | |
985 | #define IMAGE_REL_MIPS_REFHI 4 | |
986 | #define IMAGE_REL_MIPS_REFLO 5 | |
987 | #define IMAGE_REL_MIPS_GPREL 6 | |
988 | #define IMAGE_REL_MIPS_LITERAL 7 | |
989 | #define IMAGE_REL_MIPS_SECTION 10 | |
990 | #define IMAGE_REL_MIPS_SECREL 11 | |
991 | #define IMAGE_REL_MIPS_SECRELLO 12 | |
992 | #define IMAGE_REL_MIPS_SECRELHI 13 | |
993 | #define IMAGE_REL_MIPS_REFWORDNB 34 | |
994 | #define IMAGE_REL_MIPS_PAIR 35 | |
995 | #define IMAGE_REL_ALPHA_ABSOLUTE 0 | |
996 | #define IMAGE_REL_ALPHA_REFLONG 1 | |
997 | #define IMAGE_REL_ALPHA_REFQUAD 2 | |
998 | #define IMAGE_REL_ALPHA_GPREL32 3 | |
999 | #define IMAGE_REL_ALPHA_LITERAL 4 | |
1000 | #define IMAGE_REL_ALPHA_LITUSE 5 | |
1001 | #define IMAGE_REL_ALPHA_GPDISP 6 | |
1002 | #define IMAGE_REL_ALPHA_BRADDR 7 | |
1003 | #define IMAGE_REL_ALPHA_HINT 8 | |
1004 | #define IMAGE_REL_ALPHA_INLINE_REFLONG 9 | |
1005 | #define IMAGE_REL_ALPHA_REFHI 10 | |
1006 | #define IMAGE_REL_ALPHA_REFLO 11 | |
1007 | #define IMAGE_REL_ALPHA_PAIR 12 | |
1008 | #define IMAGE_REL_ALPHA_MATCH 13 | |
1009 | #define IMAGE_REL_ALPHA_SECTION 14 | |
1010 | #define IMAGE_REL_ALPHA_SECREL 15 | |
1011 | #define IMAGE_REL_ALPHA_REFLONGNB 16 | |
1012 | #define IMAGE_REL_ALPHA_SECRELLO 17 | |
1013 | #define IMAGE_REL_ALPHA_SECRELHI 18 | |
1014 | #define IMAGE_REL_PPC_ABSOLUTE 0 | |
1015 | #define IMAGE_REL_PPC_ADDR64 1 | |
1016 | #define IMAGE_REL_PPC_ADDR32 2 | |
1017 | #define IMAGE_REL_PPC_ADDR24 3 | |
1018 | #define IMAGE_REL_PPC_ADDR16 4 | |
1019 | #define IMAGE_REL_PPC_ADDR14 5 | |
1020 | #define IMAGE_REL_PPC_REL24 6 | |
1021 | #define IMAGE_REL_PPC_REL14 7 | |
1022 | #define IMAGE_REL_PPC_TOCREL16 8 | |
1023 | #define IMAGE_REL_PPC_TOCREL14 9 | |
1024 | #define IMAGE_REL_PPC_ADDR32NB 10 | |
1025 | #define IMAGE_REL_PPC_SECREL 11 | |
1026 | #define IMAGE_REL_PPC_SECTION 12 | |
1027 | #define IMAGE_REL_PPC_IFGLUE 13 | |
1028 | #define IMAGE_REL_PPC_IMGLUE 14 | |
1029 | #define IMAGE_REL_PPC_SECREL16 15 | |
1030 | #define IMAGE_REL_PPC_REFHI 16 | |
1031 | #define IMAGE_REL_PPC_REFLO 17 | |
1032 | #define IMAGE_REL_PPC_PAIR 18 | |
1033 | #define IMAGE_REL_PPC_TYPEMASK 255 | |
1034 | #define IMAGE_REL_PPC_NEG 256 | |
1035 | #define IMAGE_REL_PPC_BRTAKEN 512 | |
1036 | #define IMAGE_REL_PPC_BRNTAKEN 1024 | |
1037 | #define IMAGE_REL_PPC_TOCDEFN 2048 | |
1038 | #define IMAGE_REL_BASED_ABSOLUTE 0 | |
1039 | #define IMAGE_REL_BASED_HIGH 1 | |
1040 | #define IMAGE_REL_BASED_LOW 2 | |
1041 | #define IMAGE_REL_BASED_HIGHLOW 3 | |
1042 | #define IMAGE_REL_BASED_HIGHADJ 4 | |
1043 | #define IMAGE_REL_BASED_MIPS_JMPADDR 5 | |
1044 | #define IMAGE_ARCHIVE_START_SIZE 8 | |
1045 | #define IMAGE_ARCHIVE_START "!<arch>\n" | |
1046 | #define IMAGE_ARCHIVE_END "`\n" | |
1047 | #define IMAGE_ARCHIVE_PAD "\n" | |
1048 | #define IMAGE_ARCHIVE_LINKER_MEMBER "/ " | |
1049 | #define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " | |
3adfd509 DS |
1050 | #define IMAGE_ORDINAL_FLAG32 0x80000000 |
1051 | #define IMAGE_SNAP_BY_ORDINAL32(o) ((o&IMAGE_ORDINAL_FLAG32)!=0) | |
1052 | #define IMAGE_ORDINAL32(o) (o&0xffff) | |
1053 | #define IMAGE_ORDINAL_FLAG64 0x8000000000000000ULL | |
1054 | #define IMAGE_SNAP_BY_ORDINAL64(o) ((o&IMAGE_ORDINAL_FLAG64)!=0) | |
1055 | #define IMAGE_ORDINAL64(o) (o&0xffff) | |
1056 | #ifdef _WIN64 | |
1057 | #define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG64 | |
1058 | #define IMAGE_SNAP_BY_ORDINAL(o) IMAGE_SNAP_BY_ORDINAL64(o) | |
1059 | #define IMAGE_ORDINAL(o) IMAGE_ORDINAL64(o) | |
1060 | #else | |
1061 | #define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG32 | |
1062 | #define IMAGE_SNAP_BY_ORDINAL(o) IMAGE_SNAP_BY_ORDINAL32(o) | |
1063 | #define IMAGE_ORDINAL(o) IMAGE_ORDINAL32(o) | |
1064 | #endif | |
1fd5e000 CF |
1065 | #define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 |
1066 | #define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 | |
1067 | #define IMAGE_DEBUG_TYPE_UNKNOWN 0 | |
1068 | #define IMAGE_DEBUG_TYPE_COFF 1 | |
1069 | #define IMAGE_DEBUG_TYPE_CODEVIEW 2 | |
1070 | #define IMAGE_DEBUG_TYPE_FPO 3 | |
1071 | #define IMAGE_DEBUG_TYPE_MISC 4 | |
1072 | #define IMAGE_DEBUG_TYPE_EXCEPTION 5 | |
1073 | #define IMAGE_DEBUG_TYPE_FIXUP 6 | |
1074 | #define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 | |
1075 | #define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 | |
1076 | #define FRAME_FPO 0 | |
1077 | #define FRAME_TRAP 1 | |
1078 | #define FRAME_TSS 2 | |
1079 | #define FRAME_NONFPO 3 | |
1080 | #define IMAGE_DEBUG_MISC_EXENAME 1 | |
1081 | #define N_BTMASK 0x000F | |
1082 | #define N_TMASK 0x0030 | |
1083 | #define N_TMASK1 0x00C0 | |
1084 | #define N_TMASK2 0x00F0 | |
1085 | #define N_BTSHFT 4 | |
1086 | #define N_TSHIFT 2 | |
1087 | #define IS_TEXT_UNICODE_ASCII16 1 | |
1088 | #define IS_TEXT_UNICODE_REVERSE_ASCII16 16 | |
1089 | #define IS_TEXT_UNICODE_STATISTICS 2 | |
1090 | #define IS_TEXT_UNICODE_REVERSE_STATISTICS 32 | |
1091 | #define IS_TEXT_UNICODE_CONTROLS 4 | |
1092 | #define IS_TEXT_UNICODE_REVERSE_CONTROLS 64 | |
1093 | #define IS_TEXT_UNICODE_SIGNATURE 8 | |
1094 | #define IS_TEXT_UNICODE_REVERSE_SIGNATURE 128 | |
1095 | #define IS_TEXT_UNICODE_ILLEGAL_CHARS 256 | |
1096 | #define IS_TEXT_UNICODE_ODD_LENGTH 512 | |
1097 | #define IS_TEXT_UNICODE_NULL_BYTES 4096 | |
1098 | #define IS_TEXT_UNICODE_UNICODE_MASK 15 | |
1099 | #define IS_TEXT_UNICODE_REVERSE_MASK 240 | |
1100 | #define IS_TEXT_UNICODE_NOT_UNICODE_MASK 3840 | |
1101 | #define IS_TEXT_UNICODE_NOT_ASCII_MASK 61440 | |
1102 | #define SERVICE_KERNEL_DRIVER 1 | |
1103 | #define SERVICE_FILE_SYSTEM_DRIVER 2 | |
1104 | #define SERVICE_ADAPTER 4 | |
1105 | #define SERVICE_RECOGNIZER_DRIVER 8 | |
1106 | #define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER|SERVICE_FILE_SYSTEM_DRIVER|SERVICE_RECOGNIZER_DRIVER) | |
1107 | #define SERVICE_WIN32_OWN_PROCESS 16 | |
1108 | #define SERVICE_WIN32_SHARE_PROCESS 32 | |
1109 | #define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS|SERVICE_WIN32_SHARE_PROCESS) | |
1110 | #define SERVICE_INTERACTIVE_PROCESS 256 | |
1111 | #define SERVICE_TYPE_ALL (SERVICE_WIN32|SERVICE_ADAPTER|SERVICE_DRIVER|SERVICE_INTERACTIVE_PROCESS) | |
1112 | #define SERVICE_BOOT_START 0 | |
1113 | #define SERVICE_SYSTEM_START 1 | |
1114 | #define SERVICE_AUTO_START 2 | |
1115 | #define SERVICE_DEMAND_START 3 | |
1116 | #define SERVICE_DISABLED 4 | |
1117 | #define SERVICE_ERROR_IGNORE 0 | |
1118 | #define SERVICE_ERROR_NORMAL 1 | |
1119 | #define SERVICE_ERROR_SEVERE 2 | |
1120 | #define SERVICE_ERROR_CRITICAL 3 | |
1121 | #define SE_OWNER_DEFAULTED 1 | |
1122 | #define SE_GROUP_DEFAULTED 2 | |
1123 | #define SE_DACL_PRESENT 4 | |
1124 | #define SE_DACL_DEFAULTED 8 | |
1125 | #define SE_SACL_PRESENT 16 | |
1126 | #define SE_SACL_DEFAULTED 32 | |
1127 | #define SE_DACL_AUTO_INHERIT_REQ 256 | |
1128 | #define SE_SACL_AUTO_INHERIT_REQ 512 | |
1129 | #define SE_DACL_AUTO_INHERITED 1024 | |
1130 | #define SE_SACL_AUTO_INHERITED 2048 | |
1131 | #define SE_DACL_PROTECTED 4096 | |
1132 | #define SE_SACL_PROTECTED 8192 | |
1133 | #define SE_SELF_RELATIVE 0x8000 | |
1134 | #define SECURITY_DESCRIPTOR_MIN_LENGTH 20 | |
1135 | #define SECURITY_DESCRIPTOR_REVISION 1 | |
1136 | #define SECURITY_DESCRIPTOR_REVISION1 1 | |
1137 | #define SE_PRIVILEGE_ENABLED_BY_DEFAULT 1 | |
1138 | #define SE_PRIVILEGE_ENABLED 2 | |
1139 | #define SE_PRIVILEGE_USED_FOR_ACCESS 0x80000000 | |
1140 | #define PRIVILEGE_SET_ALL_NECESSARY 1 | |
1141 | #define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation | |
1142 | #define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation | |
1143 | #define SECURITY_DYNAMIC_TRACKING TRUE | |
1144 | #define SECURITY_STATIC_TRACKING FALSE | |
1058b66e DS |
1145 | /* also in ddk/ntifs.h */ |
1146 | #define TOKEN_ASSIGN_PRIMARY (0x0001) | |
1147 | #define TOKEN_DUPLICATE (0x0002) | |
1148 | #define TOKEN_IMPERSONATE (0x0004) | |
1149 | #define TOKEN_QUERY (0x0008) | |
1150 | #define TOKEN_QUERY_SOURCE (0x0010) | |
1151 | #define TOKEN_ADJUST_PRIVILEGES (0x0020) | |
1152 | #define TOKEN_ADJUST_GROUPS (0x0040) | |
1153 | #define TOKEN_ADJUST_DEFAULT (0x0080) | |
1154 | #define TOKEN_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ | |
1155 | TOKEN_ASSIGN_PRIMARY |\ | |
1156 | TOKEN_DUPLICATE |\ | |
1157 | TOKEN_IMPERSONATE |\ | |
1158 | TOKEN_QUERY |\ | |
1159 | TOKEN_QUERY_SOURCE |\ | |
1160 | TOKEN_ADJUST_PRIVILEGES |\ | |
1161 | TOKEN_ADJUST_GROUPS |\ | |
1162 | TOKEN_ADJUST_DEFAULT) | |
1163 | #define TOKEN_READ (STANDARD_RIGHTS_READ |\ | |
1164 | TOKEN_QUERY) | |
1165 | #define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\ | |
1166 | TOKEN_ADJUST_PRIVILEGES |\ | |
1167 | TOKEN_ADJUST_GROUPS |\ | |
1168 | TOKEN_ADJUST_DEFAULT) | |
1169 | ||
1170 | #define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE) | |
1fd5e000 | 1171 | #define TOKEN_SOURCE_LENGTH 8 |
1058b66e | 1172 | /* end ddk/ntifs.h */ |
1fd5e000 CF |
1173 | #define DLL_PROCESS_DETACH 0 |
1174 | #define DLL_PROCESS_ATTACH 1 | |
1175 | #define DLL_THREAD_ATTACH 2 | |
1176 | #define DLL_THREAD_DETACH 3 | |
1177 | #define DBG_CONTINUE 0x10002 | |
1178 | #define DBG_TERMINATE_THREAD 0x40010003 | |
1179 | #define DBG_TERMINATE_PROCESS 0x40010004 | |
1180 | #define DBG_CONTROL_C 0x40010005 | |
1181 | #define DBG_CONTROL_BREAK 0x40010008 | |
1182 | #define DBG_EXCEPTION_NOT_HANDLED 0x80010001 | |
1183 | #define TAPE_ABSOLUTE_POSITION 0 | |
1184 | #define TAPE_LOGICAL_POSITION 1 | |
1185 | #define TAPE_PSEUDO_LOGICAL_POSITION 2 | |
1186 | #define TAPE_REWIND 0 | |
1187 | #define TAPE_ABSOLUTE_BLOCK 1 | |
1188 | #define TAPE_LOGICAL_BLOCK 2 | |
1189 | #define TAPE_PSEUDO_LOGICAL_BLOCK 3 | |
1190 | #define TAPE_SPACE_END_OF_DATA 4 | |
1191 | #define TAPE_SPACE_RELATIVE_BLOCKS 5 | |
1192 | #define TAPE_SPACE_FILEMARKS 6 | |
1193 | #define TAPE_SPACE_SEQUENTIAL_FMKS 7 | |
1194 | #define TAPE_SPACE_SETMARKS 8 | |
1195 | #define TAPE_SPACE_SEQUENTIAL_SMKS 9 | |
1196 | #define TAPE_DRIVE_FIXED 1 | |
1197 | #define TAPE_DRIVE_SELECT 2 | |
1198 | #define TAPE_DRIVE_INITIATOR 4 | |
1199 | #define TAPE_DRIVE_ERASE_SHORT 16 | |
1200 | #define TAPE_DRIVE_ERASE_LONG 32 | |
1201 | #define TAPE_DRIVE_ERASE_BOP_ONLY 64 | |
1202 | #define TAPE_DRIVE_ERASE_IMMEDIATE 128 | |
1203 | #define TAPE_DRIVE_TAPE_CAPACITY 256 | |
1204 | #define TAPE_DRIVE_TAPE_REMAINING 512 | |
1205 | #define TAPE_DRIVE_FIXED_BLOCK 1024 | |
1206 | #define TAPE_DRIVE_VARIABLE_BLOCK 2048 | |
1207 | #define TAPE_DRIVE_WRITE_PROTECT 4096 | |
1208 | #define TAPE_DRIVE_EOT_WZ_SIZE 8192 | |
1209 | #define TAPE_DRIVE_ECC 0x10000 | |
1210 | #define TAPE_DRIVE_COMPRESSION 0x20000 | |
1211 | #define TAPE_DRIVE_PADDING 0x40000 | |
1212 | #define TAPE_DRIVE_REPORT_SMKS 0x80000 | |
1213 | #define TAPE_DRIVE_GET_ABSOLUTE_BLK 0x100000 | |
1214 | #define TAPE_DRIVE_GET_LOGICAL_BLK 0x200000 | |
1215 | #define TAPE_DRIVE_SET_EOT_WZ_SIZE 0x400000 | |
f55f400b CV |
1216 | #define TAPE_DRIVE_EJECT_MEDIA 0x1000000 |
1217 | #define TAPE_DRIVE_CLEAN_REQUESTS 0x2000000 | |
1218 | #define TAPE_DRIVE_SET_CMP_BOP_ONLY 0x4000000 | |
1fd5e000 CF |
1219 | #define TAPE_DRIVE_RESERVED_BIT 0x80000000 |
1220 | #define TAPE_DRIVE_LOAD_UNLOAD 0x80000001 | |
1221 | #define TAPE_DRIVE_TENSION 0x80000002 | |
1222 | #define TAPE_DRIVE_LOCK_UNLOCK 0x80000004 | |
1223 | #define TAPE_DRIVE_REWIND_IMMEDIATE 0x80000008 | |
1224 | #define TAPE_DRIVE_SET_BLOCK_SIZE 0x80000010 | |
1225 | #define TAPE_DRIVE_LOAD_UNLD_IMMED 0x80000020 | |
1226 | #define TAPE_DRIVE_TENSION_IMMED 0x80000040 | |
1227 | #define TAPE_DRIVE_LOCK_UNLK_IMMED 0x80000080 | |
1228 | #define TAPE_DRIVE_SET_ECC 0x80000100 | |
1229 | #define TAPE_DRIVE_SET_COMPRESSION 0x80000200 | |
1230 | #define TAPE_DRIVE_SET_PADDING 0x80000400 | |
1231 | #define TAPE_DRIVE_SET_REPORT_SMKS 0x80000800 | |
1232 | #define TAPE_DRIVE_ABSOLUTE_BLK 0x80001000 | |
1233 | #define TAPE_DRIVE_ABS_BLK_IMMED 0x80002000 | |
1234 | #define TAPE_DRIVE_LOGICAL_BLK 0x80004000 | |
1235 | #define TAPE_DRIVE_LOG_BLK_IMMED 0x80008000 | |
1236 | #define TAPE_DRIVE_END_OF_DATA 0x80010000 | |
1237 | #define TAPE_DRIVE_RELATIVE_BLKS 0x80020000 | |
1238 | #define TAPE_DRIVE_FILEMARKS 0x80040000 | |
1239 | #define TAPE_DRIVE_SEQUENTIAL_FMKS 0x80080000 | |
1240 | #define TAPE_DRIVE_SETMARKS 0x80100000 | |
1241 | #define TAPE_DRIVE_SEQUENTIAL_SMKS 0x80200000 | |
1242 | #define TAPE_DRIVE_REVERSE_POSITION 0x80400000 | |
1243 | #define TAPE_DRIVE_SPACE_IMMEDIATE 0x80800000 | |
1244 | #define TAPE_DRIVE_WRITE_SETMARKS 0x81000000 | |
1245 | #define TAPE_DRIVE_WRITE_FILEMARKS 0x82000000 | |
1246 | #define TAPE_DRIVE_WRITE_SHORT_FMKS 0x84000000 | |
1247 | #define TAPE_DRIVE_WRITE_LONG_FMKS 0x88000000 | |
1248 | #define TAPE_DRIVE_WRITE_MARK_IMMED 0x90000000 | |
1249 | #define TAPE_DRIVE_FORMAT 0xA0000000 | |
1250 | #define TAPE_DRIVE_FORMAT_IMMEDIATE 0xC0000000 | |
1251 | #define TAPE_DRIVE_HIGH_FEATURES 0x80000000 | |
1252 | #define TAPE_FIXED_PARTITIONS 0 | |
1253 | #define TAPE_INITIATOR_PARTITIONS 2 | |
1254 | #define TAPE_SELECT_PARTITIONS 1 | |
1255 | #define TAPE_FILEMARKS 1 | |
1256 | #define TAPE_LONG_FILEMARKS 3 | |
1257 | #define TAPE_SETMARKS 0 | |
1258 | #define TAPE_SHORT_FILEMARKS 2 | |
1259 | #define TAPE_ERASE_LONG 1 | |
1260 | #define TAPE_ERASE_SHORT 0 | |
1261 | #define TAPE_LOAD 0 | |
1262 | #define TAPE_UNLOAD 1 | |
1263 | #define TAPE_TENSION 2 | |
1264 | #define TAPE_LOCK 3 | |
1265 | #define TAPE_UNLOCK 4 | |
1266 | #define TAPE_FORMAT 5 | |
56efe3a8 DP |
1267 | #if (_WIN32_WINNT >= 0x0500) |
1268 | #define VER_MINORVERSION 0x0000001 | |
1269 | #define VER_MAJORVERSION 0x0000002 | |
1270 | #define VER_BUILDNUMBER 0x0000004 | |
1271 | #define VER_PLATFORMID 0x0000008 | |
1272 | #define VER_SERVICEPACKMINOR 0x0000010 | |
1273 | #define VER_SERVICEPACKMAJOR 0x0000020 | |
1274 | #define VER_SUITENAME 0x0000040 | |
1275 | #define VER_PRODUCT_TYPE 0x0000080 | |
1276 | #define VER_EQUAL 1 | |
1277 | #define VER_GREATER 2 | |
1278 | #define VER_GREATER_EQUAL 3 | |
1279 | #define VER_LESS 4 | |
1280 | #define VER_LESS_EQUAL 5 | |
1281 | #define VER_AND 6 | |
1282 | #define VER_OR 7 | |
1283 | #endif | |
6dfcb5a3 EB |
1284 | #define VER_PLATFORM_WIN32s 0 |
1285 | #define VER_PLATFORM_WIN32_WINDOWS 1 | |
1286 | #define VER_PLATFORM_WIN32_NT 2 | |
1287 | #define VER_NT_WORKSTATION 1 | |
1288 | #define VER_NT_DOMAIN_CONTROLLER 2 | |
1289 | #define VER_NT_SERVER 3 | |
9d2dfde2 EB |
1290 | #define VER_SUITE_SMALLBUSINESS 1 |
1291 | #define VER_SUITE_ENTERPRISE 2 | |
1292 | #define VER_SUITE_BACKOFFICE 4 | |
1293 | #define VER_SUITE_TERMINAL 16 | |
1294 | #define VER_SUITE_SMALLBUSINESS_RESTRICTED 32 | |
1295 | #define VER_SUITE_DATACENTER 128 | |
1296 | #define VER_SUITE_PERSONAL 512 | |
e58d8928 | 1297 | #define VER_SUITE_BLADE 1024 |
d645cc87 DP |
1298 | #define WT_EXECUTEDEFAULT 0x00000000 |
1299 | #define WT_EXECUTEINIOTHREAD 0x00000001 | |
1300 | #define WT_EXECUTEINWAITTHREAD 0x00000004 | |
1301 | #define WT_EXECUTEONLYONCE 0x00000008 | |
1302 | #define WT_EXECUTELONGFUNCTION 0x00000010 | |
1303 | #define WT_EXECUTEINTIMERTHREAD 0x00000020 | |
1304 | #define WT_EXECUTEINPERSISTENTTHREAD 0x00000080 | |
1305 | #define WT_TRANSFER_IMPERSONATION 0x00000100 | |
f9a322eb DP |
1306 | #if (_WIN32_WINNT >= 0x0501) |
1307 | #define ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION 1 | |
1308 | #define ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION 2 | |
1309 | #define ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION 3 | |
1310 | #define ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION 4 | |
1311 | #define ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION 5 | |
1312 | #define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION 6 | |
1313 | #define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7 | |
1314 | #define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9 | |
1315 | #endif /* (_WIN32_WINNT >= 0x0501) */ | |
1fd5e000 CF |
1316 | #define BTYPE(x) ((x)&N_BTMASK) |
1317 | #define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)) | |
1318 | #define ISFCN(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_FUNCTION<<N_BTSHFT)) | |
1319 | #define ISARY(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_ARRAY<<N_BTSHFT)) | |
1320 | #define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG||(x)==IMAGE_SYM_CLASS_UNION_TAG||(x)==IMAGE_SYM_CLASS_ENUM_TAG) | |
1321 | #define INCREF(x) ((((x)&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)|((x)&N_BTMASK)) | |
1322 | #define DECREF(x) ((((x)>>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) | |
6dc88be7 | 1323 | #define TLS_MINIMUM_AVAILABLE 64 |
666b9d7b CV |
1324 | #define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer) |
1325 | #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) | |
1326 | #define MAXIMUM_REPARSE_DATA_BUFFER_SIZE 16384 | |
1327 | #define IO_REPARSE_TAG_RESERVED_ZERO 0 | |
1328 | #define IO_REPARSE_TAG_RESERVED_ONE 1 | |
1329 | #define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE | |
1330 | #define IsReparseTagMicrosoft(x) ((x)&0x80000000) | |
1331 | #define IsReparseTagHighLatency(x) ((x)&0x40000000) | |
1332 | #define IsReparseTagNameSurrogate(x) ((x)&0x20000000) | |
1333 | #define IO_REPARSE_TAG_VALID_VALUES 0xE000FFFF | |
1334 | #define IsReparseTagValid(x) (!((x)&~IO_REPARSE_TAG_VALID_VALUES)&&((x)>IO_REPARSE_TAG_RESERVED_RANGE)) | |
1335 | #define IO_REPARSE_TAG_SYMBOLIC_LINK IO_REPARSE_TAG_RESERVED_ZERO | |
1336 | #define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003 | |
1fd5e000 | 1337 | #ifndef RC_INVOKED |
6dfcb5a3 | 1338 | typedef DWORD ACCESS_MASK, *PACCESS_MASK; |
33c7867e EB |
1339 | |
1340 | #ifdef _GUID_DEFINED | |
1341 | # warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead | |
1342 | #endif | |
1343 | ||
1344 | #if ! (defined _GUID_DEFINED || defined GUID_DEFINED) /* also defined in basetyps.h */ | |
1345 | #define GUID_DEFINED | |
baf428f0 EB |
1346 | typedef struct _GUID { |
1347 | unsigned long Data1; | |
1348 | unsigned short Data2; | |
1349 | unsigned short Data3; | |
1350 | unsigned char Data4[8]; | |
1351 | } GUID, *REFGUID, *LPGUID; | |
75f259bf | 1352 | #define SYSTEM_LUID { QuadPart:999 } |
33c7867e | 1353 | #endif /* GUID_DEFINED */ |
1fd5e000 CF |
1354 | typedef struct _GENERIC_MAPPING { |
1355 | ACCESS_MASK GenericRead; | |
1356 | ACCESS_MASK GenericWrite; | |
1357 | ACCESS_MASK GenericExecute; | |
1358 | ACCESS_MASK GenericAll; | |
1359 | } GENERIC_MAPPING, *PGENERIC_MAPPING; | |
1360 | typedef struct _ACE_HEADER { | |
1361 | BYTE AceType; | |
1362 | BYTE AceFlags; | |
1363 | WORD AceSize; | |
915d66ce | 1364 | } ACE_HEADER, *PACE_HEADER; |
1fd5e000 CF |
1365 | typedef struct _ACCESS_ALLOWED_ACE { |
1366 | ACE_HEADER Header; | |
1367 | ACCESS_MASK Mask; | |
1368 | DWORD SidStart; | |
915d66ce | 1369 | } ACCESS_ALLOWED_ACE, *PACCESS_ALLOWED_ACE; |
1fd5e000 CF |
1370 | typedef struct _ACCESS_DENIED_ACE { |
1371 | ACE_HEADER Header; | |
1372 | ACCESS_MASK Mask; | |
1373 | DWORD SidStart; | |
915d66ce | 1374 | } ACCESS_DENIED_ACE, *PACCESS_DENIED_ACE; |
baf428f0 EB |
1375 | typedef struct _SYSTEM_AUDIT_ACE { |
1376 | ACE_HEADER Header; | |
1377 | ACCESS_MASK Mask; | |
1378 | DWORD SidStart; | |
1379 | } SYSTEM_AUDIT_ACE; | |
1380 | typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE; | |
1381 | typedef struct _SYSTEM_ALARM_ACE { | |
1382 | ACE_HEADER Header; | |
1383 | ACCESS_MASK Mask; | |
1384 | DWORD SidStart; | |
1385 | } SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE; | |
1386 | typedef struct _ACCESS_ALLOWED_OBJECT_ACE { | |
1387 | ACE_HEADER Header; | |
1388 | ACCESS_MASK Mask; | |
1389 | DWORD Flags; | |
1390 | GUID ObjectType; | |
1391 | GUID InheritedObjectType; | |
1392 | DWORD SidStart; | |
1393 | } ACCESS_ALLOWED_OBJECT_ACE,*PACCESS_ALLOWED_OBJECT_ACE; | |
1394 | typedef struct _ACCESS_DENIED_OBJECT_ACE { | |
1395 | ACE_HEADER Header; | |
1396 | ACCESS_MASK Mask; | |
1397 | DWORD Flags; | |
1398 | GUID ObjectType; | |
1399 | GUID InheritedObjectType; | |
1400 | DWORD SidStart; | |
1401 | } ACCESS_DENIED_OBJECT_ACE,*PACCESS_DENIED_OBJECT_ACE; | |
1402 | typedef struct _SYSTEM_AUDIT_OBJECT_ACE { | |
1403 | ACE_HEADER Header; | |
1404 | ACCESS_MASK Mask; | |
1405 | DWORD Flags; | |
1406 | GUID ObjectType; | |
1407 | GUID InheritedObjectType; | |
1408 | DWORD SidStart; | |
1409 | } SYSTEM_AUDIT_OBJECT_ACE,*PSYSTEM_AUDIT_OBJECT_ACE; | |
1410 | typedef struct _SYSTEM_ALARM_OBJECT_ACE { | |
1411 | ACE_HEADER Header; | |
1412 | ACCESS_MASK Mask; | |
1413 | DWORD Flags; | |
1414 | GUID ObjectType; | |
1415 | GUID InheritedObjectType; | |
1416 | DWORD SidStart; | |
1417 | } SYSTEM_ALARM_OBJECT_ACE,*PSYSTEM_ALARM_OBJECT_ACE; | |
1fd5e000 CF |
1418 | typedef struct _ACL { |
1419 | BYTE AclRevision; | |
1420 | BYTE Sbz1; | |
1421 | WORD AclSize; | |
1422 | WORD AceCount; | |
1423 | WORD Sbz2; | |
1424 | } ACL,*PACL; | |
1425 | typedef struct _ACL_REVISION_INFORMATION { | |
1426 | DWORD AclRevision; | |
1427 | } ACL_REVISION_INFORMATION; | |
1428 | typedef struct _ACL_SIZE_INFORMATION { | |
baf428f0 EB |
1429 | DWORD AceCount; |
1430 | DWORD AclBytesInUse; | |
1431 | DWORD AclBytesFree; | |
1fd5e000 CF |
1432 | } ACL_SIZE_INFORMATION; |
1433 | ||
1434 | /* FIXME: add more machines */ | |
1435 | #ifdef _X86_ | |
1436 | #define SIZE_OF_80387_REGISTERS 80 | |
1437 | #define CONTEXT_i386 0x10000 | |
1438 | #define CONTEXT_i486 0x10000 | |
1439 | #define CONTEXT_CONTROL (CONTEXT_i386|0x00000001L) | |
1440 | #define CONTEXT_INTEGER (CONTEXT_i386|0x00000002L) | |
1441 | #define CONTEXT_SEGMENTS (CONTEXT_i386|0x00000004L) | |
1442 | #define CONTEXT_FLOATING_POINT (CONTEXT_i386|0x00000008L) | |
1443 | #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386|0x00000010L) | |
87f1a487 | 1444 | #define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L) |
1fd5e000 | 1445 | #define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS) |
87f1a487 | 1446 | #define MAXIMUM_SUPPORTED_EXTENSION 512 |
1fd5e000 CF |
1447 | typedef struct _FLOATING_SAVE_AREA { |
1448 | DWORD ControlWord; | |
1449 | DWORD StatusWord; | |
1450 | DWORD TagWord; | |
1451 | DWORD ErrorOffset; | |
1452 | DWORD ErrorSelector; | |
1453 | DWORD DataOffset; | |
1454 | DWORD DataSelector; | |
1455 | BYTE RegisterArea[80]; | |
1456 | DWORD Cr0NpxState; | |
1457 | } FLOATING_SAVE_AREA; | |
1458 | typedef struct _CONTEXT { | |
1459 | DWORD ContextFlags; | |
1460 | DWORD Dr0; | |
1461 | DWORD Dr1; | |
1462 | DWORD Dr2; | |
1463 | DWORD Dr3; | |
1464 | DWORD Dr6; | |
1465 | DWORD Dr7; | |
1466 | FLOATING_SAVE_AREA FloatSave; | |
1467 | DWORD SegGs; | |
1468 | DWORD SegFs; | |
1469 | DWORD SegEs; | |
1470 | DWORD SegDs; | |
1471 | DWORD Edi; | |
1472 | DWORD Esi; | |
1473 | DWORD Ebx; | |
1474 | DWORD Edx; | |
1475 | DWORD Ecx; | |
1476 | DWORD Eax; | |
1477 | DWORD Ebp; | |
1478 | DWORD Eip; | |
1479 | DWORD SegCs; | |
1480 | DWORD EFlags; | |
1481 | DWORD Esp; | |
1482 | DWORD SegSs; | |
87f1a487 | 1483 | BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; |
1fd5e000 CF |
1484 | } CONTEXT; |
1485 | #elif defined(_PPC_) | |
1486 | #define CONTEXT_CONTROL 1L | |
1487 | #define CONTEXT_FLOATING_POINT 2L | |
1488 | #define CONTEXT_INTEGER 4L | |
1489 | #define CONTEXT_DEBUG_REGISTERS 8L | |
1490 | #define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_FLOATING_POINT|CONTEXT_INTEGER) | |
1491 | typedef struct { | |
1492 | double Fpr0; | |
1493 | double Fpr1; | |
1494 | double Fpr2; | |
1495 | double Fpr3; | |
1496 | double Fpr4; | |
1497 | double Fpr5; | |
1498 | double Fpr6; | |
1499 | double Fpr7; | |
1500 | double Fpr8; | |
1501 | double Fpr9; | |
1502 | double Fpr10; | |
1503 | double Fpr11; | |
1504 | double Fpr12; | |
1505 | double Fpr13; | |
1506 | double Fpr14; | |
1507 | double Fpr15; | |
1508 | double Fpr16; | |
1509 | double Fpr17; | |
1510 | double Fpr18; | |
1511 | double Fpr19; | |
1512 | double Fpr20; | |
1513 | double Fpr21; | |
1514 | double Fpr22; | |
1515 | double Fpr23; | |
1516 | double Fpr24; | |
1517 | double Fpr25; | |
1518 | double Fpr26; | |
1519 | double Fpr27; | |
1520 | double Fpr28; | |
1521 | double Fpr29; | |
1522 | double Fpr30; | |
1523 | double Fpr31; | |
1524 | double Fpscr; | |
1525 | DWORD Gpr0; | |
1526 | DWORD Gpr1; | |
1527 | DWORD Gpr2; | |
1528 | DWORD Gpr3; | |
1529 | DWORD Gpr4; | |
1530 | DWORD Gpr5; | |
1531 | DWORD Gpr6; | |
1532 | DWORD Gpr7; | |
1533 | DWORD Gpr8; | |
1534 | DWORD Gpr9; | |
1535 | DWORD Gpr10; | |
1536 | DWORD Gpr11; | |
1537 | DWORD Gpr12; | |
1538 | DWORD Gpr13; | |
1539 | DWORD Gpr14; | |
1540 | DWORD Gpr15; | |
1541 | DWORD Gpr16; | |
1542 | DWORD Gpr17; | |
1543 | DWORD Gpr18; | |
1544 | DWORD Gpr19; | |
1545 | DWORD Gpr20; | |
1546 | DWORD Gpr21; | |
1547 | DWORD Gpr22; | |
1548 | DWORD Gpr23; | |
1549 | DWORD Gpr24; | |
1550 | DWORD Gpr25; | |
1551 | DWORD Gpr26; | |
1552 | DWORD Gpr27; | |
1553 | DWORD Gpr28; | |
1554 | DWORD Gpr29; | |
1555 | DWORD Gpr30; | |
1556 | DWORD Gpr31; | |
1557 | DWORD Cr; | |
1558 | DWORD Xer; | |
1559 | DWORD Msr; | |
1560 | DWORD Iar; | |
1561 | DWORD Lr; | |
1562 | DWORD Ctr; | |
1563 | DWORD ContextFlags; | |
1564 | DWORD Fill[3]; | |
1565 | DWORD Dr0; | |
1566 | DWORD Dr1; | |
1567 | DWORD Dr2; | |
1568 | DWORD Dr3; | |
1569 | DWORD Dr4; | |
1570 | DWORD Dr5; | |
1571 | DWORD Dr6; | |
1572 | DWORD Dr7; | |
1573 | } CONTEXT; | |
1574 | #elif defined(_ALPHA_) | |
1575 | #define CONTEXT_ALPHA 0x20000 | |
1576 | #define CONTEXT_CONTROL (CONTEXT_ALPHA|1L) | |
1577 | #define CONTEXT_FLOATING_POINT (CONTEXT_ALPHA|2L) | |
1578 | #define CONTEXT_INTEGER (CONTEXT_ALPHA|4L) | |
1579 | #define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_FLOATING_POINT|CONTEXT_INTEGER) | |
1580 | typedef struct _CONTEXT { | |
1581 | ULONGLONG FltF0; | |
1582 | ULONGLONG FltF1; | |
1583 | ULONGLONG FltF2; | |
1584 | ULONGLONG FltF3; | |
1585 | ULONGLONG FltF4; | |
1586 | ULONGLONG FltF5; | |
1587 | ULONGLONG FltF6; | |
1588 | ULONGLONG FltF7; | |
1589 | ULONGLONG FltF8; | |
1590 | ULONGLONG FltF9; | |
1591 | ULONGLONG FltF10; | |
1592 | ULONGLONG FltF11; | |
1593 | ULONGLONG FltF12; | |
1594 | ULONGLONG FltF13; | |
1595 | ULONGLONG FltF14; | |
1596 | ULONGLONG FltF15; | |
1597 | ULONGLONG FltF16; | |
1598 | ULONGLONG FltF17; | |
1599 | ULONGLONG FltF18; | |
1600 | ULONGLONG FltF19; | |
1601 | ULONGLONG FltF20; | |
1602 | ULONGLONG FltF21; | |
1603 | ULONGLONG FltF22; | |
1604 | ULONGLONG FltF23; | |
1605 | ULONGLONG FltF24; | |
1606 | ULONGLONG FltF25; | |
1607 | ULONGLONG FltF26; | |
1608 | ULONGLONG FltF27; | |
1609 | ULONGLONG FltF28; | |
1610 | ULONGLONG FltF29; | |
1611 | ULONGLONG FltF30; | |
1612 | ULONGLONG FltF31; | |
1613 | ULONGLONG IntV0; | |
1614 | ULONGLONG IntT0; | |
1615 | ULONGLONG IntT1; | |
1616 | ULONGLONG IntT2; | |
1617 | ULONGLONG IntT3; | |
1618 | ULONGLONG IntT4; | |
1619 | ULONGLONG IntT5; | |
1620 | ULONGLONG IntT6; | |
1621 | ULONGLONG IntT7; | |
1622 | ULONGLONG IntS0; | |
1623 | ULONGLONG IntS1; | |
1624 | ULONGLONG IntS2; | |
1625 | ULONGLONG IntS3; | |
1626 | ULONGLONG IntS4; | |
1627 | ULONGLONG IntS5; | |
1628 | ULONGLONG IntFp; | |
1629 | ULONGLONG IntA0; | |
1630 | ULONGLONG IntA1; | |
1631 | ULONGLONG IntA2; | |
1632 | ULONGLONG IntA3; | |
1633 | ULONGLONG IntA4; | |
1634 | ULONGLONG IntA5; | |
1635 | ULONGLONG IntT8; | |
1636 | ULONGLONG IntT9; | |
1637 | ULONGLONG IntT10; | |
1638 | ULONGLONG IntT11; | |
1639 | ULONGLONG IntRa; | |
1640 | ULONGLONG IntT12; | |
1641 | ULONGLONG IntAt; | |
1642 | ULONGLONG IntGp; | |
1643 | ULONGLONG IntSp; | |
1644 | ULONGLONG IntZero; | |
1645 | ULONGLONG Fpcr; | |
1646 | ULONGLONG SoftFpcr; | |
1647 | ULONGLONG Fir; | |
1648 | DWORD Psr; | |
1649 | DWORD ContextFlags; | |
1650 | DWORD Fill[4]; | |
1bee0008 | 1651 | } CONTEXT; |
1fd5e000 CF |
1652 | #elif defined(SHx) |
1653 | ||
1654 | /* These are the debug or break registers on the SH3 */ | |
1655 | typedef struct _DEBUG_REGISTERS { | |
baf428f0 EB |
1656 | ULONG BarA; |
1657 | UCHAR BasrA; | |
1658 | UCHAR BamrA; | |
1659 | USHORT BbrA; | |
1660 | ULONG BarB; | |
1661 | UCHAR BasrB; | |
1662 | UCHAR BamrB; | |
1663 | USHORT BbrB; | |
1664 | ULONG BdrB; | |
1665 | ULONG BdmrB; | |
1666 | USHORT Brcr; | |
1667 | USHORT Align; | |
1fd5e000 CF |
1668 | } DEBUG_REGISTERS, *PDEBUG_REGISTERS; |
1669 | ||
1670 | /* The following flags control the contents of the CONTEXT structure. */ | |
1671 | ||
1672 | #define CONTEXT_SH3 0x00000040 | |
1673 | #define CONTEXT_SH4 0x000000c0 /* CONTEXT_SH3 | 0x80 - must contain the SH3 bits */ | |
1674 | ||
1675 | #ifdef SH3 | |
1676 | #define CONTEXT_CONTROL (CONTEXT_SH3 | 0x00000001L) | |
1677 | #define CONTEXT_INTEGER (CONTEXT_SH3 | 0x00000002L) | |
1678 | #define CONTEXT_DEBUG_REGISTERS (CONTEXT_SH3 | 0x00000008L) | |
1679 | #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_DEBUG_REGISTERS) | |
1680 | #else /* SH4 */ | |
1681 | #define CONTEXT_CONTROL (CONTEXT_SH4 | 0x00000001L) | |
1682 | #define CONTEXT_INTEGER (CONTEXT_SH4 | 0x00000002L) | |
1683 | #define CONTEXT_DEBUG_REGISTERS (CONTEXT_SH4 | 0x00000008L) | |
1684 | #define CONTEXT_FLOATING_POINT (CONTEXT_SH4 | 0x00000004L) | |
1685 | #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_DEBUG_REGISTERS | CONTEXT_FLOATING_POINT) | |
1686 | #endif | |
1687 | ||
1688 | /* Context Frame */ | |
1689 | ||
1690 | /* This frame is used to store a limited processor context into the */ | |
1691 | /* Thread structure for CPUs which have no floating point support. */ | |
1692 | ||
1693 | typedef struct _CONTEXT { | |
baf428f0 EB |
1694 | /* The flags values within this flag control the contents of */ |
1695 | /* a CONTEXT record. */ | |
1fd5e000 | 1696 | |
baf428f0 EB |
1697 | /* If the context record is used as an input parameter, then */ |
1698 | /* for each portion of the context record controlled by a flag */ | |
1699 | /* whose value is set, it is assumed that that portion of the */ | |
1700 | /* context record contains valid context. If the context record */ | |
1701 | /* is being used to modify a thread's context, then only that */ | |
1702 | /* portion of the threads context will be modified. */ | |
1fd5e000 | 1703 | |
baf428f0 EB |
1704 | /* If the context record is used as an IN OUT parameter to capture */ |
1705 | /* the context of a thread, then only those portions of the thread's */ | |
1706 | /* context corresponding to set flags will be returned. */ | |
1fd5e000 | 1707 | |
baf428f0 | 1708 | /* The context record is never used as an OUT only parameter. */ |
1fd5e000 CF |
1709 | |
1710 | ||
baf428f0 | 1711 | ULONG ContextFlags; |
1fd5e000 | 1712 | |
baf428f0 EB |
1713 | /* This section is specified/returned if the ContextFlags word contains */ |
1714 | /* the flag CONTEXT_INTEGER. */ | |
1fd5e000 | 1715 | |
baf428f0 EB |
1716 | /* N.B. The registers RA and R15 are defined in this section, but are */ |
1717 | /* considered part of the control context rather than part of the integer */ | |
1718 | /* context. */ | |
1fd5e000 CF |
1719 | |
1720 | ULONG PR; | |
1721 | ULONG MACH; | |
1722 | ULONG MACL; | |
1723 | ULONG GBR; | |
1724 | ULONG R0; | |
1725 | ULONG R1; | |
1726 | ULONG R2; | |
1727 | ULONG R3; | |
1728 | ULONG R4; | |
1729 | ULONG R5; | |
1730 | ULONG R6; | |
1731 | ULONG R7; | |
1732 | ULONG R8; | |
1733 | ULONG R9; | |
1734 | ULONG R10; | |
1735 | ULONG R11; | |
1736 | ULONG R12; | |
1737 | ULONG R13; | |
1738 | ULONG R14; | |
1739 | ULONG R15; | |
1740 | ||
baf428f0 EB |
1741 | /* This section is specified/returned if the ContextFlags word contains */ |
1742 | /* the flag CONTEXT_CONTROL. */ | |
1fd5e000 | 1743 | |
baf428f0 EB |
1744 | /* N.B. The registers r15 and ra are defined in the integer section, */ |
1745 | /* but are considered part of the control context rather than part of */ | |
1746 | /* the integer context. */ | |
1fd5e000 | 1747 | |
baf428f0 EB |
1748 | ULONG Fir; |
1749 | ULONG Psr; | |
1fd5e000 CF |
1750 | |
1751 | #if !defined(SH3e) && !defined(SH4) | |
1752 | ULONG OldStuff[2]; | |
baf428f0 | 1753 | DEBUG_REGISTERS DebugRegisters; |
1fd5e000 CF |
1754 | #else |
1755 | ULONG Fpscr; | |
1756 | ULONG Fpul; | |
1757 | ULONG FRegs[16]; | |
1758 | #if defined(SH4) | |
1759 | ULONG xFRegs[16]; | |
1760 | #endif | |
1761 | #endif | |
1bee0008 | 1762 | } CONTEXT; |
1fd5e000 CF |
1763 | |
1764 | #elif defined(MIPS) | |
1765 | ||
1766 | /* The following flags control the contents of the CONTEXT structure. */ | |
1767 | ||
1768 | #define CONTEXT_R4000 0x00010000 /* r4000 context */ | |
1769 | ||
1770 | #define CONTEXT_CONTROL (CONTEXT_R4000 | 0x00000001L) | |
1771 | #define CONTEXT_FLOATING_POINT (CONTEXT_R4000 | 0x00000002L) | |
1772 | #define CONTEXT_INTEGER (CONTEXT_R4000 | 0x00000004L) | |
1773 | ||
1774 | #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) | |
1775 | ||
1776 | /* Context Frame */ | |
1777 | ||
1778 | /* N.B. This frame must be exactly a multiple of 16 bytes in length. */ | |
1779 | ||
1780 | /* This frame has a several purposes: 1) it is used as an argument to */ | |
1781 | /* NtContinue, 2) it is used to constuct a call frame for APC delivery, */ | |
1782 | /* 3) it is used to construct a call frame for exception dispatching */ | |
1783 | /* in user mode, and 4) it is used in the user level thread creation */ | |
1784 | /* routines. */ | |
1785 | ||
1786 | /* The layout of the record conforms to a standard call frame. */ | |
1787 | ||
1788 | ||
1789 | typedef struct _CONTEXT { | |
1790 | ||
baf428f0 EB |
1791 | /* This section is always present and is used as an argument build */ |
1792 | /* area. */ | |
1793 | ||
1794 | DWORD Argument[4]; | |
1795 | ||
1796 | /* This section is specified/returned if the ContextFlags word contains */ | |
1797 | /* the flag CONTEXT_FLOATING_POINT. */ | |
1798 | ||
1799 | DWORD FltF0; | |
1800 | DWORD FltF1; | |
1801 | DWORD FltF2; | |
1802 | DWORD FltF3; | |
1803 | DWORD FltF4; | |
1804 | DWORD FltF5; | |
1805 | DWORD FltF6; | |
1806 | DWORD FltF7; | |
1807 | DWORD FltF8; | |
1808 | DWORD FltF9; | |
1809 | DWORD FltF10; | |
1810 | DWORD FltF11; | |
1811 | DWORD FltF12; | |
1812 | DWORD FltF13; | |
1813 | DWORD FltF14; | |
1814 | DWORD FltF15; | |
1815 | DWORD FltF16; | |
1816 | DWORD FltF17; | |
1817 | DWORD FltF18; | |
1818 | DWORD FltF19; | |
1819 | DWORD FltF20; | |
1820 | DWORD FltF21; | |
1821 | DWORD FltF22; | |
1822 | DWORD FltF23; | |
1823 | DWORD FltF24; | |
1824 | DWORD FltF25; | |
1825 | DWORD FltF26; | |
1826 | DWORD FltF27; | |
1827 | DWORD FltF28; | |
1828 | DWORD FltF29; | |
1829 | DWORD FltF30; | |
1830 | DWORD FltF31; | |
1831 | ||
1832 | /* This section is specified/returned if the ContextFlags word contains */ | |
1833 | /* the flag CONTEXT_INTEGER. */ | |
1834 | ||
1835 | /* N.B. The registers gp, sp, and ra are defined in this section, but are */ | |
1836 | /* considered part of the control context rather than part of the integer */ | |
1837 | /* context. */ | |
1838 | ||
1839 | /* N.B. Register zero is not stored in the frame. */ | |
1840 | ||
1841 | DWORD IntZero; | |
1842 | DWORD IntAt; | |
1843 | DWORD IntV0; | |
1844 | DWORD IntV1; | |
1845 | DWORD IntA0; | |
1846 | DWORD IntA1; | |
1847 | DWORD IntA2; | |
1848 | DWORD IntA3; | |
1849 | DWORD IntT0; | |
1850 | DWORD IntT1; | |
1851 | DWORD IntT2; | |
1852 | DWORD IntT3; | |
1853 | DWORD IntT4; | |
1854 | DWORD IntT5; | |
1855 | DWORD IntT6; | |
1856 | DWORD IntT7; | |
1857 | DWORD IntS0; | |
1858 | DWORD IntS1; | |
1859 | DWORD IntS2; | |
1860 | DWORD IntS3; | |
1861 | DWORD IntS4; | |
1862 | DWORD IntS5; | |
1863 | DWORD IntS6; | |
1864 | DWORD IntS7; | |
1865 | DWORD IntT8; | |
1866 | DWORD IntT9; | |
1867 | DWORD IntK0; | |
1868 | DWORD IntK1; | |
1869 | DWORD IntGp; | |
1870 | DWORD IntSp; | |
1871 | DWORD IntS8; | |
1872 | DWORD IntRa; | |
1873 | DWORD IntLo; | |
1874 | DWORD IntHi; | |
1875 | ||
1876 | /* This section is specified/returned if the ContextFlags word contains */ | |
1877 | /* the flag CONTEXT_FLOATING_POINT. */ | |
1878 | ||
1879 | DWORD Fsr; | |
1880 | ||
1881 | /* This section is specified/returned if the ContextFlags word contains */ | |
1882 | /* the flag CONTEXT_CONTROL. */ | |
1883 | ||
1884 | /* N.B. The registers gp, sp, and ra are defined in the integer section, */ | |
1885 | /* but are considered part of the control context rather than part of */ | |
1886 | /* the integer context. */ | |
1887 | ||
1888 | DWORD Fir; | |
1889 | DWORD Psr; | |
1890 | ||
1891 | /* The flags values within this flag control the contents of */ | |
1892 | /* a CONTEXT record. */ | |
1893 | ||
1894 | /* If the context record is used as an input parameter, then */ | |
1895 | /* for each portion of the context record controlled by a flag */ | |
1896 | /* whose value is set, it is assumed that that portion of the */ | |
1897 | /* context record contains valid context. If the context record */ | |
1898 | /* is being used to modify a thread's context, then only that */ | |
1899 | /* portion of the threads context will be modified. */ | |
1900 | ||
1901 | /* If the context record is used as an IN OUT parameter to capture */ | |
1902 | /* the context of a thread, then only those portions of the thread's */ | |
1903 | /* context corresponding to set flags will be returned. */ | |
1904 | ||
1905 | /* The context record is never used as an OUT only parameter. */ | |
1906 | ||
1907 | DWORD ContextFlags; | |
1908 | ||
1909 | DWORD Fill[2]; | |
1fd5e000 | 1910 | |
1bee0008 | 1911 | } CONTEXT; |
1fd5e000 | 1912 | #elif defined(ARM) |
44506780 EB |
1913 | |
1914 | /* The following flags control the contents of the CONTEXT structure. */ | |
1fd5e000 CF |
1915 | |
1916 | #define CONTEXT_ARM 0x0000040 | |
1917 | #define CONTEXT_CONTROL (CONTEXT_ARM | 0x00000001L) | |
1918 | #define CONTEXT_INTEGER (CONTEXT_ARM | 0x00000002L) | |
1919 | ||
1920 | #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER) | |
1921 | ||
1922 | typedef struct _CONTEXT { | |
baf428f0 EB |
1923 | /* The flags values within this flag control the contents of |
1924 | a CONTEXT record. | |
1925 | ||
1926 | If the context record is used as an input parameter, then | |
1927 | for each portion of the context record controlled by a flag | |
1928 | whose value is set, it is assumed that that portion of the | |
1929 | context record contains valid context. If the context record | |
1930 | is being used to modify a thread's context, then only that | |
1931 | portion of the threads context will be modified. | |
1932 | ||
1933 | If the context record is used as an IN OUT parameter to capture | |
1934 | the context of a thread, then only those portions of the thread's | |
1935 | context corresponding to set flags will be returned. | |
1936 | ||
1937 | The context record is never used as an OUT only parameter. */ | |
1938 | ||
1939 | ULONG ContextFlags; | |
1940 | ||
1941 | /* This section is specified/returned if the ContextFlags word contains | |
1942 | the flag CONTEXT_INTEGER. */ | |
1943 | ULONG R0; | |
1944 | ULONG R1; | |
1945 | ULONG R2; | |
1946 | ULONG R3; | |
1947 | ULONG R4; | |
1948 | ULONG R5; | |
1949 | ULONG R6; | |
1950 | ULONG R7; | |
1951 | ULONG R8; | |
1952 | ULONG R9; | |
1953 | ULONG R10; | |
1954 | ULONG R11; | |
1955 | ULONG R12; | |
1956 | ||
1957 | ULONG Sp; | |
1958 | ULONG Lr; | |
1959 | ULONG Pc; | |
1960 | ULONG Psr; | |
1bee0008 | 1961 | } CONTEXT; |
1fd5e000 CF |
1962 | |
1963 | #else | |
1964 | #error "undefined processor type" | |
1965 | #endif | |
1966 | typedef CONTEXT *PCONTEXT,*LPCONTEXT; | |
1967 | typedef struct _EXCEPTION_RECORD { | |
1968 | DWORD ExceptionCode; | |
1969 | DWORD ExceptionFlags; | |
1970 | struct _EXCEPTION_RECORD *ExceptionRecord; | |
1971 | PVOID ExceptionAddress; | |
1972 | DWORD NumberParameters; | |
1973 | DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; | |
c344492c | 1974 | } EXCEPTION_RECORD,*PEXCEPTION_RECORD,*LPEXCEPTION_RECORD; |
1fd5e000 CF |
1975 | typedef struct _EXCEPTION_POINTERS { |
1976 | PEXCEPTION_RECORD ExceptionRecord; | |
1977 | PCONTEXT ContextRecord; | |
1978 | } EXCEPTION_POINTERS,*PEXCEPTION_POINTERS,*LPEXCEPTION_POINTERS; | |
1979 | typedef union _LARGE_INTEGER { | |
d1b093d5 EB |
1980 | struct { |
1981 | DWORD LowPart; | |
1982 | LONG HighPart; | |
1983 | } u; | |
e078566c | 1984 | #if ! defined(NONAMELESSUNION) || defined(__cplusplus) |
7141383a | 1985 | _ANONYMOUS_STRUCT struct { |
d1b093d5 EB |
1986 | DWORD LowPart; |
1987 | LONG HighPart; | |
1988 | }; | |
e078566c | 1989 | #endif /* NONAMELESSUNION */ |
d1b093d5 EB |
1990 | LONGLONG QuadPart; |
1991 | } LARGE_INTEGER, *PLARGE_INTEGER; | |
1fd5e000 | 1992 | typedef union _ULARGE_INTEGER { |
d1b093d5 EB |
1993 | struct { |
1994 | DWORD LowPart; | |
1995 | DWORD HighPart; | |
1996 | } u; | |
e078566c | 1997 | #if ! defined(NONAMELESSUNION) || defined(__cplusplus) |
7141383a | 1998 | _ANONYMOUS_STRUCT struct { |
d1b093d5 EB |
1999 | DWORD LowPart; |
2000 | DWORD HighPart; | |
2001 | }; | |
e078566c | 2002 | #endif /* NONAMELESSUNION */ |
d1b093d5 EB |
2003 | ULONGLONG QuadPart; |
2004 | } ULARGE_INTEGER, *PULARGE_INTEGER; | |
1fd5e000 CF |
2005 | typedef LARGE_INTEGER LUID,*PLUID; |
2006 | #pragma pack(push,4) | |
2007 | typedef struct _LUID_AND_ATTRIBUTES { | |
2008 | LUID Luid; | |
2009 | DWORD Attributes; | |
7c00c9bd | 2010 | } LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES; |
1fd5e000 CF |
2011 | #pragma pack(pop) |
2012 | typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; | |
2013 | typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; | |
2014 | typedef struct _PRIVILEGE_SET { | |
2015 | DWORD PrivilegeCount; | |
2016 | DWORD Control; | |
2017 | LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; | |
2018 | } PRIVILEGE_SET,*PPRIVILEGE_SET; | |
2019 | typedef struct _SECURITY_ATTRIBUTES { | |
2020 | DWORD nLength; | |
2021 | LPVOID lpSecurityDescriptor; | |
2022 | BOOL bInheritHandle; | |
2023 | } SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES; | |
2024 | typedef enum _SECURITY_IMPERSONATION_LEVEL { | |
2025 | SecurityAnonymous, | |
2026 | SecurityIdentification, | |
2027 | SecurityImpersonation, | |
2028 | SecurityDelegation | |
7c00c9bd | 2029 | } SECURITY_IMPERSONATION_LEVEL,*PSECURITY_IMPERSONATION_LEVEL; |
1fd5e000 CF |
2030 | typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,*PSECURITY_CONTEXT_TRACKING_MODE; |
2031 | typedef struct _SECURITY_QUALITY_OF_SERVICE { | |
2032 | DWORD Length; | |
2033 | SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; | |
2034 | SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; | |
2035 | BOOLEAN EffectiveOnly; | |
2036 | } SECURITY_QUALITY_OF_SERVICE,*PSECURITY_QUALITY_OF_SERVICE; | |
2037 | typedef PVOID PACCESS_TOKEN; | |
2038 | typedef struct _SE_IMPERSONATION_STATE { | |
2039 | PACCESS_TOKEN Token; | |
2040 | BOOLEAN CopyOnOpen; | |
2041 | BOOLEAN EffectiveOnly; | |
2042 | SECURITY_IMPERSONATION_LEVEL Level; | |
2043 | } SE_IMPERSONATION_STATE,*PSE_IMPERSONATION_STATE; | |
1fd5e000 CF |
2044 | typedef struct _SID_IDENTIFIER_AUTHORITY { |
2045 | BYTE Value[6]; | |
2046 | } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; | |
1fd5e000 CF |
2047 | typedef PVOID PSID; |
2048 | typedef struct _SID { | |
2049 | BYTE Revision; | |
2050 | BYTE SubAuthorityCount; | |
2051 | SID_IDENTIFIER_AUTHORITY IdentifierAuthority; | |
2052 | DWORD SubAuthority[ANYSIZE_ARRAY]; | |
2053 | } SID, *PISID; | |
1fd5e000 CF |
2054 | typedef struct _SID_AND_ATTRIBUTES { |
2055 | PSID Sid; | |
2056 | DWORD Attributes; | |
7c00c9bd | 2057 | } SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES; |
1fd5e000 CF |
2058 | typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; |
2059 | typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY; | |
2060 | typedef struct _TOKEN_SOURCE { | |
baf428f0 | 2061 | CHAR SourceName[TOKEN_SOURCE_LENGTH]; |
1fd5e000 | 2062 | LUID SourceIdentifier; |
baf428f0 | 2063 | } TOKEN_SOURCE,*PTOKEN_SOURCE; |
1fd5e000 CF |
2064 | typedef struct _TOKEN_CONTROL { |
2065 | LUID TokenId; | |
2066 | LUID AuthenticationId; | |
2067 | LUID ModifiedId; | |
2068 | TOKEN_SOURCE TokenSource; | |
baf428f0 | 2069 | } TOKEN_CONTROL,*PTOKEN_CONTROL; |
1fd5e000 CF |
2070 | typedef struct _TOKEN_DEFAULT_DACL { |
2071 | PACL DefaultDacl; | |
631af2e6 | 2072 | } TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL; |
1fd5e000 CF |
2073 | typedef struct _TOKEN_GROUPS { |
2074 | DWORD GroupCount; | |
2075 | SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; | |
2076 | } TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS; | |
2077 | typedef struct _TOKEN_OWNER { | |
2078 | PSID Owner; | |
631af2e6 | 2079 | } TOKEN_OWNER,*PTOKEN_OWNER; |
1fd5e000 CF |
2080 | typedef struct _TOKEN_PRIMARY_GROUP { |
2081 | PSID PrimaryGroup; | |
631af2e6 | 2082 | } TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP; |
1fd5e000 CF |
2083 | typedef struct _TOKEN_PRIVILEGES { |
2084 | DWORD PrivilegeCount; | |
2085 | LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; | |
2086 | } TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES; | |
2df2984b DP |
2087 | typedef enum tagTOKEN_TYPE { |
2088 | TokenPrimary = 1, | |
2089 | TokenImpersonation | |
2090 | } TOKEN_TYPE,*PTOKEN_TYPE; | |
1fd5e000 CF |
2091 | typedef struct _TOKEN_STATISTICS { |
2092 | LUID TokenId; | |
2093 | LUID AuthenticationId; | |
2094 | LARGE_INTEGER ExpirationTime; | |
2095 | TOKEN_TYPE TokenType; | |
2096 | SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; | |
2097 | DWORD DynamicCharged; | |
2098 | DWORD DynamicAvailable; | |
2099 | DWORD GroupCount; | |
2100 | DWORD PrivilegeCount; | |
2101 | LUID ModifiedId; | |
7c00c9bd | 2102 | } TOKEN_STATISTICS, *PTOKEN_STATISTICS; |
1fd5e000 CF |
2103 | typedef struct _TOKEN_USER { |
2104 | SID_AND_ATTRIBUTES User; | |
046fcbed | 2105 | } TOKEN_USER, *PTOKEN_USER; |
1fd5e000 CF |
2106 | typedef DWORD SECURITY_INFORMATION,*PSECURITY_INFORMATION; |
2107 | typedef WORD SECURITY_DESCRIPTOR_CONTROL,*PSECURITY_DESCRIPTOR_CONTROL; | |
2108 | typedef struct _SECURITY_DESCRIPTOR { | |
2109 | BYTE Revision; | |
2110 | BYTE Sbz1; | |
2111 | SECURITY_DESCRIPTOR_CONTROL Control; | |
2112 | PSID Owner; | |
2113 | PSID Group; | |
2114 | PACL Sacl; | |
2115 | PACL Dacl; | |
2116 | } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; | |
2117 | typedef enum _TOKEN_INFORMATION_CLASS { | |
2118 | TokenUser=1,TokenGroups,TokenPrivileges,TokenOwner, | |
2119 | TokenPrimaryGroup,TokenDefaultDacl,TokenSource,TokenType, | |
54224339 | 2120 | TokenImpersonationLevel,TokenStatistics,TokenRestrictedSids, |
baf428f0 | 2121 | TokenSessionId |
1fd5e000 CF |
2122 | } TOKEN_INFORMATION_CLASS; |
2123 | typedef enum _SID_NAME_USE { | |
2df2984b DP |
2124 | SidTypeUser=1,SidTypeGroup,SidTypeDomain,SidTypeAlias, |
2125 | SidTypeWellKnownGroup,SidTypeDeletedAccount,SidTypeInvalid, | |
2126 | SidTypeUnknown | |
1fd5e000 | 2127 | } SID_NAME_USE,*PSID_NAME_USE; |
54224339 | 2128 | typedef struct _QUOTA_LIMITS { |
baf428f0 EB |
2129 | SIZE_T PagedPoolLimit; |
2130 | SIZE_T NonPagedPoolLimit; | |
2131 | SIZE_T MinimumWorkingSetSize; | |
2132 | SIZE_T MaximumWorkingSetSize; | |
2133 | SIZE_T PagefileLimit; | |
54224339 | 2134 | LARGE_INTEGER TimeLimit; |
baf428f0 EB |
2135 | } QUOTA_LIMITS,*PQUOTA_LIMITS; |
2136 | typedef struct _IO_COUNTERS { | |
2137 | ULONGLONG ReadOperationCount; | |
2138 | ULONGLONG WriteOperationCount; | |
2139 | ULONGLONG OtherOperationCount; | |
2140 | ULONGLONG ReadTransferCount; | |
2141 | ULONGLONG WriteTransferCount; | |
2142 | ULONGLONG OtherTransferCount; | |
2143 | } IO_COUNTERS, *PIO_COUNTERS; | |
1fd5e000 CF |
2144 | typedef struct _FILE_NOTIFY_INFORMATION { |
2145 | DWORD NextEntryOffset; | |
2146 | DWORD Action; | |
2147 | DWORD FileNameLength; | |
2148 | WCHAR FileName[1]; | |
2149 | } FILE_NOTIFY_INFORMATION,*PFILE_NOTIFY_INFORMATION; | |
2150 | typedef struct _TAPE_ERASE { | |
2151 | DWORD Type; | |
2152 | BOOLEAN Immediate; | |
2153 | } TAPE_ERASE,*PTAPE_ERASE; | |
2154 | typedef struct _TAPE_GET_DRIVE_PARAMETERS { | |
2155 | BOOLEAN ECC; | |
2156 | BOOLEAN Compression; | |
2157 | BOOLEAN DataPadding; | |
2158 | BOOLEAN ReportSetmarks; | |
2159 | DWORD DefaultBlockSize; | |
2160 | DWORD MaximumBlockSize; | |
2161 | DWORD MinimumBlockSize; | |
2162 | DWORD MaximumPartitionCount; | |
2163 | DWORD FeaturesLow; | |
2164 | DWORD FeaturesHigh; | |
2165 | DWORD EOTWarningZoneSize; | |
2166 | } TAPE_GET_DRIVE_PARAMETERS,*PTAPE_GET_DRIVE_PARAMETERS; | |
2167 | typedef struct _TAPE_GET_MEDIA_PARAMETERS { | |
2168 | LARGE_INTEGER Capacity; | |
2169 | LARGE_INTEGER Remaining; | |
2170 | DWORD BlockSize; | |
2171 | DWORD PartitionCount; | |
2172 | BOOLEAN WriteProtected; | |
2173 | } TAPE_GET_MEDIA_PARAMETERS,*PTAPE_GET_MEDIA_PARAMETERS; | |
2174 | typedef struct _TAPE_GET_POSITION { | |
2175 | ULONG Type; | |
2176 | ULONG Partition; | |
2177 | ULONG OffsetLow; | |
2178 | ULONG OffsetHigh; | |
2179 | } TAPE_GET_POSITION,*PTAPE_GET_POSITION; | |
2180 | typedef struct _TAPE_PREPARE { | |
2181 | DWORD Operation; | |
2182 | BOOLEAN Immediate; | |
2183 | } TAPE_PREPARE,*PTAPE_PREPARE; | |
2184 | typedef struct _TAPE_SET_DRIVE_PARAMETERS { | |
2185 | BOOLEAN ECC; | |
2186 | BOOLEAN Compression; | |
2187 | BOOLEAN DataPadding; | |
2188 | BOOLEAN ReportSetmarks; | |
2189 | ULONG EOTWarningZoneSize; | |
2190 | } TAPE_SET_DRIVE_PARAMETERS,*PTAPE_SET_DRIVE_PARAMETERS; | |
2191 | typedef struct _TAPE_SET_MEDIA_PARAMETERS { | |
2192 | ULONG BlockSize; | |
2193 | } TAPE_SET_MEDIA_PARAMETERS,*PTAPE_SET_MEDIA_PARAMETERS; | |
2194 | typedef struct _TAPE_SET_POSITION { | |
2195 | DWORD Method; | |
2196 | DWORD Partition; | |
2197 | LARGE_INTEGER Offset; | |
2198 | BOOLEAN Immediate; | |
2199 | } TAPE_SET_POSITION,*PTAPE_SET_POSITION; | |
2200 | typedef struct _TAPE_WRITE_MARKS { | |
2201 | DWORD Type; | |
2202 | DWORD Count; | |
2203 | BOOLEAN Immediate; | |
2204 | } TAPE_WRITE_MARKS,*PTAPE_WRITE_MARKS; | |
2205 | typedef struct _TAPE_CREATE_PARTITION { | |
2206 | DWORD Method; | |
2207 | DWORD Count; | |
2208 | DWORD Size; | |
2209 | } TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION; | |
2210 | typedef struct _MEMORY_BASIC_INFORMATION { | |
2211 | PVOID BaseAddress; | |
2212 | PVOID AllocationBase; | |
2213 | DWORD AllocationProtect; | |
2214 | DWORD RegionSize; | |
2215 | DWORD State; | |
2216 | DWORD Protect; | |
2217 | DWORD Type; | |
2218 | } MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION; | |
2219 | typedef struct _MESSAGE_RESOURCE_ENTRY { | |
2220 | WORD Length; | |
2221 | WORD Flags; | |
2222 | BYTE Text[1]; | |
2223 | } MESSAGE_RESOURCE_ENTRY,*PMESSAGE_RESOURCE_ENTRY; | |
2224 | typedef struct _MESSAGE_RESOURCE_BLOCK { | |
2225 | DWORD LowId; | |
2226 | DWORD HighId; | |
2227 | DWORD OffsetToEntries; | |
2228 | } MESSAGE_RESOURCE_BLOCK,*PMESSAGE_RESOURCE_BLOCK; | |
2229 | typedef struct _MESSAGE_RESOURCE_DATA { | |
2230 | DWORD NumberOfBlocks; | |
2231 | MESSAGE_RESOURCE_BLOCK Blocks[1]; | |
2232 | } MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA; | |
2233 | typedef struct _LIST_ENTRY { | |
2234 | struct _LIST_ENTRY *Flink; | |
2235 | struct _LIST_ENTRY *Blink; | |
2236 | } LIST_ENTRY,*PLIST_ENTRY; | |
a681e7f0 DS |
2237 | typedef struct _SINGLE_LIST_ENTRY { |
2238 | struct _SINGLE_LIST_ENTRY *Next; | |
2239 | } SINGLE_LIST_ENTRY,*PSINGLE_LIST_ENTRY; | |
2240 | ||
2241 | #ifndef _SLIST_HEADER_ | |
2242 | #define _SLIST_HEADER_ | |
2243 | #define SLIST_ENTRY SINGLE_LIST_ENTRY | |
2244 | #define _SLIST_ENTRY _SINGLE_LIST_ENTRY | |
2245 | #define PSLIST_ENTRY PSINGLE_LIST_ENTRY | |
2246 | typedef union _SLIST_HEADER { | |
2247 | ULONGLONG Alignment; | |
b0ad6f2b | 2248 | _ANONYMOUS_STRUCT struct { |
a681e7f0 DS |
2249 | SLIST_ENTRY Next; |
2250 | WORD Depth; | |
2251 | WORD Sequence; | |
b0ad6f2b | 2252 | } DUMMYSTRUCTNAME; |
a681e7f0 DS |
2253 | } SLIST_HEADER,*PSLIST_HEADER; |
2254 | #endif /* !_SLIST_HEADER_ */ | |
2255 | ||
1fd5e000 CF |
2256 | typedef struct _RTL_CRITICAL_SECTION_DEBUG { |
2257 | WORD Type; | |
2258 | WORD CreatorBackTraceIndex; | |
2259 | struct _RTL_CRITICAL_SECTION *CriticalSection; | |
2260 | LIST_ENTRY ProcessLocksList; | |
2261 | DWORD EntryCount; | |
2262 | DWORD ContentionCount; | |
2263 | DWORD Spare[2]; | |
2264 | } RTL_CRITICAL_SECTION_DEBUG,*PRTL_CRITICAL_SECTION_DEBUG; | |
2265 | typedef struct _RTL_CRITICAL_SECTION { | |
2266 | PRTL_CRITICAL_SECTION_DEBUG DebugInfo; | |
2267 | LONG LockCount; | |
2268 | LONG RecursionCount; | |
2269 | HANDLE OwningThread; | |
2270 | HANDLE LockSemaphore; | |
2271 | DWORD Reserved; | |
2272 | } RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION; | |
2273 | typedef struct _EVENTLOGRECORD { | |
2274 | DWORD Length; | |
2275 | DWORD Reserved; | |
2276 | DWORD RecordNumber; | |
2277 | DWORD TimeGenerated; | |
2278 | DWORD TimeWritten; | |
2279 | DWORD EventID; | |
2280 | WORD EventType; | |
2281 | WORD NumStrings; | |
2282 | WORD EventCategory; | |
2283 | WORD ReservedFlags; | |
2284 | DWORD ClosingRecordNumber; | |
2285 | DWORD StringOffset; | |
2286 | DWORD UserSidLength; | |
2287 | DWORD UserSidOffset; | |
2288 | DWORD DataLength; | |
2289 | DWORD DataOffset; | |
2290 | } EVENTLOGRECORD,*PEVENTLOGRECORD; | |
6dfcb5a3 EB |
2291 | typedef struct _OSVERSIONINFOA { |
2292 | DWORD dwOSVersionInfoSize; | |
2293 | DWORD dwMajorVersion; | |
2294 | DWORD dwMinorVersion; | |
2295 | DWORD dwBuildNumber; | |
2296 | DWORD dwPlatformId; | |
2297 | CHAR szCSDVersion[128]; | |
2298 | } OSVERSIONINFOA,*POSVERSIONINFOA,*LPOSVERSIONINFOA; | |
2299 | typedef struct _OSVERSIONINFOW { | |
2300 | DWORD dwOSVersionInfoSize; | |
2301 | DWORD dwMajorVersion; | |
2302 | DWORD dwMinorVersion; | |
2303 | DWORD dwBuildNumber; | |
2304 | DWORD dwPlatformId; | |
2305 | WCHAR szCSDVersion[128]; | |
2306 | } OSVERSIONINFOW,*POSVERSIONINFOW,*LPOSVERSIONINFOW; | |
2307 | typedef struct _OSVERSIONINFOEXA { | |
2308 | DWORD dwOSVersionInfoSize; | |
2309 | DWORD dwMajorVersion; | |
2310 | DWORD dwMinorVersion; | |
2311 | DWORD dwBuildNumber; | |
2312 | DWORD dwPlatformId; | |
2313 | CHAR szCSDVersion[128]; | |
2314 | WORD wServicePackMajor; | |
2315 | WORD wServicePackMinor; | |
2316 | WORD wSuiteMask; | |
2317 | BYTE wProductType; | |
2318 | BYTE wReserved; | |
2319 | } OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; | |
2320 | typedef struct _OSVERSIONINFOEXW { | |
2321 | DWORD dwOSVersionInfoSize; | |
2322 | DWORD dwMajorVersion; | |
2323 | DWORD dwMinorVersion; | |
2324 | DWORD dwBuildNumber; | |
2325 | DWORD dwPlatformId; | |
2326 | WCHAR szCSDVersion[128]; | |
2327 | WORD wServicePackMajor; | |
2328 | WORD wServicePackMinor; | |
2329 | WORD wSuiteMask; | |
2330 | BYTE wProductType; | |
2331 | BYTE wReserved; | |
2332 | } OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW; | |
1fd5e000 CF |
2333 | #pragma pack(push,2) |
2334 | typedef struct _IMAGE_VXD_HEADER { | |
2335 | WORD e32_magic; | |
2336 | BYTE e32_border; | |
2337 | BYTE e32_worder; | |
2338 | DWORD e32_level; | |
2339 | WORD e32_cpu; | |
2340 | WORD e32_os; | |
2341 | DWORD e32_ver; | |
2342 | DWORD e32_mflags; | |
2343 | DWORD e32_mpages; | |
2344 | DWORD e32_startobj; | |
2345 | DWORD e32_eip; | |
2346 | DWORD e32_stackobj; | |
2347 | DWORD e32_esp; | |
2348 | DWORD e32_pagesize; | |
2349 | DWORD e32_lastpagesize; | |
2350 | DWORD e32_fixupsize; | |
2351 | DWORD e32_fixupsum; | |
2352 | DWORD e32_ldrsize; | |
2353 | DWORD e32_ldrsum; | |
2354 | DWORD e32_objtab; | |
2355 | DWORD e32_objcnt; | |
2356 | DWORD e32_objmap; | |
2357 | DWORD e32_itermap; | |
2358 | DWORD e32_rsrctab; | |
2359 | DWORD e32_rsrccnt; | |
2360 | DWORD e32_restab; | |
2361 | DWORD e32_enttab; | |
2362 | DWORD e32_dirtab; | |
2363 | DWORD e32_dircnt; | |
2364 | DWORD e32_fpagetab; | |
2365 | DWORD e32_frectab; | |
2366 | DWORD e32_impmod; | |
2367 | DWORD e32_impmodcnt; | |
2368 | DWORD e32_impproc; | |
2369 | DWORD e32_pagesum; | |
2370 | DWORD e32_datapage; | |
2371 | DWORD e32_preload; | |
2372 | DWORD e32_nrestab; | |
2373 | DWORD e32_cbnrestab; | |
2374 | DWORD e32_nressum; | |
2375 | DWORD e32_autodata; | |
2376 | DWORD e32_debuginfo; | |
2377 | DWORD e32_debuglen; | |
2378 | DWORD e32_instpreload; | |
2379 | DWORD e32_instdemand; | |
2380 | DWORD e32_heapsize; | |
2381 | BYTE e32_res3[12]; | |
2382 | DWORD e32_winresoff; | |
2383 | DWORD e32_winreslen; | |
2384 | WORD e32_devid; | |
2385 | WORD e32_ddkver; | |
2386 | } IMAGE_VXD_HEADER,*PIMAGE_VXD_HEADER; | |
2387 | #pragma pack(pop) | |
2388 | #pragma pack(push,4) | |
2389 | typedef struct _IMAGE_FILE_HEADER { | |
2390 | WORD Machine; | |
2391 | WORD NumberOfSections; | |
2392 | DWORD TimeDateStamp; | |
2393 | DWORD PointerToSymbolTable; | |
2394 | DWORD NumberOfSymbols; | |
2395 | WORD SizeOfOptionalHeader; | |
2396 | WORD Characteristics; | |
2397 | } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; | |
2398 | typedef struct _IMAGE_DATA_DIRECTORY { | |
2399 | DWORD VirtualAddress; | |
2400 | DWORD Size; | |
2401 | } IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY; | |
2402 | typedef struct _IMAGE_OPTIONAL_HEADER { | |
2403 | WORD Magic; | |
2404 | BYTE MajorLinkerVersion; | |
2405 | BYTE MinorLinkerVersion; | |
2406 | DWORD SizeOfCode; | |
2407 | DWORD SizeOfInitializedData; | |
2408 | DWORD SizeOfUninitializedData; | |
2409 | DWORD AddressOfEntryPoint; | |
2410 | DWORD BaseOfCode; | |
2411 | DWORD BaseOfData; | |
2412 | DWORD ImageBase; | |
2413 | DWORD SectionAlignment; | |
2414 | DWORD FileAlignment; | |
2415 | WORD MajorOperatingSystemVersion; | |
2416 | WORD MinorOperatingSystemVersion; | |
2417 | WORD MajorImageVersion; | |
2418 | WORD MinorImageVersion; | |
2419 | WORD MajorSubsystemVersion; | |
2420 | WORD MinorSubsystemVersion; | |
2421 | DWORD Reserved1; | |
2422 | DWORD SizeOfImage; | |
2423 | DWORD SizeOfHeaders; | |
2424 | DWORD CheckSum; | |
2425 | WORD Subsystem; | |
2426 | WORD DllCharacteristics; | |
2427 | DWORD SizeOfStackReserve; | |
2428 | DWORD SizeOfStackCommit; | |
2429 | DWORD SizeOfHeapReserve; | |
2430 | DWORD SizeOfHeapCommit; | |
2431 | DWORD LoaderFlags; | |
2432 | DWORD NumberOfRvaAndSizes; | |
2433 | IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; | |
2434 | } IMAGE_OPTIONAL_HEADER,*PIMAGE_OPTIONAL_HEADER; | |
2435 | typedef struct _IMAGE_ROM_OPTIONAL_HEADER { | |
2436 | WORD Magic; | |
2437 | BYTE MajorLinkerVersion; | |
2438 | BYTE MinorLinkerVersion; | |
2439 | DWORD SizeOfCode; | |
2440 | DWORD SizeOfInitializedData; | |
2441 | DWORD SizeOfUninitializedData; | |
2442 | DWORD AddressOfEntryPoint; | |
2443 | DWORD BaseOfCode; | |
2444 | DWORD BaseOfData; | |
2445 | DWORD BaseOfBss; | |
2446 | DWORD GprMask; | |
2447 | DWORD CprMask[4]; | |
2448 | DWORD GpValue; | |
2449 | } IMAGE_ROM_OPTIONAL_HEADER,*PIMAGE_ROM_OPTIONAL_HEADER; | |
2450 | #pragma pack(pop) | |
2451 | #pragma pack(push,2) | |
2452 | typedef struct _IMAGE_DOS_HEADER { | |
2453 | WORD e_magic; | |
2454 | WORD e_cblp; | |
2455 | WORD e_cp; | |
2456 | WORD e_crlc; | |
2457 | WORD e_cparhdr; | |
2458 | WORD e_minalloc; | |
2459 | WORD e_maxalloc; | |
2460 | WORD e_ss; | |
2461 | WORD e_sp; | |
2462 | WORD e_csum; | |
2463 | WORD e_ip; | |
2464 | WORD e_cs; | |
2465 | WORD e_lfarlc; | |
2466 | WORD e_ovno; | |
2467 | WORD e_res[4]; | |
2468 | WORD e_oemid; | |
2469 | WORD e_oeminfo; | |
2470 | WORD e_res2[10]; | |
2471 | LONG e_lfanew; | |
2472 | } IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER; | |
2473 | typedef struct _IMAGE_OS2_HEADER { | |
2474 | WORD ne_magic; | |
2475 | CHAR ne_ver; | |
2476 | CHAR ne_rev; | |
2477 | WORD ne_enttab; | |
2478 | WORD ne_cbenttab; | |
2479 | LONG ne_crc; | |
2480 | WORD ne_flags; | |
2481 | WORD ne_autodata; | |
2482 | WORD ne_heap; | |
2483 | WORD ne_stack; | |
2484 | LONG ne_csip; | |
2485 | LONG ne_sssp; | |
2486 | WORD ne_cseg; | |
2487 | WORD ne_cmod; | |
2488 | WORD ne_cbnrestab; | |
2489 | WORD ne_segtab; | |
2490 | WORD ne_rsrctab; | |
2491 | WORD ne_restab; | |
2492 | WORD ne_modtab; | |
2493 | WORD ne_imptab; | |
2494 | LONG ne_nrestab; | |
2495 | WORD ne_cmovent; | |
2496 | WORD ne_align; | |
2497 | WORD ne_cres; | |
2498 | BYTE ne_exetyp; | |
2499 | BYTE ne_flagsothers; | |
2500 | WORD ne_pretthunks; | |
2501 | WORD ne_psegrefbytes; | |
2502 | WORD ne_swaparea; | |
2503 | WORD ne_expver; | |
2504 | } IMAGE_OS2_HEADER,*PIMAGE_OS2_HEADER; | |
2505 | #pragma pack(pop) | |
2506 | #pragma pack(push,4) | |
2507 | typedef struct _IMAGE_NT_HEADERS { | |
2508 | DWORD Signature; | |
2509 | IMAGE_FILE_HEADER FileHeader; | |
2510 | IMAGE_OPTIONAL_HEADER OptionalHeader; | |
2511 | } IMAGE_NT_HEADERS,*PIMAGE_NT_HEADERS; | |
2512 | typedef struct _IMAGE_ROM_HEADERS { | |
2513 | IMAGE_FILE_HEADER FileHeader; | |
2514 | IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; | |
2515 | } IMAGE_ROM_HEADERS,*PIMAGE_ROM_HEADERS; | |
2516 | typedef struct _IMAGE_SECTION_HEADER { | |
2517 | BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; | |
2518 | union { | |
2519 | DWORD PhysicalAddress; | |
2520 | DWORD VirtualSize; | |
2521 | } Misc; | |
2522 | DWORD VirtualAddress; | |
2523 | DWORD SizeOfRawData; | |
2524 | DWORD PointerToRawData; | |
2525 | DWORD PointerToRelocations; | |
2526 | DWORD PointerToLinenumbers; | |
2527 | WORD NumberOfRelocations; | |
2528 | WORD NumberOfLinenumbers; | |
2529 | DWORD Characteristics; | |
2530 | } IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER; | |
2531 | #pragma pack(pop) | |
2532 | #pragma pack(push,2) | |
2533 | typedef struct _IMAGE_SYMBOL { | |
2534 | union { | |
2535 | BYTE ShortName[8]; | |
2536 | struct { | |
2537 | DWORD Short; | |
2538 | DWORD Long; | |
2539 | } Name; | |
2540 | PBYTE LongName[2]; | |
2541 | } N; | |
2542 | DWORD Value; | |
2543 | SHORT SectionNumber; | |
2544 | WORD Type; | |
2545 | BYTE StorageClass; | |
2546 | BYTE NumberOfAuxSymbols; | |
2547 | } IMAGE_SYMBOL,*PIMAGE_SYMBOL; | |
2548 | typedef union _IMAGE_AUX_SYMBOL { | |
2549 | struct { | |
2550 | DWORD TagIndex; | |
2551 | union { | |
2552 | struct { | |
2553 | WORD Linenumber; | |
2554 | WORD Size; | |
2555 | } LnSz; | |
2556 | DWORD TotalSize; | |
2557 | } Misc; | |
2558 | union { | |
2559 | struct { | |
2560 | DWORD PointerToLinenumber; | |
2561 | DWORD PointerToNextFunction; | |
2562 | } Function; | |
2563 | struct { | |
2564 | WORD Dimension[4]; | |
2565 | } Array; | |
2566 | } FcnAry; | |
2567 | WORD TvIndex; | |
2568 | } Sym; | |
2569 | struct { | |
2570 | BYTE Name[IMAGE_SIZEOF_SYMBOL]; | |
2571 | } File; | |
2572 | struct { | |
2573 | DWORD Length; | |
2574 | WORD NumberOfRelocations; | |
2575 | WORD NumberOfLinenumbers; | |
2576 | DWORD CheckSum; | |
2577 | SHORT Number; | |
2578 | BYTE Selection; | |
2579 | } Section; | |
2580 | } IMAGE_AUX_SYMBOL,*PIMAGE_AUX_SYMBOL; | |
2581 | typedef struct _IMAGE_COFF_SYMBOLS_HEADER { | |
2582 | DWORD NumberOfSymbols; | |
2583 | DWORD LvaToFirstSymbol; | |
2584 | DWORD NumberOfLinenumbers; | |
2585 | DWORD LvaToFirstLinenumber; | |
2586 | DWORD RvaToFirstByteOfCode; | |
2587 | DWORD RvaToLastByteOfCode; | |
2588 | DWORD RvaToFirstByteOfData; | |
2589 | DWORD RvaToLastByteOfData; | |
2590 | } IMAGE_COFF_SYMBOLS_HEADER,*PIMAGE_COFF_SYMBOLS_HEADER; | |
2591 | typedef struct _IMAGE_RELOCATION { | |
91874e20 | 2592 | _ANONYMOUS_UNION union { |
1fd5e000 CF |
2593 | DWORD VirtualAddress; |
2594 | DWORD RelocCount; | |
2595 | } DUMMYUNIONNAME; | |
2596 | DWORD SymbolTableIndex; | |
2597 | WORD Type; | |
2598 | } IMAGE_RELOCATION,*PIMAGE_RELOCATION; | |
2599 | #pragma pack(pop) | |
2600 | #pragma pack(push,4) | |
2601 | typedef struct _IMAGE_BASE_RELOCATION { | |
2602 | DWORD VirtualAddress; | |
2603 | DWORD SizeOfBlock; | |
2604 | } IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION; | |
2605 | #pragma pack(pop) | |
2606 | #pragma pack(push,2) | |
2607 | typedef struct _IMAGE_LINENUMBER { | |
2608 | union { | |
2609 | DWORD SymbolTableIndex; | |
2610 | DWORD VirtualAddress; | |
2611 | } Type; | |
2612 | WORD Linenumber; | |
2613 | } IMAGE_LINENUMBER,*PIMAGE_LINENUMBER; | |
2614 | #pragma pack(pop) | |
2615 | #pragma pack(push,4) | |
2616 | typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { | |
2617 | BYTE Name[16]; | |
2618 | BYTE Date[12]; | |
2619 | BYTE UserID[6]; | |
2620 | BYTE GroupID[6]; | |
2621 | BYTE Mode[8]; | |
2622 | BYTE Size[10]; | |
2623 | BYTE EndHeader[2]; | |
2624 | } IMAGE_ARCHIVE_MEMBER_HEADER,*PIMAGE_ARCHIVE_MEMBER_HEADER; | |
2625 | typedef struct _IMAGE_EXPORT_DIRECTORY { | |
2626 | DWORD Characteristics; | |
2627 | DWORD TimeDateStamp; | |
2628 | WORD MajorVersion; | |
2629 | WORD MinorVersion; | |
2630 | DWORD Name; | |
2631 | DWORD Base; | |
2632 | DWORD NumberOfFunctions; | |
2633 | DWORD NumberOfNames; | |
b188d0f5 LD |
2634 | DWORD AddressOfFunctions; |
2635 | DWORD AddressOfNames; | |
2636 | DWORD AddressOfNameOrdinals; | |
1fd5e000 CF |
2637 | } IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY; |
2638 | typedef struct _IMAGE_IMPORT_BY_NAME { | |
2639 | WORD Hint; | |
2640 | BYTE Name[1]; | |
2641 | } IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME; | |
3adfd509 | 2642 | typedef struct _IMAGE_THUNK_DATA32 { |
1fd5e000 | 2643 | union { |
3adfd509 DS |
2644 | DWORD ForwarderString; |
2645 | DWORD Function; | |
1fd5e000 | 2646 | DWORD Ordinal; |
3adfd509 DS |
2647 | DWORD AddressOfData; |
2648 | } u1; | |
2649 | } IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32; | |
2650 | typedef struct _IMAGE_THUNK_DATA64 { | |
2651 | union { | |
2652 | ULONGLONG ForwarderString; | |
2653 | ULONGLONG Function; | |
2654 | ULONGLONG Ordinal; | |
2655 | ULONGLONG AddressOfData; | |
1fd5e000 | 2656 | } u1; |
3adfd509 DS |
2657 | } IMAGE_THUNK_DATA64, *PIMAGE_THUNK_DATA64; |
2658 | #ifdef __WIN64 | |
2659 | typedef IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA; | |
2660 | typedef PIMAGE_THUNK_DATA64 PIMAGE_THUNK_DATA; | |
2661 | #else | |
2662 | typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; | |
2663 | typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; | |
2664 | #endif | |
1fd5e000 | 2665 | typedef struct _IMAGE_IMPORT_DESCRIPTOR { |
91874e20 | 2666 | _ANONYMOUS_UNION union { |
1fd5e000 | 2667 | DWORD Characteristics; |
3adfd509 | 2668 | DWORD OriginalFirstThunk; |
1fd5e000 CF |
2669 | } DUMMYUNIONNAME; |
2670 | DWORD TimeDateStamp; | |
2671 | DWORD ForwarderChain; | |
2672 | DWORD Name; | |
3adfd509 | 2673 | DWORD FirstThunk; |
1fd5e000 CF |
2674 | } IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR; |
2675 | typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { | |
2676 | DWORD TimeDateStamp; | |
2677 | WORD OffsetModuleName; | |
2678 | WORD NumberOfModuleForwarderRefs; | |
2679 | } IMAGE_BOUND_IMPORT_DESCRIPTOR,*PIMAGE_BOUND_IMPORT_DESCRIPTOR; | |
2680 | typedef struct _IMAGE_BOUND_FORWARDER_REF { | |
2681 | DWORD TimeDateStamp; | |
2682 | WORD OffsetModuleName; | |
2683 | WORD Reserved; | |
2684 | } IMAGE_BOUND_FORWARDER_REF,*PIMAGE_BOUND_FORWARDER_REF; | |
2685 | typedef void(NTAPI *PIMAGE_TLS_CALLBACK)(PVOID,DWORD,PVOID); | |
3adfd509 | 2686 | typedef struct _IMAGE_TLS_DIRECTORY32 { |
1fd5e000 CF |
2687 | DWORD StartAddressOfRawData; |
2688 | DWORD EndAddressOfRawData; | |
3adfd509 DS |
2689 | DWORD AddressOfIndex; |
2690 | DWORD AddressOfCallBacks; | |
1fd5e000 CF |
2691 | DWORD SizeOfZeroFill; |
2692 | DWORD Characteristics; | |
3adfd509 DS |
2693 | } IMAGE_TLS_DIRECTORY32,*PIMAGE_TLS_DIRECTORY32; |
2694 | typedef struct _IMAGE_TLS_DIRECTORY64 { | |
2695 | ULONGLONG StartAddressOfRawData; | |
2696 | ULONGLONG EndAddressOfRawData; | |
2697 | ULONGLONG AddressOfIndex; | |
2698 | ULONGLONG AddressOfCallBacks; | |
2699 | DWORD SizeOfZeroFill; | |
2700 | DWORD Characteristics; | |
2701 | } IMAGE_TLS_DIRECTORY64, *PIMAGE_TLS_DIRECTORY64; | |
2702 | #ifdef __WIN64 | |
2703 | typedef IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY; | |
2704 | typedef PIMAGE_TLS_DIRECTORY64 PIMAGE_TLS_DIRECTORY; | |
2705 | #else | |
2706 | typedef IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; | |
2707 | typedef PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; | |
2708 | #endif | |
1fd5e000 CF |
2709 | typedef struct _IMAGE_RESOURCE_DIRECTORY { |
2710 | DWORD Characteristics; | |
2711 | DWORD TimeDateStamp; | |
2712 | WORD MajorVersion; | |
2713 | WORD MinorVersion; | |
2714 | WORD NumberOfNamedEntries; | |
2715 | WORD NumberOfIdEntries; | |
2716 | } IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY; | |
91874e20 EB |
2717 | _ANONYMOUS_STRUCT typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { |
2718 | _ANONYMOUS_UNION union { | |
2719 | _ANONYMOUS_STRUCT struct { | |
1fd5e000 CF |
2720 | DWORD NameOffset:31; |
2721 | DWORD NameIsString:1; | |
2722 | }DUMMYSTRUCTNAME; | |
2723 | DWORD Name; | |
2724 | WORD Id; | |
2725 | } DUMMYUNIONNAME; | |
91874e20 | 2726 | _ANONYMOUS_UNION union { |
1fd5e000 | 2727 | DWORD OffsetToData; |
91874e20 | 2728 | _ANONYMOUS_STRUCT struct { |
1fd5e000 CF |
2729 | DWORD OffsetToDirectory:31; |
2730 | DWORD DataIsDirectory:1; | |
2731 | } DUMMYSTRUCTNAME2; | |
2732 | } DUMMYUNIONNAME2; | |
2733 | } IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY; | |
2734 | typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { | |
2735 | WORD Length; | |
2736 | CHAR NameString[1]; | |
2737 | } IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING; | |
2738 | typedef struct _IMAGE_RESOURCE_DIR_STRING_U { | |
2739 | WORD Length; | |
2740 | WCHAR NameString[1]; | |
2741 | } IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U; | |
2742 | typedef struct _IMAGE_RESOURCE_DATA_ENTRY { | |
2743 | DWORD OffsetToData; | |
2744 | DWORD Size; | |
2745 | DWORD CodePage; | |
2746 | DWORD Reserved; | |
2747 | } IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY; | |
2748 | typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY { | |
2749 | DWORD Characteristics; | |
2750 | DWORD TimeDateStamp; | |
2751 | WORD MajorVersion; | |
2752 | WORD MinorVersion; | |
2753 | DWORD GlobalFlagsClear; | |
2754 | DWORD GlobalFlagsSet; | |
2755 | DWORD CriticalSectionDefaultTimeout; | |
2756 | DWORD DeCommitFreeBlockThreshold; | |
2757 | DWORD DeCommitTotalFreeThreshold; | |
2758 | PVOID LockPrefixTable; | |
2759 | DWORD MaximumAllocationSize; | |
2760 | DWORD VirtualMemoryThreshold; | |
2761 | DWORD ProcessHeapFlags; | |
2762 | DWORD Reserved[4]; | |
2763 | } IMAGE_LOAD_CONFIG_DIRECTORY,*PIMAGE_LOAD_CONFIG_DIRECTORY; | |
2764 | typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY { | |
2765 | DWORD BeginAddress; | |
2766 | DWORD EndAddress; | |
2767 | PVOID ExceptionHandler; | |
2768 | PVOID HandlerData; | |
2769 | DWORD PrologEndAddress; | |
2770 | } IMAGE_RUNTIME_FUNCTION_ENTRY,*PIMAGE_RUNTIME_FUNCTION_ENTRY; | |
2771 | typedef struct _IMAGE_DEBUG_DIRECTORY { | |
2772 | DWORD Characteristics; | |
2773 | DWORD TimeDateStamp; | |
2774 | WORD MajorVersion; | |
2775 | WORD MinorVersion; | |
2776 | DWORD Type; | |
2777 | DWORD SizeOfData; | |
2778 | DWORD AddressOfRawData; | |
2779 | DWORD PointerToRawData; | |
2780 | } IMAGE_DEBUG_DIRECTORY,*PIMAGE_DEBUG_DIRECTORY; | |
2781 | typedef struct _FPO_DATA { | |
2782 | DWORD ulOffStart; | |
2783 | DWORD cbProcSize; | |
2784 | DWORD cdwLocals; | |
2785 | WORD cdwParams; | |
2786 | WORD cbProlog:8; | |
2787 | WORD cbRegs:3; | |
2788 | WORD fHasSEH:1; | |
2789 | WORD fUseBP:1; | |
2790 | WORD reserved:1; | |
2791 | WORD cbFrame:2; | |
2792 | } FPO_DATA,*PFPO_DATA; | |
2793 | typedef struct _IMAGE_DEBUG_MISC { | |
2794 | DWORD DataType; | |
2795 | DWORD Length; | |
2796 | BOOLEAN Unicode; | |
2797 | BYTE Reserved[3]; | |
2798 | BYTE Data[1]; | |
2799 | } IMAGE_DEBUG_MISC,*PIMAGE_DEBUG_MISC; | |
2800 | typedef struct _IMAGE_FUNCTION_ENTRY { | |
2801 | DWORD StartingAddress; | |
2802 | DWORD EndingAddress; | |
2803 | DWORD EndOfPrologue; | |
2804 | } IMAGE_FUNCTION_ENTRY,*PIMAGE_FUNCTION_ENTRY; | |
2805 | typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { | |
2806 | WORD Signature; | |
2807 | WORD Flags; | |
2808 | WORD Machine; | |
2809 | WORD Characteristics; | |
2810 | DWORD TimeDateStamp; | |
2811 | DWORD CheckSum; | |
2812 | DWORD ImageBase; | |
2813 | DWORD SizeOfImage; | |
2814 | DWORD NumberOfSections; | |
2815 | DWORD ExportedNamesSize; | |
2816 | DWORD DebugDirectorySize; | |
c5e1d3ea DS |
2817 | DWORD SectionAlignment; |
2818 | DWORD Reserved[2]; | |
1fd5e000 CF |
2819 | } IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER; |
2820 | #pragma pack(pop) | |
2821 | typedef enum _CM_SERVICE_NODE_TYPE { | |
2822 | DriverType=SERVICE_KERNEL_DRIVER, | |
2823 | FileSystemType=SERVICE_FILE_SYSTEM_DRIVER, | |
2824 | Win32ServiceOwnProcess=SERVICE_WIN32_OWN_PROCESS, | |
2825 | Win32ServiceShareProcess=SERVICE_WIN32_SHARE_PROCESS, | |
2826 | AdapterType=SERVICE_ADAPTER, | |
2827 | RecognizerType=SERVICE_RECOGNIZER_DRIVER | |
2828 | } SERVICE_NODE_TYPE; | |
2829 | typedef enum _CM_SERVICE_LOAD_TYPE { | |
2830 | BootLoad=SERVICE_BOOT_START, | |
2831 | SystemLoad=SERVICE_SYSTEM_START, | |
2832 | AutoLoad=SERVICE_AUTO_START, | |
2833 | DemandLoad=SERVICE_DEMAND_START, | |
2834 | DisableLoad=SERVICE_DISABLED | |
2835 | } SERVICE_LOAD_TYPE; | |
2836 | typedef enum _CM_ERROR_CONTROL_TYPE { | |
2837 | IgnoreError=SERVICE_ERROR_IGNORE, | |
2838 | NormalError=SERVICE_ERROR_NORMAL, | |
2839 | SevereError=SERVICE_ERROR_SEVERE, | |
2840 | CriticalError=SERVICE_ERROR_CRITICAL | |
2841 | } SERVICE_ERROR_TYPE; | |
6dc88be7 MK |
2842 | typedef struct _NT_TIB { |
2843 | struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; | |
2844 | PVOID StackBase; | |
2845 | PVOID StackLimit; | |
2846 | PVOID SubSystemTib; | |
91874e20 | 2847 | _ANONYMOUS_UNION union { |
6dc88be7 MK |
2848 | PVOID FiberData; |
2849 | DWORD Version; | |
2850 | } DUMMYUNIONNAME; | |
2851 | PVOID ArbitraryUserPointer; | |
2852 | struct _NT_TIB *Self; | |
2853 | } NT_TIB,*PNT_TIB; | |
666b9d7b CV |
2854 | typedef struct _REPARSE_DATA_BUFFER { |
2855 | DWORD ReparseTag; | |
2856 | WORD ReparseDataLength; | |
2857 | WORD Reserved; | |
91874e20 | 2858 | _ANONYMOUS_UNION union { |
666b9d7b CV |
2859 | struct { |
2860 | WORD SubstituteNameOffset; | |
2861 | WORD SubstituteNameLength; | |
2862 | WORD PrintNameOffset; | |
2863 | WORD PrintNameLength; | |
2864 | WCHAR PathBuffer[1]; | |
2865 | } SymbolicLinkReparseBuffer; | |
2866 | struct { | |
2867 | WORD SubstituteNameOffset; | |
2868 | WORD SubstituteNameLength; | |
2869 | WORD PrintNameOffset; | |
2870 | WORD PrintNameLength; | |
2871 | WCHAR PathBuffer[1]; | |
2872 | } MountPointReparseBuffer; | |
2873 | struct { | |
2874 | BYTE DataBuffer[1]; | |
2875 | } GenericReparseBuffer; | |
e078566c | 2876 | } DUMMYUNIONNAME; |
666b9d7b CV |
2877 | } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; |
2878 | typedef struct _REPARSE_GUID_DATA_BUFFER { | |
2879 | DWORD ReparseTag; | |
2880 | WORD ReparseDataLength; | |
2881 | WORD Reserved; | |
2882 | GUID ReparseGuid; | |
2883 | struct { | |
2884 | BYTE DataBuffer[1]; | |
2885 | } GenericReparseBuffer; | |
2886 | } REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; | |
2887 | typedef struct _REPARSE_POINT_INFORMATION { | |
2888 | WORD ReparseDataLength; | |
2889 | WORD UnparsedNameLength; | |
2890 | } REPARSE_POINT_INFORMATION, *PREPARSE_POINT_INFORMATION; | |
6dfcb5a3 | 2891 | |
045d6a99 DS |
2892 | typedef union _FILE_SEGMENT_ELEMENT { |
2893 | PVOID64 Buffer; | |
2894 | ULONGLONG Alignment; | |
2895 | }FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT; | |
2896 | ||
20073893 DS |
2897 | /* JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants */ |
2898 | #define JOB_OBJECT_LIMIT_WORKINGSET 0x0001 | |
2899 | #define JOB_OBJECT_LIMIT_PROCESS_TIME 0x0002 | |
2900 | #define JOB_OBJECT_LIMIT_JOB_TIME 0x0004 | |
2901 | #define JOB_OBJECT_LIMIT_ACTIVE_PROCESS 0x0008 | |
2902 | #define JOB_OBJECT_LIMIT_AFFINITY 0x0010 | |
2903 | #define JOB_OBJECT_LIMIT_PRIORITY_CLASS 0x0020 | |
2904 | #define JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME 0x0040 | |
2905 | #define JOB_OBJECT_LIMIT_SCHEDULING_CLASS 0x0080 | |
2906 | #define JOB_OBJECT_LIMIT_PROCESS_MEMORY 0x0100 | |
2907 | #define JOB_OBJECT_LIMIT_JOB_MEMORY 0x0200 | |
2908 | #define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x0400 | |
2909 | #define JOB_OBJECT_BREAKAWAY_OK 0x0800 | |
2910 | #define JOB_OBJECT_SILENT_BREAKAWAY 0x1000 | |
2911 | ||
2912 | /* JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants */ | |
2913 | #define JOB_OBJECT_UILIMIT_HANDLES 0x0001 | |
2914 | #define JOB_OBJECT_UILIMIT_READCLIPBOARD 0x0002 | |
2915 | #define JOB_OBJECT_UILIMIT_WRITECLIPBOARD 0x0004 | |
2916 | #define JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS 0x0008 | |
2917 | #define JOB_OBJECT_UILIMIT_DISPLAYSETTINGS 0x0010 | |
2918 | #define JOB_OBJECT_UILIMIT_GLOBALATOMS 0x0020 | |
2919 | #define JOB_OBJECT_UILIMIT_DESKTOP 0x0040 | |
2920 | #define JOB_OBJECT_UILIMIT_EXITWINDOWS 0x0080 | |
2921 | ||
2922 | /* JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants */ | |
2923 | #define JOB_OBJECT_SECURITY_NO_ADMIN 0x0001 | |
2924 | #define JOB_OBJECT_SECURITY_RESTRICTED_TOKEN 0x0002 | |
2925 | #define JOB_OBJECT_SECURITY_ONLY_TOKEN 0x0004 | |
2926 | #define JOB_OBJECT_SECURITY_FILTER_TOKENS 0x0008 | |
2927 | ||
2928 | /* JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants */ | |
2929 | #define JOB_OBJECT_TERMINATE_AT_END_OF_JOB 0 | |
2930 | #define JOB_OBJECT_POST_AT_END_OF_JOB 1 | |
2931 | ||
2932 | #define JOB_OBJECT_MSG_END_OF_JOB_TIME 1 | |
2933 | #define JOB_OBJECT_MSG_END_OF_PROCESS_TIME 2 | |
2934 | #define JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT 3 | |
2935 | #define JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO 4 | |
2936 | #define JOB_OBJECT_MSG_NEW_PROCESS 6 | |
2937 | #define JOB_OBJECT_MSG_EXIT_PROCESS 7 | |
2938 | #define JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS 8 | |
2939 | #define JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT 9 | |
2940 | #define JOB_OBJECT_MSG_JOB_MEMORY_LIMIT 10 | |
2941 | ||
5b537130 DS |
2942 | typedef enum _JOBOBJECTINFOCLASS { |
2943 | JobObjectBasicAccountingInformation = 1, | |
2944 | JobObjectBasicLimitInformation, | |
2945 | JobObjectBasicProcessIdList, | |
2946 | JobObjectBasicUIRestrictions, | |
2947 | JobObjectSecurityLimitInformation, | |
2948 | JobObjectEndOfJobTimeInformation, | |
2949 | JobObjectAssociateCompletionPortInformation, | |
2950 | JobObjectBasicAndIoAccountingInformation, | |
2951 | JobObjectExtendedLimitInformation, | |
2952 | JobObjectJobSetInformation, | |
2953 | MaxJobObjectInfoClass | |
2954 | } JOBOBJECTINFOCLASS; | |
2955 | typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { | |
2956 | LARGE_INTEGER TotalUserTime; | |
2957 | LARGE_INTEGER TotalKernelTime; | |
2958 | LARGE_INTEGER ThisPeriodTotalUserTime; | |
2959 | LARGE_INTEGER ThisPeriodTotalKernelTime; | |
2960 | DWORD TotalPageFaultCount; | |
2961 | DWORD TotalProcesses; | |
2962 | DWORD ActiveProcesses; | |
2963 | DWORD TotalTerminatedProcesses; | |
2964 | } JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,*PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; | |
2965 | typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { | |
2966 | LARGE_INTEGER PerProcessUserTimeLimit; | |
2967 | LARGE_INTEGER PerJobUserTimeLimit; | |
2968 | DWORD LimitFlags; | |
2969 | SIZE_T MinimumWorkingSetSize; | |
2970 | SIZE_T MaximumWorkingSetSize; | |
2971 | DWORD ActiveProcessLimit; | |
2972 | ULONG_PTR Affinity; | |
2973 | DWORD PriorityClass; | |
2974 | DWORD SchedulingClass; | |
2975 | } JOBOBJECT_BASIC_LIMIT_INFORMATION,*PJOBOBJECT_BASIC_LIMIT_INFORMATION; | |
2976 | typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { | |
2977 | DWORD NumberOfAssignedProcesses; | |
2978 | DWORD NumberOfProcessIdsInList; | |
2979 | ULONG_PTR ProcessIdList[1]; | |
2980 | } JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST; | |
2981 | typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { | |
2982 | DWORD UIRestrictionsClass; | |
2983 | } JOBOBJECT_BASIC_UI_RESTRICTIONS,*PJOBOBJECT_BASIC_UI_RESTRICTIONS; | |
2984 | typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { | |
2985 | DWORD SecurityLimitFlags; | |
2986 | HANDLE JobToken; | |
2987 | PTOKEN_GROUPS SidsToDisable; | |
2988 | PTOKEN_PRIVILEGES PrivilegesToDelete; | |
2989 | PTOKEN_GROUPS RestrictedSids; | |
2990 | } JOBOBJECT_SECURITY_LIMIT_INFORMATION,*PJOBOBJECT_SECURITY_LIMIT_INFORMATION; | |
2991 | typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { | |
2992 | DWORD EndOfJobTimeAction; | |
2993 | } JOBOBJECT_END_OF_JOB_TIME_INFORMATION,*PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; | |
2994 | typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { | |
2995 | PVOID CompletionKey; | |
2996 | HANDLE CompletionPort; | |
2997 | } JOBOBJECT_ASSOCIATE_COMPLETION_PORT,*PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; | |
2998 | typedef struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { | |
2999 | JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; | |
3000 | IO_COUNTERS IoInfo; | |
3001 | } JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION,*PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; | |
3002 | typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { | |
3003 | JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; | |
3004 | IO_COUNTERS IoInfo; | |
3005 | SIZE_T ProcessMemoryLimit; | |
3006 | SIZE_T JobMemoryLimit; | |
3007 | SIZE_T PeakProcessMemoryUsed; | |
3008 | SIZE_T PeakJobMemoryUsed; | |
3009 | } JOBOBJECT_EXTENDED_LIMIT_INFORMATION,*PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; | |
3010 | typedef struct _JOBOBJECT_JOBSET_INFORMATION { | |
3011 | DWORD MemberLevel; | |
3012 | } JOBOBJECT_JOBSET_INFORMATION,*PJOBOBJECT_JOBSET_INFORMATION; | |
045d6a99 | 3013 | |
20073893 DS |
3014 | /* Fixme: Making these defines conditional on WINVER will break ddk includes */ |
3015 | #if 1 /* (WINVER >= 0x0500) */ | |
3016 | #include <pshpack4.h> | |
3017 | ||
3018 | #define ES_SYSTEM_REQUIRED 0x00000001 | |
3019 | #define ES_DISPLAY_REQUIRED 0x00000002 | |
3020 | #define ES_USER_PRESENT 0x00000004 | |
3021 | #define ES_CONTINUOUS 0x80000000 | |
3022 | ||
3023 | typedef enum _LATENCY_TIME { | |
3024 | LT_DONT_CARE, | |
3025 | LT_LOWEST_LATENCY | |
3026 | } LATENCY_TIME, *PLATENCY_TIME; | |
3027 | ||
3028 | typedef enum _SYSTEM_POWER_STATE { | |
3029 | PowerSystemUnspecified, | |
3030 | PowerSystemWorking, | |
3031 | PowerSystemSleeping1, | |
3032 | PowerSystemSleeping2, | |
3033 | PowerSystemSleeping3, | |
3034 | PowerSystemHibernate, | |
3035 | PowerSystemShutdown, | |
3036 | PowerSystemMaximum | |
3037 | } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; | |
3038 | #define POWER_SYSTEM_MAXIMUM PowerSystemMaximum | |
3039 | ||
3040 | typedef enum { | |
3041 | PowerActionNone, | |
3042 | PowerActionReserved, | |
3043 | PowerActionSleep, | |
3044 | PowerActionHibernate, | |
3045 | PowerActionShutdown, | |
3046 | PowerActionShutdownReset, | |
3047 | PowerActionShutdownOff, | |
3048 | PowerActionWarmEject | |
3049 | } POWER_ACTION, *PPOWER_ACTION; | |
3050 | ||
3051 | typedef enum _DEVICE_POWER_STATE { | |
3052 | PowerDeviceUnspecified, | |
3053 | PowerDeviceD0, | |
3054 | PowerDeviceD1, | |
3055 | PowerDeviceD2, | |
3056 | PowerDeviceD3, | |
3057 | PowerDeviceMaximum | |
3058 | } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; | |
3059 | ||
3060 | typedef struct { | |
3061 | DWORD Granularity; | |
3062 | DWORD Capacity; | |
3063 | } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; | |
3064 | ||
3065 | typedef struct _POWER_ACTION_POLICY { | |
3066 | POWER_ACTION Action; | |
3067 | ULONG Flags; | |
3068 | ULONG EventCode; | |
3069 | } POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY; | |
3070 | ||
3071 | /* POWER_ACTION_POLICY.Flags constants */ | |
3072 | #define POWER_ACTION_QUERY_ALLOWED 0x00000001 | |
3073 | #define POWER_ACTION_UI_ALLOWED 0x00000002 | |
3074 | #define POWER_ACTION_OVERRIDE_APPS 0x00000004 | |
3075 | #define POWER_ACTION_LIGHTEST_FIRST 0x10000000 | |
3076 | #define POWER_ACTION_LOCK_CONSOLE 0x20000000 | |
3077 | #define POWER_ACTION_DISABLE_WAKES 0x40000000 | |
3078 | #define POWER_ACTION_CRITICAL 0x80000000 | |
3079 | ||
3080 | /* POWER_ACTION_POLICY.EventCode constants */ | |
3081 | #define POWER_LEVEL_USER_NOTIFY_TEXT 0x00000001 | |
3082 | #define POWER_LEVEL_USER_NOTIFY_SOUND 0x00000002 | |
3083 | #define POWER_LEVEL_USER_NOTIFY_EXEC 0x00000004 | |
3084 | #define POWER_USER_NOTIFY_BUTTON 0x00000008 | |
3085 | #define POWER_USER_NOTIFY_SHUTDOWN 0x00000010 | |
3086 | #define POWER_FORCE_TRIGGER_RESET 0x80000000 | |
3087 | ||
3088 | #define DISCHARGE_POLICY_CRITICAL 0 | |
3089 | #define DISCHARGE_POLICY_LOW 1 | |
3090 | #define NUM_DISCHARGE_POLICIES 4 | |
3091 | ||
3092 | #define PO_THROTTLE_NONE 0 | |
3093 | #define PO_THROTTLE_CONSTANT 1 | |
3094 | #define PO_THROTTLE_DEGRADE 2 | |
3095 | #define PO_THROTTLE_ADAPTIVE 3 | |
3096 | #define PO_THROTTLE_MAXIMUM 4 | |
3097 | ||
3098 | typedef struct _SYSTEM_POWER_LEVEL { | |
3099 | BOOLEAN Enable; | |
3100 | UCHAR Spare[3]; | |
3101 | ULONG BatteryLevel; | |
3102 | POWER_ACTION_POLICY PowerPolicy; | |
3103 | SYSTEM_POWER_STATE MinSystemState; | |
3104 | } SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL; | |
3105 | ||
3106 | typedef struct _SYSTEM_POWER_POLICY { | |
3107 | ULONG Revision; | |
3108 | POWER_ACTION_POLICY PowerButton; | |
3109 | POWER_ACTION_POLICY SleepButton; | |
3110 | POWER_ACTION_POLICY LidClose; | |
3111 | SYSTEM_POWER_STATE LidOpenWake; | |
3112 | ULONG Reserved; | |
3113 | POWER_ACTION_POLICY Idle; | |
3114 | ULONG IdleTimeout; | |
3115 | UCHAR IdleSensitivity; | |
3116 | UCHAR DynamicThrottle; | |
3117 | UCHAR Spare2[2]; | |
3118 | SYSTEM_POWER_STATE MinSleep; | |
3119 | SYSTEM_POWER_STATE MaxSleep; | |
3120 | SYSTEM_POWER_STATE ReducedLatencySleep; | |
3121 | ULONG WinLogonFlags; | |
3122 | ULONG Spare3; | |
3123 | ULONG DozeS4Timeout; | |
3124 | ULONG BroadcastCapacityResolution; | |
3125 | SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; | |
3126 | ULONG VideoTimeout; | |
3127 | BOOLEAN VideoDimDisplay; | |
3128 | ULONG VideoReserved[3]; | |
3129 | ULONG SpindownTimeout; | |
3130 | BOOLEAN OptimizeForPower; | |
3131 | UCHAR FanThrottleTolerance; | |
3132 | UCHAR ForcedThrottle; | |
3133 | UCHAR MinThrottle; | |
3134 | POWER_ACTION_POLICY OverThrottled; | |
3135 | } SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY; | |
3136 | ||
3137 | typedef struct _SYSTEM_POWER_CAPABILITIES { | |
3138 | BOOLEAN PowerButtonPresent; | |
3139 | BOOLEAN SleepButtonPresent; | |
3140 | BOOLEAN LidPresent; | |
3141 | BOOLEAN SystemS1; | |
3142 | BOOLEAN SystemS2; | |
3143 | BOOLEAN SystemS3; | |
3144 | BOOLEAN SystemS4; | |
3145 | BOOLEAN SystemS5; | |
3146 | BOOLEAN HiberFilePresent; | |
3147 | BOOLEAN FullWake; | |
3148 | BOOLEAN VideoDimPresent; | |
3149 | BOOLEAN ApmPresent; | |
3150 | BOOLEAN UpsPresent; | |
3151 | BOOLEAN ThermalControl; | |
3152 | BOOLEAN ProcessorThrottle; | |
3153 | UCHAR ProcessorMinThrottle; | |
3154 | UCHAR ProcessorMaxThrottle; | |
3155 | UCHAR spare2[4]; | |
3156 | BOOLEAN DiskSpinDown; | |
3157 | UCHAR spare3[8]; | |
3158 | BOOLEAN SystemBatteriesPresent; | |
3159 | BOOLEAN BatteriesAreShortTerm; | |
3160 | BATTERY_REPORTING_SCALE BatteryScale[3]; | |
3161 | SYSTEM_POWER_STATE AcOnLineWake; | |
3162 | SYSTEM_POWER_STATE SoftLidWake; | |
3163 | SYSTEM_POWER_STATE RtcWake; | |
3164 | SYSTEM_POWER_STATE MinDeviceWakeState; | |
3165 | SYSTEM_POWER_STATE DefaultLowLatencyWake; | |
3166 | } SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES; | |
3167 | ||
3168 | typedef struct _SYSTEM_BATTERY_STATE { | |
3169 | BOOLEAN AcOnLine; | |
3170 | BOOLEAN BatteryPresent; | |
3171 | BOOLEAN Charging; | |
3172 | BOOLEAN Discharging; | |
3173 | BOOLEAN Spare1[4]; | |
3174 | ULONG MaxCapacity; | |
3175 | ULONG RemainingCapacity; | |
3176 | ULONG Rate; | |
3177 | ULONG EstimatedTime; | |
3178 | ULONG DefaultAlert1; | |
3179 | ULONG DefaultAlert2; | |
3180 | } SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE; | |
3181 | ||
38b524b3 DS |
3182 | typedef enum _POWER_INFORMATION_LEVEL { |
3183 | SystemPowerPolicyAc, | |
3184 | SystemPowerPolicyDc, | |
3185 | VerifySystemPolicyAc, | |
3186 | VerifySystemPolicyDc, | |
3187 | SystemPowerCapabilities, | |
3188 | SystemBatteryState, | |
3189 | SystemPowerStateHandler, | |
3190 | ProcessorStateHandler, | |
3191 | SystemPowerPolicyCurrent, | |
3192 | AdministratorPowerPolicy, | |
3193 | SystemReserveHiberFile, | |
3194 | ProcessorInformation, | |
3195 | SystemPowerInformation, | |
3196 | ProcessorStateHandler2, | |
3197 | LastWakeTime, | |
3198 | LastSleepTime, | |
3199 | SystemExecutionState, | |
3200 | SystemPowerStateNotifyHandler, | |
3201 | ProcessorPowerPolicyAc, | |
3202 | ProcessorPowerPolicyDc, | |
3203 | VerifyProcessorPowerPolicyAc, | |
3204 | VerifyProcessorPowerPolicyDc, | |
3205 | ProcessorPowerPolicyCurrent | |
3206 | } POWER_INFORMATION_LEVEL; | |
3207 | ||
38f9123e DP |
3208 | #if (_WIN32_WINNT >= 0x0500) |
3209 | typedef LONG (WINAPI *PVECTORED_EXCEPTION_HANDLER)(PEXCEPTION_POINTERS); | |
3210 | #endif | |
20073893 DS |
3211 | #if 1 /* (WIN32_WINNT >= 0x0500) */ |
3212 | typedef struct _SYSTEM_POWER_INFORMATION { | |
3213 | ULONG MaxIdlenessAllowed; | |
3214 | ULONG Idleness; | |
3215 | ULONG TimeRemaining; | |
3216 | UCHAR CoolingMode; | |
56efe3a8 | 3217 | } SYSTEM_POWER_INFORMATION,*PSYSTEM_POWER_INFORMATION; |
20073893 DS |
3218 | #endif |
3219 | ||
38f9123e DP |
3220 | #if (_WIN32_WINNT >= 0x0501) |
3221 | typedef enum _HEAP_INFORMATION_CLASS { | |
3222 | HeapCompatibilityInformation | |
3223 | } HEAP_INFORMATION_CLASS; | |
56efe3a8 DP |
3224 | typedef enum _ACTIVATION_CONTEXT_INFO_CLASS { |
3225 | ActivationContextBasicInformation = 1, | |
3226 | ActivationContextDetailedInformation, | |
3227 | AssemblyDetailedInformationInActivationContext, | |
3228 | FileInformationInAssemblyOfAssemblyInActivationContext | |
3229 | } ACTIVATION_CONTEXT_INFO_CLASS; | |
3230 | typedef struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { | |
3231 | DWORD ulFlags; | |
3232 | DWORD ulEncodedAssemblyIdentityLength; | |
3233 | DWORD ulManifestPathType; | |
3234 | DWORD ulManifestPathLength; | |
3235 | LARGE_INTEGER liManifestLastWriteTime; | |
3236 | DWORD ulPolicyPathType; | |
3237 | DWORD ulPolicyPathLength; | |
3238 | LARGE_INTEGER liPolicyLastWriteTime; | |
3239 | DWORD ulMetadataSatelliteRosterIndex; | |
3240 | DWORD ulManifestVersionMajor; | |
3241 | DWORD ulManifestVersionMinor; | |
3242 | DWORD ulPolicyVersionMajor; | |
3243 | DWORD ulPolicyVersionMinor; | |
3244 | DWORD ulAssemblyDirectoryNameLength; | |
3245 | PCWSTR lpAssemblyEncodedAssemblyIdentity; | |
3246 | PCWSTR lpAssemblyManifestPath; | |
3247 | PCWSTR lpAssemblyPolicyPath; | |
3248 | PCWSTR lpAssemblyDirectoryName; | |
3249 | } ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION,*PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; | |
3250 | typedef const ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION *PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; | |
3251 | typedef struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION { | |
3252 | DWORD dwFlags; | |
3253 | DWORD ulFormatVersion; | |
3254 | DWORD ulAssemblyCount; | |
3255 | DWORD ulRootManifestPathType; | |
3256 | DWORD ulRootManifestPathChars; | |
3257 | DWORD ulRootConfigurationPathType; | |
3258 | DWORD ulRootConfigurationPathChars; | |
3259 | DWORD ulAppDirPathType; | |
3260 | DWORD ulAppDirPathChars; | |
3261 | PCWSTR lpRootManifestPath; | |
3262 | PCWSTR lpRootConfigurationPath; | |
3263 | PCWSTR lpAppDirPath; | |
3264 | } ACTIVATION_CONTEXT_DETAILED_INFORMATION,*PACTIVATION_CONTEXT_DETAILED_INFORMATION; | |
3265 | typedef const ACTIVATION_CONTEXT_DETAILED_INFORMATION *PCACTIVATION_CONTEXT_DETAILED_INFORMATION; | |
3266 | typedef struct _ACTIVATION_CONTEXT_QUERY_INDEX { | |
3267 | ULONG ulAssemblyIndex; | |
3268 | ULONG ulFileIndexInAssembly; | |
3269 | } ACTIVATION_CONTEXT_QUERY_INDEX,*PACTIVATION_CONTEXT_QUERY_INDEX; | |
3270 | typedef const ACTIVATION_CONTEXT_QUERY_INDEX *PCACTIVATION_CONTEXT_QUERY_INDEX; | |
3271 | typedef struct _ASSEMBLY_FILE_DETAILED_INFORMATION { | |
3272 | DWORD ulFlags; | |
3273 | DWORD ulFilenameLength; | |
3274 | DWORD ulPathLength; | |
3275 | PCWSTR lpFileName; | |
3276 | PCWSTR lpFilePath; | |
3277 | } ASSEMBLY_FILE_DETAILED_INFORMATION,*PASSEMBLY_FILE_DETAILED_INFORMATION; | |
3278 | typedef const ASSEMBLY_FILE_DETAILED_INFORMATION *PCASSEMBLY_FILE_DETAILED_INFORMATION; | |
3279 | #endif /* (WIN32_WINNT >= 0x0501) */ | |
3280 | ||
20073893 DS |
3281 | typedef struct _PROCESSOR_POWER_POLICY_INFO { |
3282 | ULONG TimeCheck; | |
3283 | ULONG DemoteLimit; | |
3284 | ULONG PromoteLimit; | |
3285 | UCHAR DemotePercent; | |
3286 | UCHAR PromotePercent; | |
3287 | UCHAR Spare[2]; | |
3288 | ULONG AllowDemotion : 1; | |
3289 | ULONG AllowPromotion : 1; | |
3290 | ULONG Reserved : 30; | |
3291 | } PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO; | |
3292 | typedef struct _PROCESSOR_POWER_POLICY { | |
3293 | ULONG Revision; | |
3294 | UCHAR DynamicThrottle; | |
3295 | UCHAR Spare[3]; | |
3296 | ULONG Reserved; | |
3297 | ULONG PolicyCount; | |
3298 | PROCESSOR_POWER_POLICY_INFO Policy[3]; | |
3299 | } PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY; | |
3300 | typedef struct _ADMINISTRATOR_POWER_POLICY { | |
3301 | SYSTEM_POWER_STATE MinSleep; | |
3302 | SYSTEM_POWER_STATE MaxSleep; | |
3303 | ULONG MinVideoTimeout; | |
3304 | ULONG MaxVideoTimeout; | |
3305 | ULONG MinSpindownTimeout; | |
3306 | ULONG MaxSpindownTimeout; | |
3307 | } ADMINISTRATOR_POWER_POLICY, *PADMINISTRATOR_POWER_POLICY; | |
3308 | #include <poppack.h> | |
3309 | #endif /* WINVER >= 0x0500 */ | |
3310 | ||
3adfd509 | 3311 | #if (_WIN32_WINNT >= 0x0500) |
247808c1 | 3312 | typedef VOID (NTAPI *WAITORTIMERCALLBACKFUNC)(PVOID,BOOLEAN); |
3adfd509 | 3313 | #endif |
20073893 | 3314 | |
6dfcb5a3 EB |
3315 | #ifdef UNICODE |
3316 | typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO; | |
3317 | typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX; | |
3318 | #else | |
3319 | typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO; | |
3320 | typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX; | |
3321 | #endif | |
3322 | ||
2f14399c DS |
3323 | #if (WIN32_WINNT >= 0x0500) |
3324 | ULONGLONG WINAPI VerSetConditionMask(ULONGLONG,DWORD,BYTE); | |
3325 | #endif | |
3326 | ||
6dfcb5a3 | 3327 | |
d0d69f14 | 3328 | PVOID GetCurrentFiber(void); |
65fb2e43 DS |
3329 | PVOID GetFiberData(void); |
3330 | ||
3331 | #if defined(__GNUC__) | |
3332 | #if (__GNUC__ >= 3) | |
3333 | /* Support -masm=intel. */ | |
3334 | extern __inline__ PVOID GetCurrentFiber(void) | |
3335 | { | |
3336 | void* ret; | |
3337 | __asm__ __volatile__ ( | |
3338 | "mov{l} {%%fs:0x10,%0|%0,%%fs:0x10}" | |
3339 | : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ | |
3340 | ); | |
3341 | return ret; | |
3342 | } | |
3343 | ||
3344 | extern __inline__ PVOID GetFiberData(void) | |
3345 | { | |
3346 | void* ret; | |
3347 | __asm__ __volatile__ ( | |
3348 | "mov{l} {%%fs:0x10,%0|%0,%%fs:0x10}\n\t" | |
3349 | "mov{l} {(%0),%0|%0,[%0]}" | |
3350 | : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ | |
3351 | ); | |
3352 | return ret; | |
3353 | } | |
3354 | ||
3355 | static __inline__ struct _TEB * NtCurrentTeb(void) | |
3356 | { | |
3357 | struct _TEB *ret; | |
3358 | ||
3359 | __asm__ __volatile__ ( | |
3360 | "mov{l} {%%fs:0x18,%0|%0,%%fs:0x18}\n" | |
3361 | : "=r" (ret) | |
3362 | : /* no inputs */ | |
3363 | ); | |
3364 | ||
3365 | return ret; | |
3366 | } | |
3367 | ||
3368 | #else /* __GNUC__ >= 3 */ | |
5b9d54bf | 3369 | extern __inline__ PVOID GetCurrentFiber(void) |
a1a1b83a EB |
3370 | { |
3371 | void* ret; | |
635fa4ba | 3372 | __asm__ __volatile__ ( |
c7ceb003 DS |
3373 | "movl %%fs:0x10,%0" |
3374 | : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ | |
3375 | ); | |
a1a1b83a EB |
3376 | return ret; |
3377 | } | |
6dfcb5a3 | 3378 | |
5b9d54bf | 3379 | extern __inline__ PVOID GetFiberData(void) |
a1a1b83a EB |
3380 | { |
3381 | void* ret; | |
635fa4ba | 3382 | __asm__ __volatile__ ( |
65fb2e43 | 3383 | "movl %%fs:0x10,%0\n\t" |
c7ceb003 DS |
3384 | "movl (%0),%0" |
3385 | : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ | |
3386 | ); | |
a1a1b83a EB |
3387 | return ret; |
3388 | } | |
5b9d54bf | 3389 | |
8e2d4325 DS |
3390 | static __inline__ struct _TEB * NtCurrentTeb(void) |
3391 | { | |
3392 | struct _TEB *ret; | |
3393 | ||
3394 | __asm__ __volatile__ ( | |
3395 | "movl %%fs:0x18, %0\n" | |
3396 | : "=r" (ret) | |
3397 | : /* no inputs */ | |
3398 | ); | |
8e2d4325 DS |
3399 | return ret; |
3400 | } | |
65fb2e43 | 3401 | #endif /* __GNUC__ >= 3 */ |
8e2d4325 | 3402 | |
6dfcb5a3 EB |
3403 | #else |
3404 | ||
6dfcb5a3 EB |
3405 | #pragma aux GetCurrentFiber = \ |
3406 | "mov eax, dword ptr fs:0x10" \ | |
3407 | value [eax] \ | |
3408 | modify [eax]; | |
3409 | ||
6dfcb5a3 EB |
3410 | #pragma aux GetFiberData = \ |
3411 | "mov eax, dword ptr fs:0x10" \ | |
3412 | "mov eax, [eax]" \ | |
3413 | value [eax] \ | |
3414 | modify [eax]; | |
3415 | ||
3416 | #endif /* __GNUC__ */ | |
3417 | ||
8ff4b351 | 3418 | #endif /* RC_INVOKED */ |
20073893 | 3419 | |
1fd5e000 CF |
3420 | #ifdef __cplusplus |
3421 | } | |
3422 | #endif | |
3423 | #endif |