OSDN Git Service

Consolidate <winbase.h> version specific conditionals.
[mingw/mingw-org-wsl.git] / w32api / include / winbase.h
1 /*
2  * winbase.h
3  *
4  * Windows API Base Definitions
5  *
6  * $Id$
7  *
8  * Written by Anders Norlander <anorland@hem2.passagen.se>
9  * Copyright (C) 1998-2012, 2016, 2017, MinGW.org Project.
10  *
11  *
12  * Permission is hereby granted, free of charge, to any person obtaining a
13  * copy of this software and associated documentation files (the "Software"),
14  * to deal in the Software without restriction, including without limitation
15  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16  * and/or sell copies of the Software, and to permit persons to whom the
17  * Software is furnished to do so, subject to the following conditions:
18  *
19  * The above copyright notice and this permission notice (including the next
20  * paragraph) shall be included in all copies or substantial portions of the
21  * Software.
22  *
23  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29  * DEALINGS IN THE SOFTWARE.
30  *
31  */
32 #ifndef _WINBASE_H
33 #pragma GCC system_header
34 #define _WINBASE_H
35
36 #ifdef __GNUC__
37 # define __GNUC_EXTENSION  __extension__
38 #else
39 # define __GNUC_EXTENSION
40 #endif
41
42 #ifndef WINBASEAPI
43 # ifdef __W32API_USE_DLLIMPORT__
44 #  define WINBASEAPI  DECLSPEC_IMPORT
45 # else
46 #  define WINBASEAPI
47 # endif
48 #endif
49
50 #ifndef WINADVAPI
51 # ifdef __W32API_USE_DLLIMPORT__
52 #  define WINADVAPI  DECLSPEC_IMPORT
53 # else
54 #  define WINADVAPI
55 # endif
56 #endif
57
58 /* To make <winbase.h> effectively self-contained, we must ensure
59  * that both <stdarg.h> and <windef.h> are included beforehand.
60  */
61 #include <stdarg.h>
62 #include <windef.h>
63
64 _BEGIN_C_DECLS
65
66 #define SP_SERIALCOMM                                                  1
67
68 #define PST_UNSPECIFIED                                                0
69 #define PST_RS232                                                      1
70 #define PST_PARALLELPORT                                               2
71 #define PST_RS422                                                      3
72 #define PST_RS423                                                      4
73 #define PST_RS449                                                      5
74 #define PST_MODEM                                                      6
75 #define PST_FAX                                                     0x21
76 #define PST_SCANNER                                                 0x22
77 #define PST_NETWORK_BRIDGE                                         0x100
78 #define PST_LAT                                                    0x101
79 #define PST_TCPIP_TELNET                                           0x102
80 #define PST_X25                                                    0x103
81
82 #define BAUD_075                                                       1
83 #define BAUD_110                                                       2
84 #define BAUD_134_5                                                     4
85 #define BAUD_150                                                       8
86 #define BAUD_300                                                      16
87 #define BAUD_600                                                      32
88 #define BAUD_1200                                                     64
89 #define BAUD_1800                                                    128
90 #define BAUD_2400                                                    256
91 #define BAUD_4800                                                    512
92 #define BAUD_7200                                                   1024
93 #define BAUD_9600                                                   2048
94 #define BAUD_14400                                                  4096
95 #define BAUD_19200                                                  8192
96 #define BAUD_38400                                                 16384
97 #define BAUD_56K                                                   32768
98 #define BAUD_128K                                                  65536
99 #define BAUD_115200                                               131072
100 #define BAUD_57600                                                262144
101 #define BAUD_USER                                             0x10000000
102
103 #define PCF_DTRDSR                                                     1
104 #define PCF_RTSCTS                                                     2
105 #define PCF_RLSD                                                       4
106 #define PCF_PARITY_CHECK                                               8
107 #define PCF_XONXOFF                                                   16
108 #define PCF_SETXCHAR                                                  32
109 #define PCF_TOTALTIMEOUTS                                             64
110 #define PCF_INTTIMEOUTS                                              128
111 #define PCF_SPECIALCHARS                                             256
112 #define PCF_16BITMODE                                                512
113
114 #define SP_PARITY                                                      1
115 #define SP_BAUD                                                        2
116 #define SP_DATABITS                                                    4
117 #define SP_STOPBITS                                                    8
118 #define SP_HANDSHAKING                                                16
119 #define SP_PARITY_CHECK                                               32
120 #define SP_RLSD                                                       64
121
122 #define DATABITS_5                                                     1
123 #define DATABITS_6                                                     2
124 #define DATABITS_7                                                     4
125 #define DATABITS_8                                                     8
126 #define DATABITS_16                                                   16
127 #define DATABITS_16X                                                  32
128
129 #define STOPBITS_10                                                    1
130 #define STOPBITS_15                                                    2
131 #define STOPBITS_20                                                    4
132
133 #define PARITY_NONE                                                  256
134 #define PARITY_ODD                                                   512
135 #define PARITY_EVEN                                                 1024
136 #define PARITY_MARK                                                 2048
137 #define PARITY_SPACE                                                4096
138
139 #define EXCEPTION_DEBUG_EVENT                                          1
140 #define CREATE_THREAD_DEBUG_EVENT                                      2
141 #define CREATE_PROCESS_DEBUG_EVENT                                     3
142 #define EXIT_THREAD_DEBUG_EVENT                                        4
143 #define EXIT_PROCESS_DEBUG_EVENT                                       5
144 #define LOAD_DLL_DEBUG_EVENT                                           6
145 #define UNLOAD_DLL_DEBUG_EVENT                                         7
146 #define OUTPUT_DEBUG_STRING_EVENT                                      8
147 #define RIP_EVENT                                                      9
148
149 #define HFILE_ERROR                                          ((HFILE)(-1))
150
151 #define FILE_BEGIN                                                     0
152 #define FILE_CURRENT                                                   1
153 #define FILE_END                                                       2
154
155 #define INVALID_SET_FILE_POINTER                             ((DWORD)(-1))
156
157 #define OF_READ                                                        0
158 #define OF_READWRITE                                                   2
159 #define OF_WRITE                                                       1
160 #define OF_SHARE_COMPAT                                                0
161 #define OF_SHARE_DENY_NONE                                            64
162 #define OF_SHARE_DENY_READ                                            48
163 #define OF_SHARE_DENY_WRITE                                           32
164 #define OF_SHARE_EXCLUSIVE                                            16
165 #define OF_CANCEL                                                   2048
166 #define OF_CREATE                                                   4096
167 #define OF_DELETE                                                    512
168 #define OF_EXIST                                                   16384
169 #define OF_PARSE                                                     256
170 #define OF_PROMPT                                                   8192
171 #define OF_REOPEN                                                  32768
172 #define OF_VERIFY                                                   1024
173
174 #define NMPWAIT_NOWAIT                                                 1
175 #define NMPWAIT_WAIT_FOREVER                                 ((DWORD)(-1))
176 #define NMPWAIT_USE_DEFAULT_WAIT                                       0
177
178 #define CE_BREAK                                                      16
179 #define CE_DNS                                                      2048
180 #define CE_FRAME                                                       8
181 #define CE_IOE                                                      1024
182 #define CE_MODE                                                    32768
183 #define CE_OOP                                                      4096
184 #define CE_OVERRUN                                                     2
185 #define CE_PTO                                                       512
186 #define CE_RXOVER                                                      1
187 #define CE_RXPARITY                                                    4
188 #define CE_TXFULL                                                    256
189
190 #define PROGRESS_CONTINUE                                              0
191 #define PROGRESS_CANCEL                                                1
192 #define PROGRESS_STOP                                                  2
193 #define PROGRESS_QUIET                                                 3
194
195 #define CALLBACK_CHUNK_FINISHED                                        0
196 #define CALLBACK_STREAM_SWITCH                                         1
197
198 #define COPY_FILE_FAIL_IF_EXISTS                                  0x0001
199 #define COPY_FILE_RESTARTABLE                                     0x0002
200 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE                           0x0004
201
202 #define OFS_MAXPATHNAME                                              128
203
204 #define FILE_MAP_ALL_ACCESS                                      0xF001F
205 #define FILE_MAP_READ                                                  4
206 #define FILE_MAP_WRITE                                                 2
207 #define FILE_MAP_COPY                                                  1
208
209 #define MUTEX_ALL_ACCESS                                        0x1F0001
210 #define MUTEX_MODIFY_STATE                                             1
211
212 #define SEMAPHORE_ALL_ACCESS                                    0x1F0003
213 #define SEMAPHORE_MODIFY_STATE                                         2
214
215 #define EVENT_ALL_ACCESS                                        0x1F0003
216 #define EVENT_MODIFY_STATE                                             2
217
218 #define PIPE_ACCESS_DUPLEX                                             3
219 #define PIPE_ACCESS_INBOUND                                            1
220 #define PIPE_ACCESS_OUTBOUND                                           2
221 #define PIPE_TYPE_BYTE                                                 0
222 #define PIPE_TYPE_MESSAGE                                              4
223 #define PIPE_READMODE_BYTE                                             0
224 #define PIPE_READMODE_MESSAGE                                          2
225 #define PIPE_WAIT                                                      0
226 #define PIPE_NOWAIT                                                    1
227 #define PIPE_CLIENT_END                                                0
228 #define PIPE_SERVER_END                                                1
229 #define PIPE_UNLIMITED_INSTANCES                                     255
230
231 #define DEBUG_PROCESS                                         0x00000001
232 #define DEBUG_ONLY_THIS_PROCESS                               0x00000002
233 #define CREATE_SUSPENDED                                      0x00000004
234 #define DETACHED_PROCESS                                      0x00000008
235 #define CREATE_NEW_CONSOLE                                    0x00000010
236 #define NORMAL_PRIORITY_CLASS                                 0x00000020
237 #define IDLE_PRIORITY_CLASS                                   0x00000040
238 #define HIGH_PRIORITY_CLASS                                   0x00000080
239 #define REALTIME_PRIORITY_CLASS                               0x00000100
240 #define CREATE_NEW_PROCESS_GROUP                              0x00000200
241 #define CREATE_UNICODE_ENVIRONMENT                            0x00000400
242 #define CREATE_SEPARATE_WOW_VDM                               0x00000800
243 #define CREATE_SHARED_WOW_VDM                                 0x00001000
244 #define CREATE_FORCEDOS                                       0x00002000
245 #define BELOW_NORMAL_PRIORITY_CLASS                           0x00004000
246 #define ABOVE_NORMAL_PRIORITY_CLASS                           0x00008000
247 #define STACK_SIZE_PARAM_IS_A_RESERVATION                     0x00010000
248 #define CREATE_BREAKAWAY_FROM_JOB                             0x01000000
249 #define CREATE_WITH_USERPROFILE                               0x02000000
250 #define CREATE_DEFAULT_ERROR_MODE                             0x04000000
251 #define CREATE_NO_WINDOW                                      0x08000000
252
253 #define PROFILE_USER                                          0x10000000
254 #define PROFILE_KERNEL                                        0x20000000
255 #define PROFILE_SERVER                                        0x40000000
256
257 #define CONSOLE_TEXTMODE_BUFFER                                        1
258
259 #define CREATE_NEW                                                     1
260 #define CREATE_ALWAYS                                                  2
261 #define OPEN_EXISTING                                                  3
262 #define OPEN_ALWAYS                                                    4
263 #define TRUNCATE_EXISTING                                              5
264
265 #define FILE_FLAG_WRITE_THROUGH                               0x80000000
266 #define FILE_FLAG_OVERLAPPED                                  1073741824
267 #define FILE_FLAG_NO_BUFFERING                                 536870912
268 #define FILE_FLAG_RANDOM_ACCESS                                268435456
269 #define FILE_FLAG_SEQUENTIAL_SCAN                              134217728
270 #define FILE_FLAG_DELETE_ON_CLOSE                               67108864
271 #define FILE_FLAG_BACKUP_SEMANTICS                              33554432
272 #define FILE_FLAG_POSIX_SEMANTICS                               16777216
273 #define FILE_FLAG_OPEN_REPARSE_POINT                             2097152
274 #define FILE_FLAG_OPEN_NO_RECALL                                 1048576
275
276 #define SYMBOLIC_LINK_FLAG_DIRECTORY                                 0x1
277
278 #define CLRDTR                                                         6
279 #define CLRRTS                                                         4
280 #define SETDTR                                                         5
281 #define SETRTS                                                         3
282 #define SETXOFF                                                        1
283 #define SETXON                                                         2
284 #define SETBREAK                                                       8
285 #define CLRBREAK                                                       9
286
287 #define STILL_ACTIVE                                               0x103
288
289 #define FIND_FIRST_EX_CASE_SENSITIVE                                   1
290
291 #define SCS_32BIT_BINARY                                               0
292 #define SCS_64BIT_BINARY                                               6
293 #define SCS_DOS_BINARY                                                 1
294 #define SCS_OS216_BINARY                                               5
295 #define SCS_PIF_BINARY                                                 3
296 #define SCS_POSIX_BINARY                                               4
297 #define SCS_WOW_BINARY                                                 2
298
299 #define MAX_COMPUTERNAME_LENGTH                                       15
300
301 #define HW_PROFILE_GUIDLEN                                            39
302 #define MAX_PROFILE_LEN                                               80
303
304 #define DOCKINFO_UNDOCKED                                              1
305 #define DOCKINFO_DOCKED                                                2
306 #define DOCKINFO_USER_SUPPLIED                                         4
307 #define DOCKINFO_USER_UNDOCKED        (DOCKINFO_USER_SUPPLIED|DOCKINFO_UNDOCKED)
308 #define DOCKINFO_USER_DOCKED           (DOCKINFO_USER_SUPPLIED|DOCKINFO_DOCKED)
309
310 #define DRIVE_REMOVABLE                                                2
311 #define DRIVE_FIXED                                                    3
312 #define DRIVE_REMOTE                                                   4
313 #define DRIVE_CDROM                                                    5
314 #define DRIVE_RAMDISK                                                  6
315 #define DRIVE_UNKNOWN                                                  0
316 #define DRIVE_NO_ROOT_DIR                                              1
317
318 #define FILE_TYPE_UNKNOWN                                              0
319 #define FILE_TYPE_DISK                                                 1
320 #define FILE_TYPE_CHAR                                                 2
321 #define FILE_TYPE_PIPE                                                 3
322 #define FILE_TYPE_REMOTE                                          0x8000
323 #define FILE_ENCRYPTABLE                                               0
324 #define FILE_IS_ENCRYPTED                                              1
325 #define FILE_READ_ONLY                                                 8
326 #define FILE_ROOT_DIR                                                  3
327 #define FILE_SYSTEM_ATTR                                               2
328 #define FILE_SYSTEM_DIR                                                4
329 #define FILE_SYSTEM_NOT_SUPPORT                                        6
330 #define FILE_UNKNOWN                                                   5
331 #define FILE_USER_DISALLOWED                                           7
332
333 /* also in ddk/ntapi.h */
334 #define HANDLE_FLAG_INHERIT                                         0x01
335 #define HANDLE_FLAG_PROTECT_FROM_CLOSE                              0x02
336 /* end ntapi.h */
337
338 #define STD_INPUT_HANDLE                              (DWORD)(0xfffffff6)
339 #define STD_OUTPUT_HANDLE                             (DWORD)(0xfffffff5)
340 #define STD_ERROR_HANDLE                              (DWORD)(0xfffffff4)
341
342 #define INVALID_HANDLE_VALUE                                 (HANDLE)(-1)
343
344 #define GET_TAPE_MEDIA_INFORMATION                                     0
345 #define GET_TAPE_DRIVE_INFORMATION                                     1
346 #define SET_TAPE_MEDIA_INFORMATION                                     0
347 #define SET_TAPE_DRIVE_INFORMATION                                     1
348
349 #define THREAD_PRIORITY_ABOVE_NORMAL                                   1
350 #define THREAD_PRIORITY_BELOW_NORMAL                                 (-1)
351 #define THREAD_PRIORITY_HIGHEST                                        2
352 #define THREAD_PRIORITY_IDLE                                        (-15)
353 #define THREAD_PRIORITY_LOWEST                                       (-2)
354 #define THREAD_PRIORITY_NORMAL                                         0
355 #define THREAD_PRIORITY_TIME_CRITICAL                                 15
356 #define THREAD_PRIORITY_ERROR_RETURN                          2147483647
357
358 #define TIME_ZONE_ID_UNKNOWN                                           0
359 #define TIME_ZONE_ID_STANDARD                                          1
360 #define TIME_ZONE_ID_DAYLIGHT                                          2
361 #define TIME_ZONE_ID_INVALID                                  0xFFFFFFFF
362
363 #define FS_CASE_IS_PRESERVED                                           2
364 #define FS_CASE_SENSITIVE                                              1
365 #define FS_UNICODE_STORED_ON_DISK                                      4
366 #define FS_PERSISTENT_ACLS                                             8
367 #define FS_FILE_COMPRESSION                                           16
368 #define FS_VOL_IS_COMPRESSED                                       32768
369
370 #define GMEM_FIXED                                                     0
371 #define GMEM_MOVEABLE                                                  2
372 #define GMEM_MODIFY                                                  128
373 #define GPTR                                                          64
374 #define GHND                                                          66
375 #define GMEM_DDESHARE                                               8192
376 #define GMEM_DISCARDABLE                                             256
377 #define GMEM_LOWER                                                  4096
378 #define GMEM_NOCOMPACT                                                16
379 #define GMEM_NODISCARD                                                32
380 #define GMEM_NOT_BANKED                                             4096
381 #define GMEM_NOTIFY                                                16384
382 #define GMEM_SHARE                                                  8192
383 #define GMEM_ZEROINIT                                                 64
384 #define GMEM_DISCARDED                                             16384
385 #define GMEM_INVALID_HANDLE                                        32768
386 #define GMEM_LOCKCOUNT                                               255
387 #define GMEM_VALID_FLAGS                                           32626
388
389 #define STATUS_WAIT_0                                                  0
390 #define STATUS_ABANDONED_WAIT_0                                     0x80
391 #define STATUS_USER_APC                                             0xC0
392 #define STATUS_TIMEOUT                                             0x102
393 #define STATUS_PENDING                                             0x103
394 #define STATUS_SEGMENT_NOTIFICATION                           0x40000005
395 #define STATUS_GUARD_PAGE_VIOLATION                           0x80000001
396 #define STATUS_DATATYPE_MISALIGNMENT                          0x80000002
397 #define STATUS_BREAKPOINT                                     0x80000003
398 #define STATUS_SINGLE_STEP                                    0x80000004
399 #define STATUS_ACCESS_VIOLATION                               0xC0000005
400 #define STATUS_IN_PAGE_ERROR                                  0xC0000006
401 #define STATUS_INVALID_HANDLE                                 0xC0000008L
402 #define STATUS_NO_MEMORY                                      0xC0000017
403 #define STATUS_ILLEGAL_INSTRUCTION                            0xC000001D
404 #define STATUS_NONCONTINUABLE_EXCEPTION                       0xC0000025
405 #define STATUS_INVALID_DISPOSITION                            0xC0000026
406 #define STATUS_ARRAY_BOUNDS_EXCEEDED                          0xC000008C
407 #define STATUS_FLOAT_DENORMAL_OPERAND                         0xC000008D
408 #define STATUS_FLOAT_DIVIDE_BY_ZERO                           0xC000008E
409 #define STATUS_FLOAT_INEXACT_RESULT                           0xC000008F
410 #define STATUS_FLOAT_INVALID_OPERATION                        0xC0000090
411 #define STATUS_FLOAT_OVERFLOW                                 0xC0000091
412 #define STATUS_FLOAT_STACK_CHECK                              0xC0000092
413 #define STATUS_FLOAT_UNDERFLOW                                0xC0000093
414 #define STATUS_INTEGER_DIVIDE_BY_ZERO                         0xC0000094
415 #define STATUS_INTEGER_OVERFLOW                               0xC0000095
416 #define STATUS_PRIVILEGED_INSTRUCTION                         0xC0000096
417 #define STATUS_STACK_OVERFLOW                                 0xC00000FD
418 #define STATUS_CONTROL_C_EXIT                                 0xC000013A
419 #define STATUS_DLL_INIT_FAILED                                0xC0000142
420 #define STATUS_DLL_INIT_FAILED_LOGOFF                         0xC000026B
421
422 #define EXCEPTION_ACCESS_VIOLATION                     STATUS_ACCESS_VIOLATION
423 #define EXCEPTION_DATATYPE_MISALIGNMENT              STATUS_DATATYPE_MISALIGNMENT
424 #define EXCEPTION_BREAKPOINT                              STATUS_BREAKPOINT
425 #define EXCEPTION_SINGLE_STEP                             STATUS_SINGLE_STEP
426 #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED              STATUS_ARRAY_BOUNDS_EXCEEDED
427 #define EXCEPTION_FLT_DENORMAL_OPERAND              STATUS_FLOAT_DENORMAL_OPERAND
428 #define EXCEPTION_FLT_DIVIDE_BY_ZERO                 STATUS_FLOAT_DIVIDE_BY_ZERO
429 #define EXCEPTION_FLT_INEXACT_RESULT                 STATUS_FLOAT_INEXACT_RESULT
430 #define EXCEPTION_FLT_INVALID_OPERATION             STATUS_FLOAT_INVALID_OPERATION
431 #define EXCEPTION_FLT_OVERFLOW                          STATUS_FLOAT_OVERFLOW
432 #define EXCEPTION_FLT_STACK_CHECK                      STATUS_FLOAT_STACK_CHECK
433 #define EXCEPTION_FLT_UNDERFLOW                         STATUS_FLOAT_UNDERFLOW
434 #define EXCEPTION_INT_DIVIDE_BY_ZERO                 STATUS_INTEGER_DIVIDE_BY_ZERO
435 #define EXCEPTION_INT_OVERFLOW                          STATUS_INTEGER_OVERFLOW
436 #define EXCEPTION_PRIV_INSTRUCTION                   STATUS_PRIVILEGED_INSTRUCTION
437 #define EXCEPTION_IN_PAGE_ERROR                          STATUS_IN_PAGE_ERROR
438 #define EXCEPTION_ILLEGAL_INSTRUCTION                 STATUS_ILLEGAL_INSTRUCTION
439 #define EXCEPTION_NONCONTINUABLE_EXCEPTION          STATUS_NONCONTINUABLE_EXCEPTION
440 #define EXCEPTION_STACK_OVERFLOW                         STATUS_STACK_OVERFLOW
441 #define EXCEPTION_INVALID_DISPOSITION                 STATUS_INVALID_DISPOSITION
442 #define EXCEPTION_GUARD_PAGE                          STATUS_GUARD_PAGE_VIOLATION
443 #define EXCEPTION_INVALID_HANDLE                        STATUS_INVALID_HANDLE
444 #define CONTROL_C_EXIT                                  STATUS_CONTROL_C_EXIT
445
446 #define PROCESS_HEAP_REGION                                            1
447 #define PROCESS_HEAP_UNCOMMITTED_RANGE                                 2
448 #define PROCESS_HEAP_ENTRY_BUSY                                        4
449 #define PROCESS_HEAP_ENTRY_MOVEABLE                                   16
450 #define PROCESS_HEAP_ENTRY_DDESHARE                                   32
451
452 #define DONT_RESOLVE_DLL_REFERENCES                                    1
453 #define LOAD_LIBRARY_AS_DATAFILE                                       2
454 #define LOAD_WITH_ALTERED_SEARCH_PATH                                  8
455
456 #define LMEM_FIXED                                                     0
457 #define LMEM_MOVEABLE                                                  2
458 #define LMEM_NONZEROLHND                                               2
459 #define LMEM_NONZEROLPTR                                               0
460 #define LMEM_DISCARDABLE                                            3840
461 #define LMEM_NOCOMPACT                                                16
462 #define LMEM_NODISCARD                                                32
463 #define LMEM_ZEROINIT                                                 64
464 #define LMEM_DISCARDED                                             16384
465 #define LMEM_MODIFY                                                  128
466 #define LMEM_INVALID_HANDLE                                        32768
467 #define LMEM_LOCKCOUNT                                               255
468
469 #define LPTR                                                          64
470 #define LHND                                                          66
471 #define NONZEROLHND                                                    2
472 #define NONZEROLPTR                                                    0
473
474 #define LOCKFILE_FAIL_IMMEDIATELY                                      1
475 #define LOCKFILE_EXCLUSIVE_LOCK                                        2
476
477 #define LOGON32_PROVIDER_DEFAULT                                       0
478 #define LOGON32_PROVIDER_WINNT35                                       1
479 #define LOGON32_LOGON_INTERACTIVE                                      2
480 #define LOGON32_LOGON_NETWORK                                          3
481 #define LOGON32_LOGON_BATCH                                            4
482 #define LOGON32_LOGON_SERVICE                                          5
483 #define LOGON32_LOGON_UNLOCK                                           7
484
485 #define MOVEFILE_REPLACE_EXISTING                                      1
486 #define MOVEFILE_COPY_ALLOWED                                          2
487 #define MOVEFILE_DELAY_UNTIL_REBOOT                                    4
488 #define MOVEFILE_WRITE_THROUGH                                         8
489
490 #define MAXIMUM_WAIT_OBJECTS                                          64
491 #define MAXIMUM_SUSPEND_COUNT                                       0x7F
492
493 #define WAIT_OBJECT_0                                                  0
494 #define WAIT_ABANDONED_0                                             128
495
496 #ifndef WAIT_TIMEOUT
497 /* FIXME: This guard MUST be removed!  Even if WAIT_TIMEOUT is also defined
498  * in <winerror.h>, the definitions MUST be IDENTICALLY the same; guards such
499  * as this deny the compiler any opportunity to check this, and thus invite
500  * inconsistency, broken definitions, and hard-to-locate bugs.
501  */
502 #define WAIT_TIMEOUT                                                 258
503 #else
504 /* FIXME: Redundant definition, to force compile time check; may be removed,
505  * when resolving the <winerror.h> duplication issue.
506  */
507 #define WAIT_TIMEOUT                                                 258
508 #endif
509
510 #define WAIT_IO_COMPLETION                                          0xC0
511 #define WAIT_ABANDONED                                               128
512 #define WAIT_FAILED                                  ((DWORD)(0xFFFFFFFF))
513
514 #define PURGE_TXABORT                                                  1
515 #define PURGE_RXABORT                                                  2
516 #define PURGE_TXCLEAR                                                  4
517 #define PURGE_RXCLEAR                                                  8
518
519 #define EVENTLOG_SUCCESS                                               0
520 #define EVENTLOG_FORWARDS_READ                                         4
521 #define EVENTLOG_BACKWARDS_READ                                        8
522 #define EVENTLOG_SEEK_READ                                             2
523 #define EVENTLOG_SEQUENTIAL_READ                                       1
524 #define EVENTLOG_ERROR_TYPE                                            1
525 #define EVENTLOG_WARNING_TYPE                                          2
526 #define EVENTLOG_INFORMATION_TYPE                                      4
527 #define EVENTLOG_AUDIT_SUCCESS                                         8
528 #define EVENTLOG_AUDIT_FAILURE                                        16
529
530 #define FORMAT_MESSAGE_ALLOCATE_BUFFER                               256
531 #define FORMAT_MESSAGE_IGNORE_INSERTS                                512
532 #define FORMAT_MESSAGE_FROM_STRING                                  1024
533 #define FORMAT_MESSAGE_FROM_HMODULE                                 2048
534 #define FORMAT_MESSAGE_FROM_SYSTEM                                  4096
535 #define FORMAT_MESSAGE_ARGUMENT_ARRAY                               8192
536 #define FORMAT_MESSAGE_MAX_WIDTH_MASK                                255
537
538 #define EV_BREAK                                                      64
539 #define EV_CTS                                                         8
540 #define EV_DSR                                                        16
541 #define EV_ERR                                                       128
542 #define EV_EVENT1                                                   2048
543 #define EV_EVENT2                                                   4096
544 #define EV_PERR                                                      512
545 #define EV_RING                                                      256
546 #define EV_RLSD                                                       32
547 #define EV_RX80FULL                                                 1024
548 #define EV_RXCHAR                                                      1
549 #define EV_RXFLAG                                                      2
550 #define EV_TXEMPTY                                                     4
551
552 /* also in ddk/ntapi.h */
553 /* To restore default error mode, call SetErrorMode (0).  */
554 #define SEM_FAILCRITICALERRORS                                    0x0001
555 #define SEM_NOGPFAULTERRORBOX                                     0x0002
556 #define SEM_NOALIGNMENTFAULTEXCEPT                                0x0004
557 #define SEM_NOOPENFILEERRORBOX                                    0x8000
558 /* end ntapi.h */
559
560 #define SLE_ERROR                                                      1
561 #define SLE_MINORERROR                                                 2
562 #define SLE_WARNING                                                    3
563
564 #define SHUTDOWN_NORETRY                                               1
565
566 #define EXCEPTION_EXECUTE_HANDLER                                      1
567 #define EXCEPTION_CONTINUE_EXECUTION                                 (-1)
568 #define EXCEPTION_CONTINUE_SEARCH                                      0
569
570 #define MAXINTATOM                                                0xC000
571 #define INVALID_ATOM                                           ((ATOM)(0))
572
573 #define IGNORE                                                         0
574 #define INFINITE                                              0xFFFFFFFF
575 #define NOPARITY                                                       0
576 #define ODDPARITY                                                      1
577 #define EVENPARITY                                                     2
578 #define MARKPARITY                                                     3
579 #define SPACEPARITY                                                    4
580 #define ONESTOPBIT                                                     0
581 #define ONE5STOPBITS                                                   1
582 #define TWOSTOPBITS                                                    2
583 #define CBR_110                                                      110
584 #define CBR_300                                                      300
585 #define CBR_600                                                      600
586 #define CBR_1200                                                    1200
587 #define CBR_2400                                                    2400
588 #define CBR_4800                                                    4800
589 #define CBR_9600                                                    9600
590 #define CBR_14400                                                  14400
591 #define CBR_19200                                                  19200
592 #define CBR_38400                                                  38400
593 #define CBR_56000                                                  56000
594 #define CBR_57600                                                  57600
595 #define CBR_115200                                                115200
596 #define CBR_128000                                                128000
597 #define CBR_256000                                                256000
598
599 #define BACKUP_INVALID                                                 0
600 #define BACKUP_DATA                                                    1
601 #define BACKUP_EA_DATA                                                 2
602 #define BACKUP_SECURITY_DATA                                           3
603 #define BACKUP_ALTERNATE_DATA                                          4
604 #define BACKUP_LINK                                                    5
605 #define BACKUP_PROPERTY_DATA                                           6
606 #define BACKUP_OBJECT_ID                                               7
607 #define BACKUP_REPARSE_DATA                                            8
608 #define BACKUP_SPARSE_BLOCK                                            9
609
610 #define STREAM_NORMAL_ATTRIBUTE                                        0
611 #define STREAM_MODIFIED_WHEN_READ                                      1
612 #define STREAM_CONTAINS_SECURITY                                       2
613 #define STREAM_CONTAINS_PROPERTIES                                     4
614
615 #define STARTF_USESHOWWINDOW                                           1
616 #define STARTF_USESIZE                                                 2
617 #define STARTF_USEPOSITION                                             4
618 #define STARTF_USECOUNTCHARS                                           8
619 #define STARTF_USEFILLATTRIBUTE                                       16
620 #define STARTF_RUNFULLSCREEN                                          32
621 #define STARTF_FORCEONFEEDBACK                                        64
622 #define STARTF_FORCEOFFFEEDBACK                                      128
623 #define STARTF_USESTDHANDLES                                         256
624 #define STARTF_USEHOTKEY                                             512
625
626 #define TC_NORMAL                                                      0
627 #define TC_HARDERR                                                     1
628 #define TC_GP_TRAP                                                     2
629 #define TC_SIGNAL                                                      3
630
631 #define AC_LINE_OFFLINE                                                0
632 #define AC_LINE_ONLINE                                                 1
633 #define AC_LINE_BACKUP_POWER                                           2
634 #define AC_LINE_UNKNOWN                                              255
635
636 #define BATTERY_FLAG_HIGH                                              1
637 #define BATTERY_FLAG_LOW                                               2
638 #define BATTERY_FLAG_CRITICAL                                          4
639 #define BATTERY_FLAG_CHARGING                                          8
640 #define BATTERY_FLAG_NO_BATTERY                                      128
641 #define BATTERY_FLAG_UNKNOWN                                         255
642 #define BATTERY_PERCENTAGE_UNKNOWN                                   255
643 #define BATTERY_LIFE_UNKNOWN                                  0xFFFFFFFF
644
645 #define DDD_RAW_TARGET_PATH                                            1
646 #define DDD_REMOVE_DEFINITION                                          2
647 #define DDD_EXACT_MATCH_ON_REMOVE                                      4
648
649 #define HINSTANCE_ERROR                                               32
650
651 #define MS_CTS_ON                                                     16
652 #define MS_DSR_ON                                                     32
653 #define MS_RING_ON                                                    64
654 #define MS_RLSD_ON                                                   128
655
656 #define DTR_CONTROL_DISABLE                                            0
657 #define DTR_CONTROL_ENABLE                                             1
658 #define DTR_CONTROL_HANDSHAKE                                          2
659
660 #define RTS_CONTROL_DISABLE                                            0
661 #define RTS_CONTROL_ENABLE                                             1
662 #define RTS_CONTROL_HANDSHAKE                                          2
663 #define RTS_CONTROL_TOGGLE                                             3
664
665 #define SECURITY_ANONYMOUS                            (SecurityAnonymous<<16)
666 #define SECURITY_IDENTIFICATION                       (SecurityIdentification<<16)
667 #define SECURITY_IMPERSONATION                        (SecurityImpersonation<<16)
668 #define SECURITY_DELEGATION                           (SecurityDelegation<<16)
669 #define SECURITY_CONTEXT_TRACKING                                0x40000
670 #define SECURITY_EFFECTIVE_ONLY                                  0x80000
671 #define SECURITY_SQOS_PRESENT                                   0x100000
672 #define SECURITY_VALID_SQOS_FLAGS                               0x1F0000
673
674 #define INVALID_FILE_SIZE                                     0xFFFFFFFF
675 #define TLS_OUT_OF_INDEXES                            (DWORD)(0xFFFFFFFF)
676
677 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS                0x00000004
678 #define GET_MODULE_HANDLE_EX_FLAG_PIN                         0x00000001
679 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT          0x00000002
680
681 #define WRITE_WATCH_FLAG_RESET                                         1
682
683 #if _WIN32_WINNT >= _WIN32_WINNT_NT4
684 /* Constants associated with features supported only on WinNT,
685  * from NT4 onwards.
686  */
687 #define LOGON32_PROVIDER_WINNT40                                       2
688
689 #if (_WIN32_WINNT > 0x0500)
690 /* FIXME: What does this mean?  0x0500 is Win2K, so greater than Win2K
691  * implies WinXP and later, so does it mean >= WinXP, or is it a typo
692  * for >= Win2K?  Should use >= comparator for clarity.
693  */
694 #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION                     0x0008
695 #endif
696
697 #if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
698 /* Constants associated with features supported only on WinXP and later.
699  */
700 #define FILE_FLAG_FIRST_PIPE_INSTANCE                             524288
701
702 #define LOGON32_PROVIDER_WINNT50                                       3
703 #define LOGON32_LOGON_NETWORK_CLEARTEXT                                8
704 #define LOGON32_LOGON_NEW_CREDENTIALS                                  9
705
706 #define REPLACEFILE_WRITE_THROUGH                             0x00000001
707 #define REPLACEFILE_IGNORE_MERGE_ERRORS                       0x00000002
708
709 #if (_WIN32_WINNT > 0x0501)
710 /* FIXME: Once again, what does this mean?  Should use >= comparator, for
711  * clarity.  0x0501 is WinXP, but does > WinXP mean Server-2003 (0x0502)?
712  * Or deoes it mean Vista (0x0600)?  (Intuitively, since symlinks weren't
713  * supported prior to Vista, the latter seems likely).
714  */
715 #define COPY_FILE_COPY_SYMLINK                                    0x0800
716 #define COPY_FILE_NO_BUFFERING                                    0x1000
717 #endif
718
719 #if _WIN32_WINNT >= _WIN32_WINNT_WINXP
720 /* Constants associated with features supported only on WinXP and later.
721  */
722 #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID              0x00000001
723 #define ACTCTX_FLAG_LANGID_VALID                              0x00000002
724 #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID                  0x00000004
725 #define ACTCTX_FLAG_RESOURCE_NAME_VALID                       0x00000008
726 #define ACTCTX_FLAG_SET_PROCESS_DEFAULT                       0x00000010
727 #define ACTCTX_FLAG_APPLICATION_NAME_VALID                    0x00000020
728 #define ACTCTX_FLAG_HMODULE_VALID                             0x00000080
729 #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION       0x00000001
730 #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX                0x00000001
731 #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX                   0x00000004
732 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE                   0x00000008
733 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS                   0x00000010
734
735 #if _WIN32_WINNT >= _WIN32_WINNT_VISTA
736 /* Constants associated with features supported only on Vista and later.
737  */
738 #define THREAD_MODE_BACKGROUND_BEGIN                          0x00010000
739 #define THREAD_MODE_BACKGROUND_END                            0x00020000
740
741 /* http://msdn.microsoft.com/en-us/library/aa363866%28VS.85%29.aspx */
742 #define SYMBOLIC_LINK_FLAG_DIRECTORY                                 0x1
743
744 /* http://msdn.microsoft.com/en-us/library/aa364962%28VS.85%29.aspx */
745 #define FILE_NAME_NORMALIZED                                         0x0
746 #define FILE_NAME_OPENED                                             0x8
747
748 #define VOLUME_NAME_DOS                                              0x0
749 #define VOLUME_NAME_GUID                                             0x1
750 #define VOLUME_NAME_NONE                                             0x4
751 #define VOLUME_NAME_NT                                               0x2
752
753 #if _WIN32_WINNT >= _WIN32_WINNT_WIN7
754 /* Constants associated with features supported only on Win7 and later.
755  */
756 #define PROCESS_DEP_ENABLE                                             1
757 #define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION                        2
758
759 #endif  /* Win7 and later */
760 #endif  /* WinVista and later */
761 #endif  /* WinXP and later */
762 #endif  /* Win2K and later */
763 #endif  /* WinNT from NT4 */
764
765 #ifndef RC_INVOKED
766
767 typedef struct _FILETIME
768 { DWORD                         dwLowDateTime;
769   DWORD                         dwHighDateTime;
770 } FILETIME, *PFILETIME, *LPFILETIME;
771
772 typedef struct _BY_HANDLE_FILE_INFORMATION
773 { DWORD                         dwFileAttributes;
774   FILETIME                      ftCreationTime;
775   FILETIME                      ftLastAccessTime;
776   FILETIME                      ftLastWriteTime;
777   DWORD                         dwVolumeSerialNumber;
778   DWORD                         nFileSizeHigh;
779   DWORD                         nFileSizeLow;
780   DWORD                         nNumberOfLinks;
781   DWORD                         nFileIndexHigh;
782   DWORD                         nFileIndexLow;
783 } BY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
784
785 typedef struct _DCB
786 { DWORD                         DCBlength;
787   DWORD                         BaudRate;
788   DWORD                         fBinary:1;
789   DWORD                         fParity:1;
790   DWORD                         fOutxCtsFlow:1;
791   DWORD                         fOutxDsrFlow:1;
792   DWORD                         fDtrControl:2;
793   DWORD                         fDsrSensitivity:1;
794   DWORD                         fTXContinueOnXoff:1;
795   DWORD                         fOutX:1;
796   DWORD                         fInX:1;
797   DWORD                         fErrorChar:1;
798   DWORD                         fNull:1;
799   DWORD                         fRtsControl:2;
800   DWORD                         fAbortOnError:1;
801   DWORD                         fDummy2:17;
802   WORD                          wReserved;
803   WORD                          XonLim;
804   WORD                          XoffLim;
805   BYTE                          ByteSize;
806   BYTE                          Parity;
807   BYTE                          StopBits;
808   char                          XonChar;
809   char                          XoffChar;
810   char                          ErrorChar;
811   char                          EofChar;
812   char                          EvtChar;
813   WORD                          wReserved1;
814 } DCB, *LPDCB;
815
816 typedef struct _COMM_CONFIG
817 { DWORD                         dwSize;
818   WORD                          wVersion;
819   WORD                          wReserved;
820   DCB                           dcb;
821   DWORD                         dwProviderSubType;
822   DWORD                         dwProviderOffset;
823   DWORD                         dwProviderSize;
824   WCHAR                         wcProviderData[1];
825 } COMMCONFIG, *LPCOMMCONFIG;
826
827 typedef struct _COMMPROP
828 { WORD                          wPacketLength;
829   WORD                          wPacketVersion;
830   DWORD                         dwServiceMask;
831   DWORD                         dwReserved1;
832   DWORD                         dwMaxTxQueue;
833   DWORD                         dwMaxRxQueue;
834   DWORD                         dwMaxBaud;
835   DWORD                         dwProvSubType;
836   DWORD                         dwProvCapabilities;
837   DWORD                         dwSettableParams;
838   DWORD                         dwSettableBaud;
839   WORD                          wSettableData;
840   WORD                          wSettableStopParity;
841   DWORD                         dwCurrentTxQueue;
842   DWORD                         dwCurrentRxQueue;
843   DWORD                         dwProvSpec1;
844   DWORD                         dwProvSpec2;
845   WCHAR                         wcProvChar[1];
846 } COMMPROP, *LPCOMMPROP;
847
848 typedef struct _COMMTIMEOUTS
849 { DWORD                         ReadIntervalTimeout;
850   DWORD                         ReadTotalTimeoutMultiplier;
851   DWORD                         ReadTotalTimeoutConstant;
852   DWORD                         WriteTotalTimeoutMultiplier;
853   DWORD                         WriteTotalTimeoutConstant;
854 } COMMTIMEOUTS, *LPCOMMTIMEOUTS;
855
856 typedef struct _COMSTAT
857 { DWORD                         fCtsHold:1;
858   DWORD                         fDsrHold:1;
859   DWORD                         fRlsdHold:1;
860   DWORD                         fXoffHold:1;
861   DWORD                         fXoffSent:1;
862   DWORD                         fEof:1;
863   DWORD                         fTxim:1;
864   DWORD                         fReserved:25;
865   DWORD                         cbInQue;
866   DWORD                         cbOutQue;
867 } COMSTAT, *LPCOMSTAT;
868
869 typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID);
870
871 typedef struct _CREATE_PROCESS_DEBUG_INFO
872 { HANDLE                        hFile;
873   HANDLE                        hProcess;
874   HANDLE                        hThread;
875   LPVOID                        lpBaseOfImage;
876   DWORD                         dwDebugInfoFileOffset;
877   DWORD                         nDebugInfoSize;
878   LPVOID                        lpThreadLocalBase;
879   LPTHREAD_START_ROUTINE        lpStartAddress;
880   LPVOID                        lpImageName;
881   WORD                          fUnicode;
882 } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
883
884 typedef struct _CREATE_THREAD_DEBUG_INFO
885 { HANDLE                        hThread;
886   LPVOID                        lpThreadLocalBase;
887   LPTHREAD_START_ROUTINE        lpStartAddress;
888 } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
889
890 typedef struct _EXCEPTION_DEBUG_INFO
891 { EXCEPTION_RECORD              ExceptionRecord;
892   DWORD                         dwFirstChance;
893 } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
894
895 typedef struct _EXIT_THREAD_DEBUG_INFO
896 { DWORD                         dwExitCode;
897 } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
898
899 typedef struct _EXIT_PROCESS_DEBUG_INFO
900 { DWORD                         dwExitCode;
901 } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
902
903 typedef struct _LOAD_DLL_DEBUG_INFO
904 { HANDLE                        hFile;
905   LPVOID                        lpBaseOfDll;
906   DWORD                         dwDebugInfoFileOffset;
907   DWORD                         nDebugInfoSize;
908   LPVOID                        lpImageName;
909   WORD                          fUnicode;
910 } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
911
912 typedef struct _UNLOAD_DLL_DEBUG_INFO
913 { LPVOID                        lpBaseOfDll;
914 } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
915
916 typedef struct _OUTPUT_DEBUG_STRING_INFO
917 { LPSTR                         lpDebugStringData;
918   WORD                          fUnicode;
919   WORD                          nDebugStringLength;
920 } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
921
922 typedef struct _RIP_INFO
923 { DWORD                         dwError;
924   DWORD                         dwType;
925 } RIP_INFO, *LPRIP_INFO;
926
927 typedef struct _DEBUG_EVENT
928 { DWORD                         dwDebugEventCode;
929   DWORD                         dwProcessId;
930   DWORD                         dwThreadId;
931   union
932   { EXCEPTION_DEBUG_INFO          Exception;
933     CREATE_THREAD_DEBUG_INFO      CreateThread;
934     CREATE_PROCESS_DEBUG_INFO     CreateProcessInfo;
935     EXIT_THREAD_DEBUG_INFO        ExitThread;
936     EXIT_PROCESS_DEBUG_INFO       ExitProcess;
937     LOAD_DLL_DEBUG_INFO           LoadDll;
938     UNLOAD_DLL_DEBUG_INFO         UnloadDll;
939     OUTPUT_DEBUG_STRING_INFO      DebugString;
940     RIP_INFO                      RipInfo;
941   }                             u;
942 } DEBUG_EVENT, *LPDEBUG_EVENT;
943
944 typedef struct _OVERLAPPED
945 { ULONG_PTR                     Internal;
946   ULONG_PTR                     InternalHigh;
947   __GNUC_EXTENSION union
948   { __GNUC_EXTENSION struct
949     { DWORD                         Offset;
950       DWORD                         OffsetHigh;
951     };
952     PVOID                         Pointer;
953   };
954   HANDLE                        hEvent;
955 } OVERLAPPED, *POVERLAPPED, *LPOVERLAPPED;
956
957 typedef struct _STARTUPINFOA
958 { DWORD                         cb;
959   LPSTR                         lpReserved;
960   LPSTR                         lpDesktop;
961   LPSTR                         lpTitle;
962   DWORD                         dwX;
963   DWORD                         dwY;
964   DWORD                         dwXSize;
965   DWORD                         dwYSize;
966   DWORD                         dwXCountChars;
967   DWORD                         dwYCountChars;
968   DWORD                         dwFillAttribute;
969   DWORD                         dwFlags;
970   WORD                          wShowWindow;
971   WORD                          cbReserved2;
972   PBYTE                         lpReserved2;
973   HANDLE                        hStdInput;
974   HANDLE                        hStdOutput;
975   HANDLE                        hStdError;
976 } STARTUPINFOA, *LPSTARTUPINFOA;
977
978 typedef struct _STARTUPINFOW
979 { DWORD                         cb;
980   LPWSTR                        lpReserved;
981   LPWSTR                        lpDesktop;
982   LPWSTR                        lpTitle;
983   DWORD                         dwX;
984   DWORD                         dwY;
985   DWORD                         dwXSize;
986   DWORD                         dwYSize;
987   DWORD                         dwXCountChars;
988   DWORD                         dwYCountChars;
989   DWORD                         dwFillAttribute;
990   DWORD                         dwFlags;
991   WORD                          wShowWindow;
992   WORD                          cbReserved2;
993   PBYTE                         lpReserved2;
994   HANDLE                        hStdInput;
995   HANDLE                        hStdOutput;
996   HANDLE                        hStdError;
997 } STARTUPINFOW, *LPSTARTUPINFOW;
998
999 typedef __AW_ALIAS__(STARTUPINFO), *LPSTARTUPINFO;
1000
1001 typedef struct _PROCESS_INFORMATION
1002 { HANDLE                        hProcess;
1003   HANDLE                        hThread;
1004   DWORD                         dwProcessId;
1005   DWORD                         dwThreadId;
1006 } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
1007
1008 typedef struct _CRITICAL_SECTION_DEBUG
1009 { WORD                          Type;
1010   WORD                          CreatorBackTraceIndex;
1011   struct _CRITICAL_SECTION *CriticalSection;
1012   LIST_ENTRY                    ProcessLocksList;
1013   DWORD                         EntryCount;
1014   DWORD                         ContentionCount;
1015   DWORD                         Spare[2];
1016 } CRITICAL_SECTION_DEBUG, *PCRITICAL_SECTION_DEBUG;
1017
1018 typedef struct _CRITICAL_SECTION
1019 { PCRITICAL_SECTION_DEBUG       DebugInfo;
1020   LONG                          LockCount;
1021   LONG                          RecursionCount;
1022   HANDLE                        OwningThread;
1023   HANDLE                        LockSemaphore;
1024   DWORD                         SpinCount;
1025 } CRITICAL_SECTION, *PCRITICAL_SECTION, *LPCRITICAL_SECTION;
1026
1027 typedef struct _SYSTEMTIME
1028 { WORD                          wYear;
1029   WORD                          wMonth;
1030   WORD                          wDayOfWeek;
1031   WORD                          wDay;
1032   WORD                          wHour;
1033   WORD                          wMinute;
1034   WORD                          wSecond;
1035   WORD                          wMilliseconds;
1036 } SYSTEMTIME, *LPSYSTEMTIME;
1037
1038 typedef struct _WIN32_FILE_ATTRIBUTE_DATA
1039 { DWORD                         dwFileAttributes;
1040   FILETIME                      ftCreationTime;
1041   FILETIME                      ftLastAccessTime;
1042   FILETIME                      ftLastWriteTime;
1043   DWORD                         nFileSizeHigh;
1044   DWORD                         nFileSizeLow;
1045 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
1046
1047 typedef struct _WIN32_FIND_DATAA
1048 { DWORD                         dwFileAttributes;
1049   FILETIME                      ftCreationTime;
1050   FILETIME                      ftLastAccessTime;
1051   FILETIME                      ftLastWriteTime;
1052   DWORD                         nFileSizeHigh;
1053   DWORD                         nFileSizeLow;
1054 # ifdef _WIN32_WCE
1055   DWORD                         dwOID;
1056 # else
1057   DWORD                         dwReserved0;
1058   DWORD                         dwReserved1;
1059 # endif
1060   CHAR                          cFileName[MAX_PATH];
1061 # ifndef _WIN32_WCE
1062   CHAR                          cAlternateFileName[14];
1063 # endif
1064 } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
1065
1066 typedef struct _WIN32_FIND_DATAW
1067 { DWORD                         dwFileAttributes;
1068   FILETIME                      ftCreationTime;
1069   FILETIME                      ftLastAccessTime;
1070   FILETIME                      ftLastWriteTime;
1071   DWORD                         nFileSizeHigh;
1072   DWORD                         nFileSizeLow;
1073 # ifdef _WIN32_WCE
1074   DWORD                         dwOID;
1075 # else
1076   DWORD                         dwReserved0;
1077   DWORD                         dwReserved1;
1078 # endif
1079   WCHAR                         cFileName[MAX_PATH];
1080 # ifndef _WIN32_WCE
1081   WCHAR                         cAlternateFileName[14];
1082 # endif
1083 } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
1084
1085 typedef __AW_ALIAS__(WIN32_FIND_DATA), *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
1086
1087 typedef struct _WIN32_STREAM_ID
1088 { DWORD                         dwStreamId;
1089   DWORD                         dwStreamAttributes;
1090   LARGE_INTEGER                 Size;
1091   DWORD                         dwStreamNameSize;
1092   WCHAR                         cStreamName[ANYSIZE_ARRAY];
1093 } WIN32_STREAM_ID, *LPWIN32_STREAM_ID;
1094
1095 typedef enum _FINDEX_INFO_LEVELS
1096 { FindExInfoStandard,
1097   FindExInfoMaxInfoLevel
1098 } FINDEX_INFO_LEVELS;
1099
1100 typedef enum _FINDEX_SEARCH_OPS
1101 { FindExSearchNameMatch,
1102   FindExSearchLimitToDirectories,
1103   FindExSearchLimitToDevices,
1104   FindExSearchMaxSearchOp
1105 } FINDEX_SEARCH_OPS;
1106
1107 typedef enum _ACL_INFORMATION_CLASS
1108 { AclRevisionInformation=1,
1109   AclSizeInformation
1110 } ACL_INFORMATION_CLASS;
1111
1112 typedef struct tagHW_PROFILE_INFOA
1113 { DWORD                         dwDockInfo;
1114   CHAR                          szHwProfileGuid[HW_PROFILE_GUIDLEN];
1115   CHAR                          szHwProfileName[MAX_PROFILE_LEN];
1116 } HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA;
1117
1118 typedef struct tagHW_PROFILE_INFOW
1119 { DWORD                         dwDockInfo;
1120   WCHAR                         szHwProfileGuid[HW_PROFILE_GUIDLEN];
1121   WCHAR                         szHwProfileName[MAX_PROFILE_LEN];
1122 } HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW;
1123
1124 typedef __AW_ALIAS__(HW_PROFILE_INFO), *LPHW_PROFILE_INFO;
1125
1126 typedef enum _GET_FILEEX_INFO_LEVELS
1127 { GetFileExInfoStandard,
1128   GetFileExMaxInfoLevel
1129 } GET_FILEEX_INFO_LEVELS;
1130
1131 typedef struct _SYSTEM_INFO
1132 { _ANONYMOUS_UNION union
1133   { DWORD                         dwOemId;
1134     _ANONYMOUS_STRUCT struct
1135     { WORD                          wProcessorArchitecture;
1136       WORD                          wReserved;
1137     }                             DUMMYSTRUCTNAME;
1138   }                             DUMMYUNIONNAME;
1139   DWORD                         dwPageSize;
1140   PVOID                         lpMinimumApplicationAddress;
1141   PVOID                         lpMaximumApplicationAddress;
1142   DWORD                         dwActiveProcessorMask;
1143   DWORD                         dwNumberOfProcessors;
1144   DWORD                         dwProcessorType;
1145   DWORD                         dwAllocationGranularity;
1146   WORD                          wProcessorLevel;
1147   WORD                          wProcessorRevision;
1148 } SYSTEM_INFO, *LPSYSTEM_INFO;
1149
1150 typedef struct _SYSTEM_POWER_STATUS
1151 { BYTE                          ACLineStatus;
1152   BYTE                          BatteryFlag;
1153   BYTE                          BatteryLifePercent;
1154   BYTE                          Reserved1;
1155   DWORD                         BatteryLifeTime;
1156   DWORD                         BatteryFullLifeTime;
1157 } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
1158
1159 typedef struct _TIME_ZONE_INFORMATION
1160 { LONG                          Bias;
1161   WCHAR                         StandardName[32];
1162   SYSTEMTIME                    StandardDate;
1163   LONG                          StandardBias;
1164   WCHAR                         DaylightName[32];
1165   SYSTEMTIME                    DaylightDate;
1166   LONG                          DaylightBias;
1167 } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
1168
1169 typedef struct _MEMORYSTATUS
1170 { DWORD                         dwLength;
1171   DWORD                         dwMemoryLoad;
1172   DWORD                         dwTotalPhys;
1173   DWORD                         dwAvailPhys;
1174   DWORD                         dwTotalPageFile;
1175   DWORD                         dwAvailPageFile;
1176   DWORD                         dwTotalVirtual;
1177   DWORD                         dwAvailVirtual;
1178 } MEMORYSTATUS, *LPMEMORYSTATUS;
1179
1180 typedef struct _LDT_ENTRY
1181 { WORD                          LimitLow;
1182   WORD                          BaseLow;
1183   union
1184   { struct
1185     { BYTE                          BaseMid;
1186       BYTE                          Flags1;
1187       BYTE                          Flags2;
1188       BYTE                          BaseHi;
1189     }                             Bytes;
1190     struct
1191     { DWORD                         BaseMid:8;
1192       DWORD                         Type:5;
1193       DWORD                         Dpl:2;
1194       DWORD                         Pres:1;
1195       DWORD                         LimitHi:4;
1196       DWORD                         Sys:1;
1197       DWORD                         Reserved_0:1;
1198       DWORD                         Default_Big:1;
1199       DWORD                         Granularity:1;
1200       DWORD                         BaseHi:8;
1201     }                             Bits;
1202   }                             HighWord;
1203 } LDT_ENTRY, *PLDT_ENTRY, *LPLDT_ENTRY;
1204
1205 typedef struct _PROCESS_HEAP_ENTRY
1206 { PVOID                         lpData;
1207   DWORD                         cbData;
1208   BYTE cbOverhead;
1209   BYTE iRegionIndex;
1210   WORD wFlags;
1211   _ANONYMOUS_UNION union
1212   { struct
1213     { HANDLE hMem;
1214       DWORD dwReserved[3];
1215     } Block;
1216     struct
1217     { DWORD dwCommittedSize;
1218       DWORD dwUnCommittedSize;
1219       LPVOID lpFirstBlock;
1220       LPVOID lpLastBlock;
1221     } Region;
1222   } DUMMYUNIONNAME;
1223 } PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY;
1224
1225 typedef struct _OFSTRUCT
1226 { BYTE cBytes;
1227   BYTE fFixedDisk;
1228   WORD nErrCode;
1229   WORD Reserved1;
1230   WORD Reserved2;
1231   CHAR szPathName[OFS_MAXPATHNAME];
1232 } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
1233
1234 typedef struct _WIN_CERTIFICATE
1235 { DWORD                         dwLength;
1236   WORD wRevision;
1237   WORD wCertificateType;
1238   BYTE bCertificate[1];
1239 } WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
1240
1241 typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)
1242 ( LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER,
1243   DWORD, DWORD, HANDLE, HANDLE, LPVOID
1244 );
1245 typedef void (WINAPI *LPFIBER_START_ROUTINE)(PVOID);
1246
1247 #define ENUMRESLANGPROC __AW_SUFFIXED__(ENUMRESLANGPROC)
1248 typedef BOOL (CALLBACK *ENUMRESLANGPROCA)(HMODULE, LPCSTR, LPCSTR, WORD, LONG);
1249 typedef BOOL (CALLBACK *ENUMRESLANGPROCW)
1250 (HMODULE, LPCWSTR, LPCWSTR, WORD, LONG);
1251
1252 #define ENUMRESNAMEPROC __AW_SUFFIXED__(ENUMRESNAMEPROC)
1253 typedef BOOL (CALLBACK *ENUMRESNAMEPROCA)(HMODULE, LPCSTR, LPSTR, LONG);
1254 typedef BOOL (CALLBACK *ENUMRESNAMEPROCW)(HMODULE, LPCWSTR, LPWSTR, LONG);
1255
1256 #define ENUMRESTYPEPROC __AW_SUFFIXED__(ENUMRESTYPEPROC)
1257 typedef BOOL (CALLBACK *ENUMRESTYPEPROCA)(HMODULE, LPSTR, LONG);
1258 typedef BOOL (CALLBACK *ENUMRESTYPEPROCW)(HMODULE, LPWSTR, LONG);
1259
1260 typedef void (CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)
1261 (DWORD, DWORD, LPOVERLAPPED);
1262 typedef LONG (CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS);
1263 typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1264 typedef void (APIENTRY *PAPCFUNC)(ULONG_PTR);
1265 typedef void (CALLBACK *PTIMERAPCROUTINE)(PVOID, DWORD, DWORD);
1266
1267 #define MAKEINTATOM(i)  (LPTSTR)((DWORD)((WORD)(i)))
1268
1269 /* Functions */
1270 #ifndef UNDER_CE
1271 int APIENTRY WinMain (HINSTANCE, HINSTANCE, LPSTR, int);
1272 #else
1273 int APIENTRY WinMain (HINSTANCE, HINSTANCE, LPWSTR, int);
1274 #endif
1275
1276 int APIENTRY wWinMain (HINSTANCE, HINSTANCE, LPWSTR, int);
1277
1278 WINBASEAPI long WINAPI _hread (HFILE, LPVOID, long);
1279 WINBASEAPI long WINAPI _hwrite (HFILE, LPCSTR, long);
1280 WINBASEAPI HFILE WINAPI _lclose (HFILE);
1281 WINBASEAPI HFILE WINAPI _lcreat (LPCSTR, int);
1282 WINBASEAPI LONG WINAPI _llseek (HFILE, LONG, int);
1283 WINBASEAPI HFILE WINAPI _lopen (LPCSTR, int);
1284 WINBASEAPI UINT WINAPI _lread (HFILE, LPVOID, UINT);
1285 WINBASEAPI UINT WINAPI _lwrite (HFILE, LPCSTR, UINT);
1286
1287 #define AbnormalTermination()  FALSE
1288
1289 WINBASEAPI BOOL WINAPI AccessCheck
1290 ( PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET,
1291   PDWORD, PDWORD, PBOOL
1292 );
1293
1294 #define AccessCheckAndAuditAlarm __AW_SUFFIXED__(AccessCheckAndAuditAlarm)
1295 WINBASEAPI BOOL WINAPI AccessCheckAndAuditAlarmA
1296 ( LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING,
1297   BOOL, PDWORD, PBOOL, PBOOL
1298 );
1299 WINBASEAPI BOOL WINAPI AccessCheckAndAuditAlarmW
1300 ( LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD,
1301   PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL
1302 );
1303
1304 WINBASEAPI BOOL WINAPI AddAccessAllowedAce (PACL, DWORD, DWORD, PSID);
1305 WINBASEAPI BOOL WINAPI AddAccessDeniedAce (PACL, DWORD, DWORD, PSID);
1306 WINBASEAPI BOOL WINAPI AddAce (PACL, DWORD, DWORD, PVOID, DWORD);
1307
1308 #define AddAtom __AW_SUFFIXED__(AddAtom)
1309 WINBASEAPI ATOM WINAPI AddAtomA (LPCSTR);
1310 WINBASEAPI ATOM WINAPI AddAtomW (LPCWSTR);
1311
1312 WINBASEAPI BOOL WINAPI AddAuditAccessAce (PACL, DWORD, DWORD, PSID, BOOL, BOOL);
1313 WINBASEAPI BOOL WINAPI AdjustTokenGroups
1314 (HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD);
1315 WINBASEAPI BOOL WINAPI AdjustTokenPrivileges
1316 (HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
1317 WINBASEAPI BOOL WINAPI AllocateAndInitializeSid
1318 ( PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD,
1319   DWORD, DWORD, PSID *
1320 );
1321 WINBASEAPI BOOL WINAPI AllocateLocallyUniqueId (PLUID);
1322 WINBASEAPI BOOL WINAPI AreAllAccessesGranted (DWORD, DWORD);
1323 WINBASEAPI BOOL WINAPI AreAnyAccessesGranted (DWORD, DWORD);
1324 WINBASEAPI BOOL WINAPI AreFileApisANSI (void);
1325
1326 #define BackupEventLog __AW_SUFFIXED__(BackupEventLog)
1327 WINBASEAPI BOOL WINAPI BackupEventLogA (HANDLE, LPCSTR);
1328 WINBASEAPI BOOL WINAPI BackupEventLogW (HANDLE, LPCWSTR);
1329
1330 WINBASEAPI BOOL WINAPI BackupRead
1331 (HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID *);
1332 WINBASEAPI BOOL WINAPI BackupSeek
1333 (HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID *);
1334 WINBASEAPI BOOL WINAPI BackupWrite
1335 (HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID *);
1336 WINBASEAPI BOOL WINAPI Beep (DWORD, DWORD);
1337
1338 #define BeginUpdateResource __AW_SUFFIXED__(BeginUpdateResource)
1339 WINBASEAPI HANDLE WINAPI BeginUpdateResourceA (LPCSTR, BOOL);
1340 WINBASEAPI HANDLE WINAPI BeginUpdateResourceW (LPCWSTR, BOOL);
1341
1342 #define BuildCommDCB __AW_SUFFIXED__(BuildCommDCB)
1343 WINBASEAPI BOOL WINAPI BuildCommDCBA (LPCSTR, LPDCB);
1344 WINBASEAPI BOOL WINAPI BuildCommDCBW (LPCWSTR, LPDCB);
1345
1346 #define BuildCommDCBAndTimeouts __AW_SUFFIXED__(BuildCommDCBAndTimeouts)
1347 WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsA (LPCSTR, LPDCB, LPCOMMTIMEOUTS);
1348 WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsW
1349 (LPCWSTR, LPDCB, LPCOMMTIMEOUTS);
1350
1351 #define CallNamedPipe __AW_SUFFIXED__(CallNamedPipe)
1352 WINBASEAPI BOOL WINAPI CallNamedPipeA
1353 (LPCSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD);
1354 WINBASEAPI BOOL WINAPI CallNamedPipeW
1355 (LPCWSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD);
1356
1357 WINBASEAPI BOOL WINAPI CancelDeviceWakeupRequest (HANDLE);
1358 WINBASEAPI BOOL WINAPI CancelIo (HANDLE);
1359 WINBASEAPI BOOL WINAPI CancelWaitableTimer (HANDLE);
1360 WINBASEAPI BOOL WINAPI ClearCommBreak (HANDLE);
1361 WINBASEAPI BOOL WINAPI ClearCommError (HANDLE, PDWORD, LPCOMSTAT);
1362
1363 #define ClearEventLog __AW_SUFFIXED__(ClearEventLog)
1364 WINBASEAPI BOOL WINAPI ClearEventLogA (HANDLE, LPCSTR);
1365 WINBASEAPI BOOL WINAPI ClearEventLogW (HANDLE, LPCWSTR);
1366
1367 WINBASEAPI BOOL WINAPI CloseEventLog (HANDLE);
1368 WINBASEAPI BOOL WINAPI CloseHandle (HANDLE);
1369
1370 #define CommConfigDialog __AW_SUFFIXED__(CommConfigDialog)
1371 WINBASEAPI BOOL WINAPI CommConfigDialogA (LPCSTR, HWND, LPCOMMCONFIG);
1372 WINBASEAPI BOOL WINAPI CommConfigDialogW (LPCWSTR, HWND, LPCOMMCONFIG);
1373
1374 WINBASEAPI LONG WINAPI CompareFileTime (CONST FILETIME *, CONST FILETIME *);
1375 WINBASEAPI BOOL WINAPI ConnectNamedPipe (HANDLE, LPOVERLAPPED);
1376 WINBASEAPI BOOL WINAPI ContinueDebugEvent (DWORD, DWORD, DWORD);
1377 WINBASEAPI PVOID WINAPI ConvertThreadToFiber (PVOID);
1378
1379 #define CopyFile __AW_SUFFIXED__(CopyFile)
1380 WINBASEAPI BOOL WINAPI CopyFileA (LPCSTR, LPCSTR, BOOL);
1381 WINBASEAPI BOOL WINAPI CopyFileW (LPCWSTR, LPCWSTR, BOOL);
1382
1383 #define CopyFileEx __AW_SUFFIXED__(CopyFileEx)
1384 WINBASEAPI BOOL WINAPI CopyFileExA
1385 (LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1386 WINBASEAPI BOOL WINAPI CopyFileExW
1387 (LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1388
1389 #define RtlMoveMemory         memmove
1390 #define RtlCopyMemory         memcpy
1391 #define RtlFillMemory(d,l,f)  memset((d),(f),(l))
1392 #define RtlZeroMemory(d,l)    RtlFillMemory((d),(l),0)
1393 #define MoveMemory            RtlMoveMemory
1394 #define CopyMemory            RtlCopyMemory
1395 #define FillMemory            RtlFillMemory
1396 #define ZeroMemory            RtlZeroMemory
1397
1398 WINBASEAPI BOOL WINAPI CopySid (DWORD, PSID, PSID);
1399
1400 #define CreateDirectory __AW_SUFFIXED__(CreateDirectory)
1401 WINBASEAPI BOOL WINAPI CreateDirectoryA (LPCSTR, LPSECURITY_ATTRIBUTES);
1402 WINBASEAPI BOOL WINAPI CreateDirectoryW (LPCWSTR, LPSECURITY_ATTRIBUTES);
1403
1404 #define CreateDirectoryEx __AW_SUFFIXED__(CreateDirectoryEx)
1405 WINBASEAPI BOOL WINAPI CreateDirectoryExA
1406 (LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
1407 WINBASEAPI BOOL WINAPI CreateDirectoryExW
1408 (LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
1409
1410 #define CreateEvent __AW_SUFFIXED__(CreateEvent)
1411 WINBASEAPI HANDLE WINAPI CreateEventA
1412 (LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR);
1413 WINBASEAPI HANDLE WINAPI CreateEventW
1414 (LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR);
1415
1416 WINBASEAPI LPVOID WINAPI CreateFiber (SIZE_T, LPFIBER_START_ROUTINE, LPVOID);
1417
1418 #define CreateFile __AW_SUFFIXED__(CreateFile)
1419 WINBASEAPI HANDLE WINAPI CreateFileA
1420 (LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
1421 WINBASEAPI HANDLE WINAPI CreateFileW
1422 (LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
1423
1424 #define CreateFileMapping __AW_SUFFIXED__(CreateFileMapping)
1425 WINBASEAPI HANDLE WINAPI CreateFileMappingA
1426 (HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR);
1427 WINBASEAPI HANDLE WINAPI CreateFileMappingW
1428 (HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR);
1429
1430 WINBASEAPI HANDLE WINAPI CreateIoCompletionPort
1431 (HANDLE, HANDLE, ULONG_PTR, DWORD);
1432
1433 #define CreateMailslot __AW_SUFFIXED__(CreateMailslot)
1434 WINBASEAPI HANDLE WINAPI CreateMailslotA
1435 (LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
1436 WINBASEAPI HANDLE WINAPI CreateMailslotW
1437 (LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
1438
1439 #define CreateMutex __AW_SUFFIXED__(CreateMutex)
1440 WINBASEAPI HANDLE WINAPI CreateMutexA (LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
1441 WINBASEAPI HANDLE WINAPI CreateMutexW (LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR);
1442
1443 #define CreateNamedPipe __AW_SUFFIXED__(CreateNamedPipe)
1444 WINBASEAPI HANDLE WINAPI CreateNamedPipeA
1445 (LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
1446 WINBASEAPI HANDLE WINAPI CreateNamedPipeW
1447 (LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
1448
1449 WINBASEAPI BOOL WINAPI CreatePipe
1450 (PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD);
1451 WINBASEAPI BOOL WINAPI CreatePrivateObjectSecurity
1452 ( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *, BOOL,
1453   HANDLE, PGENERIC_MAPPING
1454 );
1455
1456 #define CreateProcess __AW_SUFFIXED__(CreateProcess)
1457 WINBASEAPI BOOL WINAPI CreateProcessA
1458 ( LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD,
1459   PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION
1460 );
1461 WINBASEAPI BOOL WINAPI CreateProcessW
1462 ( LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL,
1463   DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION
1464 );
1465
1466 #define CreateProcessAsUser __AW_SUFFIXED__(CreateProcessAsUser)
1467 WINBASEAPI BOOL WINAPI CreateProcessAsUserA
1468 ( HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL,
1469   DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION
1470 );
1471 WINBASEAPI BOOL WINAPI CreateProcessAsUserW
1472 ( HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES,
1473   BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION
1474 );
1475
1476 WINBASEAPI HANDLE WINAPI CreateRemoteThread
1477 ( HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE,
1478   LPVOID, DWORD, LPDWORD
1479 );
1480
1481 #define CreateSemaphore __AW_SUFFIXED__(CreateSemaphore)
1482 WINBASEAPI HANDLE WINAPI CreateSemaphoreA
1483 (LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR);
1484 WINBASEAPI HANDLE WINAPI CreateSemaphoreW
1485 (LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR);
1486
1487 WINBASEAPI DWORD WINAPI CreateTapePartition (HANDLE, DWORD, DWORD, DWORD);
1488 WINBASEAPI HANDLE WINAPI CreateThread
1489 (LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, PVOID, DWORD, PDWORD);
1490
1491 #define CreateWaitableTimer __AW_SUFFIXED__(CreateWaitableTimer)
1492 WINBASEAPI HANDLE WINAPI CreateWaitableTimerA
1493 (LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
1494 WINBASEAPI HANDLE WINAPI CreateWaitableTimerW
1495 (LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR);
1496
1497 WINBASEAPI BOOL WINAPI DebugActiveProcess (DWORD);
1498 WINBASEAPI void WINAPI DebugBreak (void);
1499
1500 #define DefineDosDevice __AW_SUFFIXED__(DefineDosDevice)
1501 WINBASEAPI BOOL WINAPI DefineDosDeviceA (DWORD, LPCSTR, LPCSTR);
1502 WINBASEAPI BOOL WINAPI DefineDosDeviceW (DWORD, LPCWSTR, LPCWSTR);
1503
1504 #define DefineHandleTable(w)  ((w), TRUE)
1505
1506 WINBASEAPI BOOL WINAPI DeleteAce (PACL, DWORD);
1507 WINBASEAPI ATOM WINAPI DeleteAtom (ATOM);
1508 WINBASEAPI void WINAPI DeleteCriticalSection (PCRITICAL_SECTION);
1509 WINBASEAPI void WINAPI DeleteFiber (PVOID);
1510
1511 #define DeleteFile __AW_SUFFIXED__(DeleteFile)
1512 WINBASEAPI BOOL WINAPI DeleteFileA (LPCSTR);
1513 WINBASEAPI BOOL WINAPI DeleteFileW (LPCWSTR);
1514
1515 WINBASEAPI BOOL WINAPI DeregisterEventSource (HANDLE);
1516 WINBASEAPI BOOL WINAPI DestroyPrivateObjectSecurity (PSECURITY_DESCRIPTOR *);
1517 WINBASEAPI BOOL WINAPI DeviceIoControl
1518 (HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, PDWORD, POVERLAPPED);
1519 WINBASEAPI BOOL WINAPI DisableThreadLibraryCalls (HMODULE);
1520 WINBASEAPI BOOL WINAPI DisconnectNamedPipe (HANDLE);
1521 WINBASEAPI BOOL WINAPI DosDateTimeToFileTime (WORD, WORD, LPFILETIME);
1522 WINBASEAPI BOOL WINAPI DuplicateHandle
1523 (HANDLE, HANDLE, HANDLE, PHANDLE, DWORD, BOOL, DWORD);
1524 WINBASEAPI BOOL WINAPI DuplicateToken
1525 (HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE);
1526 WINBASEAPI BOOL WINAPI DuplicateTokenEx
1527 ( HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL,
1528   TOKEN_TYPE, PHANDLE
1529 );
1530
1531 #define EncryptFile __AW_SUFFIXED__(EncryptFile)
1532 WINBASEAPI BOOL WINAPI EncryptFileA (LPCSTR);
1533 WINBASEAPI BOOL WINAPI EncryptFileW (LPCWSTR);
1534
1535 #define EndUpdateResource __AW_SUFFIXED__(EndUpdateResource)
1536 WINBASEAPI BOOL WINAPI EndUpdateResourceA (HANDLE, BOOL);
1537 WINBASEAPI BOOL WINAPI EndUpdateResourceW (HANDLE, BOOL);
1538
1539 WINBASEAPI void WINAPI EnterCriticalSection (LPCRITICAL_SECTION);
1540
1541 #define EnumResourceLanguages __AW_SUFFIXED__(EnumResourceLanguages)
1542 WINBASEAPI BOOL WINAPI EnumResourceLanguagesA
1543 (HMODULE, LPCSTR, LPCSTR, ENUMRESLANGPROCA, LONG_PTR);
1544 WINBASEAPI BOOL WINAPI EnumResourceLanguagesW
1545 (HMODULE, LPCWSTR, LPCWSTR, ENUMRESLANGPROCW, LONG_PTR);
1546
1547 #define EnumResourceNames __AW_SUFFIXED__(EnumResourceNames)
1548 WINBASEAPI BOOL WINAPI EnumResourceNamesA
1549 (HMODULE, LPCSTR, ENUMRESNAMEPROCA, LONG_PTR);
1550 WINBASEAPI BOOL WINAPI EnumResourceNamesW
1551 (HMODULE, LPCWSTR, ENUMRESNAMEPROCW, LONG_PTR);
1552
1553 #define EnumResourceTypes __AW_SUFFIXED__(EnumResourceTypes)
1554 WINBASEAPI BOOL WINAPI EnumResourceTypesA (HMODULE, ENUMRESTYPEPROCA, LONG_PTR);
1555 WINBASEAPI BOOL WINAPI EnumResourceTypesW (HMODULE, ENUMRESTYPEPROCW, LONG_PTR);
1556
1557 WINBASEAPI BOOL WINAPI EqualPrefixSid (PSID, PSID);
1558 WINBASEAPI BOOL WINAPI EqualSid (PSID, PSID);
1559 WINBASEAPI DWORD WINAPI EraseTape (HANDLE, DWORD, BOOL);
1560 WINBASEAPI BOOL WINAPI EscapeCommFunction (HANDLE, DWORD);
1561 DECLSPEC_NORETURN WINBASEAPI void WINAPI ExitProcess (UINT);
1562 DECLSPEC_NORETURN WINBASEAPI void WINAPI ExitThread (DWORD);
1563
1564 #define ExpandEnvironmentStrings __AW_SUFFIXED__(ExpandEnvironmentStrings)
1565 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA (LPCSTR, LPSTR, DWORD);
1566 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW (LPCWSTR, LPWSTR, DWORD);
1567
1568 #define FatalAppExit __AW_SUFFIXED__(FatalAppExit)
1569 WINBASEAPI void WINAPI FatalAppExitA (UINT, LPCSTR);
1570 WINBASEAPI void WINAPI FatalAppExitW (UINT, LPCWSTR);
1571
1572 WINBASEAPI void WINAPI FatalExit (int);
1573
1574 #define FileEncryptionStatus __AW_SUFFIXED__(FileEncryptionStatus)
1575 WINBASEAPI BOOL WINAPI FileEncryptionStatusA (LPCSTR, LPDWORD);
1576 WINBASEAPI BOOL WINAPI FileEncryptionStatusW (LPCWSTR, LPDWORD);
1577
1578 WINBASEAPI BOOL WINAPI FileTimeToDosDateTime (CONST FILETIME *, LPWORD, LPWORD);
1579 WINBASEAPI BOOL WINAPI FileTimeToLocalFileTime (CONST FILETIME *, LPFILETIME);
1580 WINBASEAPI BOOL WINAPI FileTimeToSystemTime (CONST FILETIME *, LPSYSTEMTIME);
1581
1582 #define FindAtom __AW_SUFFIXED__(FindAtom)
1583 WINBASEAPI ATOM WINAPI FindAtomA (LPCSTR);
1584 WINBASEAPI ATOM WINAPI FindAtomW (LPCWSTR);
1585
1586 WINBASEAPI BOOL WINAPI FindClose (HANDLE);
1587 WINBASEAPI BOOL WINAPI FindCloseChangeNotification (HANDLE);
1588
1589 #define FindFirstChangeNotification __AW_SUFFIXED__(FindFirstChangeNotification)
1590 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA (LPCSTR, BOOL, DWORD);
1591 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW (LPCWSTR, BOOL, DWORD);
1592
1593 #define FindFirstFile __AW_SUFFIXED__(FindFirstFile)
1594 WINBASEAPI HANDLE WINAPI FindFirstFileA (LPCSTR, LPWIN32_FIND_DATAA);
1595 WINBASEAPI HANDLE WINAPI FindFirstFileW (LPCWSTR, LPWIN32_FIND_DATAW);
1596
1597 #define FindFirstFileEx __AW_SUFFIXED__(FindFirstFileEx)
1598 WINBASEAPI HANDLE WINAPI FindFirstFileExA
1599 (LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD);
1600 WINBASEAPI HANDLE WINAPI FindFirstFileExW
1601 (LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD);
1602
1603 WINBASEAPI BOOL WINAPI FindFirstFreeAce (PACL, PVOID *);
1604 WINBASEAPI BOOL WINAPI FindNextChangeNotification (HANDLE);
1605
1606 #define FindNextFile __AW_SUFFIXED__(FindNextFile)
1607 WINBASEAPI BOOL WINAPI FindNextFileA (HANDLE, LPWIN32_FIND_DATAA);
1608 WINBASEAPI BOOL WINAPI FindNextFileW (HANDLE, LPWIN32_FIND_DATAW);
1609
1610 #define FindResource __AW_SUFFIXED__(FindResource)
1611 WINBASEAPI HRSRC WINAPI FindResourceA (HMODULE, LPCSTR, LPCSTR);
1612 WINBASEAPI HRSRC WINAPI FindResourceW (HINSTANCE, LPCWSTR, LPCWSTR);
1613
1614 #define FindResourceEx __AW_SUFFIXED__(FindResourceEx)
1615 WINBASEAPI HRSRC WINAPI FindResourceExA (HINSTANCE, LPCSTR, LPCSTR, WORD);
1616 WINBASEAPI HRSRC WINAPI FindResourceExW (HINSTANCE, LPCWSTR, LPCWSTR, WORD);
1617
1618 WINBASEAPI BOOL WINAPI FlushFileBuffers (HANDLE);
1619 WINBASEAPI BOOL WINAPI FlushInstructionCache (HANDLE, PCVOID, DWORD);
1620 WINBASEAPI BOOL WINAPI FlushViewOfFile (PCVOID, DWORD);
1621
1622 #define FormatMessage __AW_SUFFIXED__(FormatMessage)
1623 WINBASEAPI DWORD WINAPI FormatMessageA
1624 (DWORD, PCVOID, DWORD, DWORD, LPSTR, DWORD, va_list *);
1625 WINBASEAPI DWORD WINAPI FormatMessageW
1626 (DWORD, PCVOID, DWORD, DWORD, LPWSTR, DWORD, va_list *);
1627
1628 #define FreeEnvironmentStrings __AW_SUFFIXED__(FreeEnvironmentStrings)
1629 WINBASEAPI BOOL WINAPI FreeEnvironmentStringsA (LPSTR);
1630 WINBASEAPI BOOL WINAPI FreeEnvironmentStringsW (LPWSTR);
1631
1632 WINBASEAPI BOOL WINAPI FreeLibrary (HMODULE);
1633 DECLSPEC_NORETURN WINBASEAPI void WINAPI FreeLibraryAndExitThread
1634 (HMODULE, DWORD);
1635
1636 #define FreeModule(m)        FreeLibrary(m)
1637 #define FreeProcInstance(p)  (void)(p)
1638
1639 #ifndef XFree86Server
1640 WINBASEAPI BOOL WINAPI FreeResource (HGLOBAL);
1641 #endif /* ndef XFree86Server */
1642
1643 WINBASEAPI PVOID WINAPI FreeSid (PSID);
1644 WINBASEAPI BOOL WINAPI GetAce (PACL, DWORD, LPVOID *);
1645 WINBASEAPI BOOL WINAPI GetAclInformation
1646 (PACL, PVOID, DWORD, ACL_INFORMATION_CLASS);
1647
1648 #define GetAtomName __AW_SUFFIXED__(GetAtomName)
1649 WINBASEAPI UINT WINAPI GetAtomNameA (ATOM, LPSTR, int);
1650 WINBASEAPI UINT WINAPI GetAtomNameW (ATOM, LPWSTR, int);
1651
1652 #define GetBinaryType __AW_SUFFIXED__(GetBinaryType)
1653 WINBASEAPI BOOL WINAPI GetBinaryTypeA (LPCSTR, PDWORD);
1654 WINBASEAPI BOOL WINAPI GetBinaryTypeW (LPCWSTR, PDWORD);
1655
1656 #define GetCommandLine __AW_SUFFIXED__(GetCommandLine)
1657 WINBASEAPI LPSTR WINAPI GetCommandLineA (VOID);
1658 WINBASEAPI LPWSTR WINAPI GetCommandLineW (VOID);
1659
1660 WINBASEAPI BOOL WINAPI GetCommConfig (HANDLE, LPCOMMCONFIG, PDWORD);
1661 WINBASEAPI BOOL WINAPI GetCommMask (HANDLE, PDWORD);
1662 WINBASEAPI BOOL WINAPI GetCommModemStatus (HANDLE, PDWORD);
1663 WINBASEAPI BOOL WINAPI GetCommProperties (HANDLE, LPCOMMPROP);
1664 WINBASEAPI BOOL WINAPI GetCommState (HANDLE, LPDCB);
1665 WINBASEAPI BOOL WINAPI GetCommTimeouts (HANDLE, LPCOMMTIMEOUTS);
1666
1667 #define GetCompressedFileSize __AW_SUFFIXED__(GetCompressedFileSize)
1668 WINBASEAPI DWORD WINAPI GetCompressedFileSizeA (LPCSTR, PDWORD);
1669 WINBASEAPI DWORD WINAPI GetCompressedFileSizeW (LPCWSTR, PDWORD);
1670
1671 #define GetComputerName __AW_SUFFIXED__(GetComputerName)
1672 WINBASEAPI BOOL WINAPI GetComputerNameA (LPSTR, PDWORD);
1673 WINBASEAPI BOOL WINAPI GetComputerNameW (LPWSTR, PDWORD);
1674
1675 #define GetCurrentDirectory __AW_SUFFIXED__(GetCurrentDirectory)
1676 WINBASEAPI DWORD WINAPI GetCurrentDirectoryA (DWORD, LPSTR);
1677 WINBASEAPI DWORD WINAPI GetCurrentDirectoryW (DWORD, LPWSTR);
1678
1679 /* GetCurrentHwProfile: previously missing UNICODE vs. ANSI define */
1680 #define GetCurrentHwProfile __AW_SUFFIXED__(GetCurrentHwProfile)
1681 WINBASEAPI BOOL WINAPI GetCurrentHwProfileA (LPHW_PROFILE_INFOA);
1682 WINBASEAPI BOOL WINAPI GetCurrentHwProfileW (LPHW_PROFILE_INFOW);
1683
1684 WINBASEAPI HANDLE WINAPI GetCurrentProcess (void);
1685 WINBASEAPI DWORD WINAPI GetCurrentProcessId (void);
1686 WINBASEAPI HANDLE WINAPI GetCurrentThread (void);
1687
1688 #ifdef _WIN32_WCE
1689 extern DWORD GetCurrentThreadId (void);
1690 #else
1691 WINBASEAPI DWORD WINAPI GetCurrentThreadId (void);
1692 #endif
1693
1694 #define GetCurrentTime  GetTickCount
1695
1696 #define GetDefaultCommConfig __AW_SUFFIXED__(GetDefaultCommConfig)
1697 WINBASEAPI BOOL WINAPI GetDefaultCommConfigA (LPCSTR, LPCOMMCONFIG, PDWORD);
1698 WINBASEAPI BOOL WINAPI GetDefaultCommConfigW (LPCWSTR, LPCOMMCONFIG, PDWORD);
1699
1700 WINBASEAPI BOOL WINAPI GetDevicePowerState (HANDLE, BOOL *);
1701
1702 #define GetDiskFreeSpace __AW_SUFFIXED__(GetDiskFreeSpace)
1703 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceA
1704 (LPCSTR, PDWORD, PDWORD, PDWORD, PDWORD);
1705 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceW
1706 (LPCWSTR, PDWORD, PDWORD, PDWORD, PDWORD);
1707
1708 #define GetDiskFreeSpaceEx __AW_SUFFIXED__(GetDiskFreeSpaceEx)
1709 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExA
1710 (LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
1711 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExW
1712 (LPCWSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
1713
1714 #define GetDriveType __AW_SUFFIXED__(GetDriveType)
1715 WINBASEAPI UINT WINAPI GetDriveTypeA (LPCSTR);
1716 WINBASEAPI UINT WINAPI GetDriveTypeW (LPCWSTR);
1717
1718 WINBASEAPI LPCH WINAPI GetEnvironmentStrings (void);
1719
1720 #define GetEnvironmentStrings __AW_SUFFIXED__(GetEnvironmentStrings)
1721 WINBASEAPI LPCH WINAPI GetEnvironmentStringsA (void);
1722 WINBASEAPI LPWCH WINAPI GetEnvironmentStringsW (void);
1723
1724 #define GetEnvironmentVariable __AW_SUFFIXED__(GetEnvironmentVariable)
1725 WINBASEAPI DWORD WINAPI GetEnvironmentVariableA (LPCSTR, LPSTR, DWORD);
1726 WINBASEAPI DWORD WINAPI GetEnvironmentVariableW (LPCWSTR, LPWSTR, DWORD);
1727
1728 WINBASEAPI BOOL WINAPI GetExitCodeProcess (HANDLE, PDWORD);
1729 WINBASEAPI BOOL WINAPI GetExitCodeThread (HANDLE, PDWORD);
1730
1731 #define GetFileAttributes __AW_SUFFIXED__(GetFileAttributes)
1732 WINBASEAPI DWORD WINAPI GetFileAttributesA (LPCSTR);
1733 WINBASEAPI DWORD WINAPI GetFileAttributesW (LPCWSTR);
1734
1735 #define GetFileAttributesEx __AW_SUFFIXED__(GetFileAttributesEx)
1736 WINBASEAPI BOOL WINAPI GetFileAttributesExA
1737 (LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID);
1738 WINBASEAPI BOOL WINAPI GetFileAttributesExW
1739 (LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID);
1740
1741 WINBASEAPI BOOL WINAPI GetFileInformationByHandle
1742 (HANDLE, LPBY_HANDLE_FILE_INFORMATION);
1743
1744 #define GetFileSecurity __AW_SUFFIXED__(GetFileSecurity)
1745 WINBASEAPI BOOL WINAPI GetFileSecurityA
1746 (LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
1747 WINBASEAPI BOOL WINAPI GetFileSecurityW
1748 (LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
1749
1750 WINBASEAPI DWORD WINAPI GetFileSize (HANDLE, PDWORD);
1751 WINBASEAPI BOOL WINAPI GetFileTime (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME);
1752 WINBASEAPI DWORD WINAPI GetFileType (HANDLE);
1753
1754 #define GetFreeSpace(w)  (0x100000L)
1755
1756 #define GetFullPathName __AW_SUFFIXED__(GetFullPathName)
1757 WINBASEAPI DWORD WINAPI GetFullPathNameA (LPCSTR, DWORD, LPSTR, LPSTR *);
1758 WINBASEAPI DWORD WINAPI GetFullPathNameW (LPCWSTR, DWORD, LPWSTR, LPWSTR *);
1759
1760 WINBASEAPI BOOL WINAPI GetHandleInformation (HANDLE, PDWORD);
1761 WINBASEAPI BOOL WINAPI GetKernelObjectSecurity
1762 (HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
1763 WINBASEAPI DWORD WINAPI GetLastError (void);
1764 WINBASEAPI DWORD WINAPI GetLengthSid (PSID);
1765 WINBASEAPI void WINAPI GetLocalTime (LPSYSTEMTIME);
1766 WINBASEAPI DWORD WINAPI GetLogicalDrives (void);
1767
1768 #define GetLogicalDriveStrings __AW_SUFFIXED__(GetLogicalDriveStrings)
1769 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA (DWORD, LPSTR);
1770 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW (DWORD, LPWSTR);
1771
1772 WINBASEAPI BOOL WINAPI GetMailslotInfo (HANDLE, PDWORD, PDWORD, PDWORD, PDWORD);
1773
1774 #define GetModuleFileName __AW_SUFFIXED__(GetModuleFileName)
1775 WINBASEAPI DWORD WINAPI GetModuleFileNameA (HINSTANCE, LPSTR, DWORD);
1776 WINBASEAPI DWORD WINAPI GetModuleFileNameW (HINSTANCE, LPWSTR, DWORD);
1777
1778 #define GetModuleHandle __AW_SUFFIXED__(GetModuleHandle)
1779 WINBASEAPI HMODULE WINAPI GetModuleHandleA (LPCSTR);
1780 WINBASEAPI HMODULE WINAPI GetModuleHandleW (LPCWSTR);
1781
1782 #define GetNamedPipeHandleState __AW_SUFFIXED__(GetNamedPipeHandleState)
1783 WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateA
1784 (HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LPSTR, DWORD);
1785 WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateW
1786 (HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LPWSTR, DWORD);
1787
1788 WINBASEAPI BOOL WINAPI GetNamedPipeInfo
1789 (HANDLE, PDWORD, PDWORD, PDWORD, PDWORD);
1790 WINBASEAPI BOOL WINAPI GetNumberOfEventLogRecords (HANDLE, PDWORD);
1791 WINBASEAPI BOOL WINAPI GetOldestEventLogRecord (HANDLE, PDWORD);
1792 WINBASEAPI BOOL WINAPI GetOverlappedResult (HANDLE, LPOVERLAPPED, PDWORD, BOOL);
1793 WINBASEAPI DWORD WINAPI GetPriorityClass (HANDLE);
1794 WINBASEAPI BOOL WINAPI GetPrivateObjectSecurity
1795 ( PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR,
1796   DWORD, PDWORD
1797 );
1798
1799 #define GetPrivateProfileInt __AW_SUFFIXED__(GetPrivateProfileInt)
1800 WINBASEAPI UINT WINAPI GetPrivateProfileIntA (LPCSTR, LPCSTR, INT, LPCSTR);
1801 WINBASEAPI UINT WINAPI GetPrivateProfileIntW (LPCWSTR, LPCWSTR, INT, LPCWSTR);
1802
1803 #define GetPrivateProfileSection __AW_SUFFIXED__(GetPrivateProfileSection)
1804 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionA
1805 (LPCSTR, LPSTR, DWORD, LPCSTR);
1806 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionW
1807 (LPCWSTR, LPWSTR, DWORD, LPCWSTR);
1808
1809 #define \
1810 GetPrivateProfileSectionNames __AW_SUFFIXED__(GetPrivateProfileSectionNames)
1811 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesA (LPSTR, DWORD, LPCSTR);
1812 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesW (LPWSTR, DWORD, LPCWSTR);
1813
1814 #define GetPrivateProfileString __AW_SUFFIXED__(GetPrivateProfileString)
1815 WINBASEAPI DWORD WINAPI GetPrivateProfileStringA
1816 (LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD, LPCSTR);
1817 WINBASEAPI DWORD WINAPI GetPrivateProfileStringW
1818 (LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPCWSTR);
1819
1820 #define GetPrivateProfileStruct __AW_SUFFIXED__(GetPrivateProfileStruct)
1821 WINBASEAPI BOOL WINAPI GetPrivateProfileStructA
1822 (LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR);
1823 WINBASEAPI BOOL WINAPI GetPrivateProfileStructW
1824 (LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR);
1825
1826 WINBASEAPI FARPROC WINAPI GetProcAddress (HINSTANCE, LPCSTR);
1827 WINBASEAPI BOOL WINAPI GetProcessAffinityMask (HANDLE, PDWORD, PDWORD);
1828
1829 WINBASEAPI HANDLE WINAPI GetProcessHeap (VOID);
1830 WINBASEAPI DWORD WINAPI GetProcessHeaps (DWORD, PHANDLE);
1831 WINBASEAPI BOOL WINAPI GetProcessPriorityBoost (HANDLE, PBOOL);
1832 WINBASEAPI BOOL WINAPI GetProcessShutdownParameters (PDWORD, PDWORD);
1833 WINBASEAPI BOOL WINAPI GetProcessTimes
1834 (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);
1835 WINBASEAPI DWORD WINAPI GetProcessVersion (DWORD);
1836 WINBASEAPI HWINSTA WINAPI GetProcessWindowStation (void);
1837 WINBASEAPI BOOL WINAPI GetProcessWorkingSetSize (HANDLE, PSIZE_T, PSIZE_T);
1838
1839 #define GetProfileInt __AW_SUFFIXED__(GetProfileInt)
1840 WINBASEAPI UINT WINAPI GetProfileIntA (LPCSTR, LPCSTR, INT);
1841 WINBASEAPI UINT WINAPI GetProfileIntW (LPCWSTR, LPCWSTR, INT);
1842
1843 #define GetProfileSection __AW_SUFFIXED__(GetProfileSection)
1844 WINBASEAPI DWORD WINAPI GetProfileSectionA (LPCSTR, LPSTR, DWORD);
1845 WINBASEAPI DWORD WINAPI GetProfileSectionW (LPCWSTR, LPWSTR, DWORD);
1846
1847 #define GetProfileString __AW_SUFFIXED__(GetProfileString)
1848 WINBASEAPI DWORD WINAPI GetProfileStringA
1849 (LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD);
1850 WINBASEAPI DWORD WINAPI GetProfileStringW
1851 (LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD);
1852
1853 WINBASEAPI BOOL WINAPI GetQueuedCompletionStatus
1854 (HANDLE, PDWORD, PULONG_PTR, LPOVERLAPPED *, DWORD);
1855 WINBASEAPI BOOL WINAPI GetSecurityDescriptorControl
1856 (PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, PDWORD);
1857 WINBASEAPI BOOL WINAPI GetSecurityDescriptorDacl
1858 (PSECURITY_DESCRIPTOR, LPBOOL, PACL *, LPBOOL);
1859 WINBASEAPI BOOL WINAPI GetSecurityDescriptorGroup
1860 (PSECURITY_DESCRIPTOR, PSID *, LPBOOL);
1861 WINBASEAPI DWORD WINAPI GetSecurityDescriptorLength (PSECURITY_DESCRIPTOR);
1862 WINBASEAPI BOOL WINAPI GetSecurityDescriptorOwner
1863 (PSECURITY_DESCRIPTOR, PSID *, LPBOOL);
1864 WINBASEAPI BOOL WINAPI GetSecurityDescriptorSacl
1865 (PSECURITY_DESCRIPTOR, LPBOOL, PACL *, LPBOOL);
1866
1867 #define GetShortPathName __AW_SUFFIXED__(GetShortPathName)
1868 WINBASEAPI DWORD WINAPI GetShortPathNameA (LPCSTR, LPSTR, DWORD);
1869 WINBASEAPI DWORD WINAPI GetShortPathNameW (LPCWSTR, LPWSTR, DWORD);
1870
1871 WINBASEAPI PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority (PSID);
1872 WINBASEAPI DWORD WINAPI GetSidLengthRequired (UCHAR);
1873 WINBASEAPI PDWORD WINAPI GetSidSubAuthority (PSID, DWORD);
1874 WINBASEAPI PUCHAR WINAPI GetSidSubAuthorityCount (PSID);
1875
1876 #define GetStartupInfo __AW_SUFFIXED__(GetStartupInfo)
1877 WINBASEAPI VOID WINAPI GetStartupInfoA (LPSTARTUPINFOA);
1878 WINBASEAPI VOID WINAPI GetStartupInfoW (LPSTARTUPINFOW);
1879
1880 WINBASEAPI HANDLE WINAPI GetStdHandle (DWORD);
1881
1882 #define GetSystemDirectory __AW_SUFFIXED__(GetSystemDirectory)
1883 WINBASEAPI UINT WINAPI GetSystemDirectoryA (LPSTR, UINT);
1884 WINBASEAPI UINT WINAPI GetSystemDirectoryW (LPWSTR, UINT);
1885
1886 WINBASEAPI VOID WINAPI GetSystemInfo (LPSYSTEM_INFO);
1887 WINBASEAPI BOOL WINAPI GetSystemPowerStatus (LPSYSTEM_POWER_STATUS);
1888 WINBASEAPI VOID WINAPI GetSystemTime (LPSYSTEMTIME);
1889 WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment (PDWORD, PDWORD, PBOOL);
1890 WINBASEAPI void WINAPI GetSystemTimeAsFileTime (LPFILETIME);
1891 WINBASEAPI DWORD WINAPI GetTapeParameters (HANDLE, DWORD, PDWORD, PVOID);
1892 WINBASEAPI DWORD WINAPI GetTapePosition (HANDLE, DWORD, PDWORD, PDWORD, PDWORD);
1893 WINBASEAPI DWORD WINAPI GetTapeStatus (HANDLE);
1894
1895 #define GetTempFileName __AW_SUFFIXED__(GetTempFileName)
1896 WINBASEAPI UINT WINAPI GetTempFileNameA (LPCSTR, LPCSTR, UINT, LPSTR);
1897 WINBASEAPI UINT WINAPI GetTempFileNameW (LPCWSTR, LPCWSTR, UINT, LPWSTR);
1898
1899 #define GetTempPath __AW_SUFFIXED__(GetTempPath)
1900 WINBASEAPI DWORD WINAPI GetTempPathA (DWORD, LPSTR);
1901 WINBASEAPI DWORD WINAPI GetTempPathW (DWORD, LPWSTR);
1902
1903 WINBASEAPI BOOL WINAPI GetThreadContext (HANDLE, LPCONTEXT);
1904 WINBASEAPI int WINAPI GetThreadPriority (HANDLE);
1905 WINBASEAPI BOOL WINAPI GetThreadPriorityBoost (HANDLE, PBOOL);
1906 WINBASEAPI BOOL WINAPI GetThreadSelectorEntry (HANDLE, DWORD, LPLDT_ENTRY);
1907 WINBASEAPI BOOL WINAPI GetThreadTimes
1908 (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);
1909 WINBASEAPI DWORD WINAPI GetTickCount (VOID);
1910 WINBASEAPI DWORD WINAPI GetTimeZoneInformation (LPTIME_ZONE_INFORMATION);
1911 WINBASEAPI BOOL WINAPI GetTokenInformation
1912 (HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD, PDWORD);
1913
1914 #define GetUserName __AW_SUFFIXED__(GetUserName)
1915 WINBASEAPI BOOL WINAPI GetUserNameA (LPSTR, PDWORD);
1916 WINBASEAPI BOOL WINAPI GetUserNameW (LPWSTR, PDWORD);
1917
1918 WINBASEAPI DWORD WINAPI GetVersion (void);
1919
1920 #define GetVersionEx __AW_SUFFIXED__(GetVersionEx)
1921 WINBASEAPI BOOL WINAPI GetVersionExA (LPOSVERSIONINFOA);
1922 WINBASEAPI BOOL WINAPI GetVersionExW (LPOSVERSIONINFOW);
1923
1924 #define GetVolumeInformation __AW_SUFFIXED__(GetVolumeInformation)
1925 WINBASEAPI BOOL WINAPI GetVolumeInformationA
1926 (LPCSTR, LPSTR, DWORD, PDWORD, PDWORD, PDWORD, LPSTR, DWORD);
1927 WINBASEAPI BOOL WINAPI GetVolumeInformationW
1928 (LPCWSTR, LPWSTR, DWORD, PDWORD, PDWORD, PDWORD, LPWSTR, DWORD);
1929
1930 #define GetWindowsDirectory __AW_SUFFIXED__(GetWindowsDirectory)
1931 WINBASEAPI UINT WINAPI GetWindowsDirectoryA (LPSTR, UINT);
1932 WINBASEAPI UINT WINAPI GetWindowsDirectoryW (LPWSTR, UINT);
1933
1934 WINBASEAPI DWORD WINAPI GetWindowThreadProcessId (HWND, PDWORD);
1935 WINBASEAPI UINT WINAPI GetWriteWatch
1936 (DWORD, PVOID, SIZE_T, PVOID *, PULONG_PTR, PULONG);
1937
1938 #define GlobalAddAtom __AW_SUFFIXED__(GlobalAddAtom)
1939 WINBASEAPI ATOM WINAPI GlobalAddAtomA (LPCSTR);
1940 WINBASEAPI ATOM WINAPI GlobalAddAtomW (LPCWSTR);
1941
1942 WINBASEAPI HGLOBAL WINAPI GlobalAlloc (UINT, DWORD);
1943 WINBASEAPI SIZE_T WINAPI GlobalCompact (DWORD); /* Obsolete: Has no effect. */
1944 WINBASEAPI ATOM WINAPI GlobalDeleteAtom (ATOM);
1945
1946 #define GlobalDiscard(hMem)  GlobalReAlloc((hMem), 0, GMEM_MOVEABLE)
1947
1948 #define GlobalFindAtom __AW_SUFFIXED__(GlobalFindAtom)
1949 WINBASEAPI ATOM WINAPI GlobalFindAtomA (LPCSTR);
1950 WINBASEAPI ATOM WINAPI GlobalFindAtomW (LPCWSTR);
1951
1952 WINBASEAPI VOID WINAPI GlobalFix (HGLOBAL); /* Obsolete: Has no effect. */
1953 WINBASEAPI UINT WINAPI GlobalFlags (HGLOBAL); /* Obsolete: Has no effect. */
1954 WINBASEAPI HGLOBAL WINAPI GlobalFree (HGLOBAL);
1955
1956 #define GlobalGetAtomName __AW_SUFFIXED__(GlobalGetAtomName)
1957 WINBASEAPI UINT WINAPI GlobalGetAtomNameA (ATOM, LPSTR, int);
1958 WINBASEAPI UINT WINAPI GlobalGetAtomNameW (ATOM, LPWSTR, int);
1959
1960 WINBASEAPI HGLOBAL WINAPI GlobalHandle (PCVOID);
1961 WINBASEAPI LPVOID WINAPI GlobalLock (HGLOBAL);
1962 WINBASEAPI VOID WINAPI GlobalMemoryStatus (LPMEMORYSTATUS);
1963 WINBASEAPI HGLOBAL WINAPI GlobalReAlloc (HGLOBAL, DWORD, UINT);
1964 WINBASEAPI DWORD WINAPI GlobalSize (HGLOBAL);
1965 WINBASEAPI VOID WINAPI GlobalUnfix (HGLOBAL); /* Obsolete: Has no effect. */
1966 WINBASEAPI BOOL WINAPI GlobalUnlock (HGLOBAL);
1967 WINBASEAPI BOOL WINAPI GlobalUnWire (HGLOBAL); /* Obsolete: Has no effect. */
1968 WINBASEAPI PVOID WINAPI GlobalWire (HGLOBAL); /* Obsolete: Has no effect. */
1969
1970 #define HasOverlappedIoCompleted(lpOverlapped)  \
1971   ((lpOverlapped)->Internal != STATUS_PENDING)
1972
1973 WINBASEAPI PVOID WINAPI HeapAlloc (HANDLE, DWORD, DWORD);
1974 SIZE_T WINAPI HeapCompact (HANDLE, DWORD);
1975 WINBASEAPI HANDLE WINAPI HeapCreate (DWORD, DWORD, DWORD);
1976 WINBASEAPI BOOL WINAPI HeapDestroy (HANDLE);
1977 WINBASEAPI BOOL WINAPI HeapFree (HANDLE, DWORD, PVOID);
1978 WINBASEAPI BOOL WINAPI HeapLock (HANDLE);
1979 WINBASEAPI PVOID WINAPI HeapReAlloc (HANDLE, DWORD, PVOID, DWORD);
1980 WINBASEAPI DWORD WINAPI HeapSize (HANDLE, DWORD, PCVOID);
1981 WINBASEAPI BOOL WINAPI HeapUnlock (HANDLE);
1982 WINBASEAPI BOOL WINAPI HeapValidate (HANDLE, DWORD, PCVOID);
1983 WINBASEAPI BOOL WINAPI HeapWalk (HANDLE, LPPROCESS_HEAP_ENTRY);
1984 WINBASEAPI BOOL WINAPI ImpersonateLoggedOnUser (HANDLE);
1985 WINBASEAPI BOOL WINAPI ImpersonateNamedPipeClient (HANDLE);
1986 WINBASEAPI BOOL WINAPI ImpersonateSelf (SECURITY_IMPERSONATION_LEVEL);
1987 WINBASEAPI BOOL WINAPI InitAtomTable (DWORD);
1988 WINBASEAPI BOOL WINAPI InitializeAcl (PACL, DWORD, DWORD);
1989 WINBASEAPI VOID WINAPI InitializeCriticalSection (LPCRITICAL_SECTION);
1990 WINBASEAPI BOOL WINAPI InitializeCriticalSectionAndSpinCount
1991 (LPCRITICAL_SECTION, DWORD);
1992 WINBASEAPI DWORD WINAPI SetCriticalSectionSpinCount (LPCRITICAL_SECTION, DWORD);
1993 WINBASEAPI BOOL WINAPI InitializeSecurityDescriptor
1994 (PSECURITY_DESCRIPTOR, DWORD);
1995 WINBASEAPI BOOL WINAPI InitializeSid (PSID, PSID_IDENTIFIER_AUTHORITY, BYTE);
1996
1997 #if !(__USE_NTOSKRNL__)
1998 /* CAREFUL: These are exported from ntoskrnl.exe and declared in winddk.h
1999    as __fastcall functions, but are  exported from kernel32.dll as __stdcall */
2000 #if (_WIN32_WINNT >= 0x0501)
2001 WINBASEAPI VOID WINAPI InitializeSListHead (PSLIST_HEADER);
2002 #endif
2003
2004 #ifndef __INTERLOCKED_DECLARED
2005 /* FIXME: Is this another invitation for inconsistent definition?
2006  * Where else is this declared?
2007  */
2008 #define __INTERLOCKED_DECLARED
2009 LONG WINAPI InterlockedCompareExchange (LONG volatile *, LONG, LONG);
2010 /* PVOID WINAPI InterlockedCompareExchangePointer (PVOID *, PVOID, PVOID); */
2011 #define InterlockedCompareExchangePointer(d, e, c)  \
2012   (PVOID)InterlockedCompareExchange((LONG volatile *)(d),(LONG)(e),(LONG)(c))
2013 LONG WINAPI InterlockedDecrement (LONG volatile *);
2014 LONG WINAPI InterlockedExchange (LONG volatile *, LONG);
2015 /* PVOID WINAPI InterlockedExchangePointer (PVOID *, PVOID); */
2016 #define InterlockedExchangePointer(t, v)  \
2017   (PVOID)InterlockedExchange((LONG volatile *)(t),(LONG)(v))
2018 LONG WINAPI InterlockedExchangeAdd (LONG volatile *, LONG);
2019
2020 #if (_WIN32_WINNT >= 0x0501)
2021 PSLIST_ENTRY WINAPI InterlockedFlushSList (PSLIST_HEADER);
2022 #endif
2023
2024 LONG WINAPI InterlockedIncrement (LONG volatile *);
2025
2026 #if (_WIN32_WINNT >= 0x0501)
2027 PSLIST_ENTRY WINAPI InterlockedPopEntrySList (PSLIST_HEADER);
2028 PSLIST_ENTRY WINAPI InterlockedPushEntrySList (PSLIST_HEADER, PSLIST_ENTRY);
2029 #endif
2030 #endif /* __INTERLOCKED_DECLARED */
2031 #endif /*  __USE_NTOSKRNL__ */
2032
2033 WINBASEAPI BOOL WINAPI IsBadCodePtr (FARPROC);
2034 WINBASEAPI BOOL WINAPI IsBadHugeReadPtr (PCVOID, UINT);
2035 WINBASEAPI BOOL WINAPI IsBadHugeWritePtr (PVOID, UINT);
2036 WINBASEAPI BOOL WINAPI IsBadReadPtr (PCVOID, UINT);
2037
2038 #define IsBadStringPtr __AW_SUFFIXED__(IsBadStringPtr)
2039 WINBASEAPI BOOL WINAPI IsBadStringPtrA (LPCSTR, UINT);
2040 WINBASEAPI BOOL WINAPI IsBadStringPtrW (LPCWSTR, UINT);
2041
2042 WINBASEAPI BOOL WINAPI IsBadWritePtr (PVOID, UINT);
2043 WINBASEAPI BOOL WINAPI IsDebuggerPresent (void);
2044 WINBASEAPI BOOL WINAPI IsProcessorFeaturePresent (DWORD);
2045 WINBASEAPI BOOL WINAPI IsSystemResumeAutomatic (void);
2046 WINBASEAPI BOOL WINAPI IsTextUnicode (PCVOID, int, LPINT);
2047 WINBASEAPI BOOL WINAPI IsValidAcl (PACL);
2048 WINBASEAPI BOOL WINAPI IsValidSecurityDescriptor (PSECURITY_DESCRIPTOR);
2049 WINBASEAPI BOOL WINAPI IsValidSid (PSID);
2050
2051 WINBASEAPI void WINAPI LeaveCriticalSection (LPCRITICAL_SECTION);
2052
2053 #define LimitEmsPages(n)
2054
2055 #define LoadLibrary __AW_SUFFIXED__(LoadLibrary)
2056 WINBASEAPI HINSTANCE WINAPI LoadLibraryA (LPCSTR);
2057 WINBASEAPI HINSTANCE WINAPI LoadLibraryW (LPCWSTR);
2058
2059 #define LoadLibraryEx __AW_SUFFIXED__(LoadLibraryEx)
2060 WINBASEAPI HINSTANCE WINAPI LoadLibraryExA (LPCSTR, HANDLE, DWORD);
2061 WINBASEAPI HINSTANCE WINAPI LoadLibraryExW (LPCWSTR, HANDLE, DWORD);
2062
2063 WINBASEAPI DWORD WINAPI LoadModule (LPCSTR, PVOID);
2064 WINBASEAPI HGLOBAL WINAPI LoadResource (HINSTANCE, HRSRC);
2065 WINBASEAPI HLOCAL WINAPI LocalAlloc (UINT, SIZE_T);
2066 WINBASEAPI SIZE_T WINAPI LocalCompact (UINT); /* Obsolete: Has no effect. */
2067 WINBASEAPI HLOCAL LocalDiscard (HLOCAL);
2068 WINBASEAPI BOOL WINAPI LocalFileTimeToFileTime (CONST FILETIME *, LPFILETIME);
2069 WINBASEAPI UINT WINAPI LocalFlags (HLOCAL); /* Obsolete: Has no effect. */
2070 WINBASEAPI HLOCAL WINAPI LocalFree (HLOCAL);
2071 WINBASEAPI HLOCAL WINAPI LocalHandle (LPCVOID);
2072 WINBASEAPI PVOID WINAPI LocalLock (HLOCAL);
2073 WINBASEAPI HLOCAL WINAPI LocalReAlloc (HLOCAL, SIZE_T, UINT);
2074 WINBASEAPI SIZE_T WINAPI LocalShrink (HLOCAL, UINT);  /* Obsolete: Has no effect. */
2075 WINBASEAPI UINT WINAPI LocalSize (HLOCAL);
2076 WINBASEAPI BOOL WINAPI LocalUnlock (HLOCAL);
2077 WINBASEAPI BOOL WINAPI LockFile (HANDLE, DWORD, DWORD, DWORD, DWORD);
2078 WINBASEAPI BOOL WINAPI LockFileEx
2079 (HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
2080 WINBASEAPI PVOID WINAPI LockResource (HGLOBAL);
2081
2082 #define LockSegment(w)  GlobalFix((HANDLE)(w)) /* Obsolete: Has no effect. */
2083
2084 #define LogonUser __AW_SUFFIXED__(LogonUser)
2085 WINBASEAPI BOOL WINAPI LogonUserA (LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE);
2086 WINBASEAPI BOOL WINAPI LogonUserW
2087 (LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE);
2088
2089 #define LookupAccountName __AW_SUFFIXED__(LookupAccountName)
2090 WINBASEAPI BOOL WINAPI LookupAccountNameA
2091 (LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDWORD, PSID_NAME_USE);
2092 WINBASEAPI BOOL WINAPI LookupAccountNameW
2093 (LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE);
2094
2095 #define LookupAccountSid __AW_SUFFIXED__(LookupAccountSid)
2096 WINBASEAPI BOOL WINAPI LookupAccountSidA
2097 (LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWORD, PSID_NAME_USE);
2098 WINBASEAPI BOOL WINAPI LookupAccountSidW
2099 (LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE);
2100
2101 #define LookupPrivilegeDisplayName __AW_SUFFIXED__(LookupPrivilegeDisplayName)
2102 WINBASEAPI BOOL WINAPI LookupPrivilegeDisplayNameA
2103 (LPCSTR, LPCSTR, LPSTR, PDWORD, PDWORD);
2104 WINBASEAPI BOOL WINAPI LookupPrivilegeDisplayNameW
2105 (LPCWSTR, LPCWSTR, LPWSTR, PDWORD, PDWORD);
2106
2107 #define LookupPrivilegeName __AW_SUFFIXED__(LookupPrivilegeName)
2108 WINBASEAPI BOOL WINAPI LookupPrivilegeNameA (LPCSTR, PLUID, LPSTR, PDWORD);
2109 WINBASEAPI BOOL WINAPI LookupPrivilegeNameW (LPCWSTR, PLUID, LPWSTR, PDWORD);
2110
2111 #define LookupPrivilegeValue __AW_SUFFIXED__(LookupPrivilegeValue)
2112 WINBASEAPI BOOL WINAPI LookupPrivilegeValueA (LPCSTR, LPCSTR, PLUID);
2113 WINBASEAPI BOOL WINAPI LookupPrivilegeValueW (LPCWSTR, LPCWSTR, PLUID);
2114
2115 #define lstrcat __AW_SUFFIXED__(lstrcat)
2116 WINBASEAPI LPSTR WINAPI lstrcatA (LPSTR, LPCSTR);
2117 WINBASEAPI LPWSTR WINAPI lstrcatW (LPWSTR, LPCWSTR);
2118
2119 #define lstrcmp __AW_SUFFIXED__(lstrcmp)
2120 WINBASEAPI int WINAPI lstrcmpA (LPCSTR, LPCSTR);
2121 WINBASEAPI int WINAPI lstrcmpW (LPCWSTR, LPCWSTR);
2122
2123 #define lstrcmpi __AW_SUFFIXED__(lstrcmpi)
2124 WINBASEAPI int WINAPI lstrcmpiA (LPCSTR, LPCSTR);
2125 WINBASEAPI int WINAPI lstrcmpiW (LPCWSTR, LPCWSTR);
2126
2127 #define lstrcpy __AW_SUFFIXED__(lstrcpy)
2128 WINBASEAPI LPSTR WINAPI lstrcpyA (LPSTR, LPCSTR);
2129 WINBASEAPI LPWSTR WINAPI lstrcpyW (LPWSTR, LPCWSTR);
2130
2131 #define lstrcpyn __AW_SUFFIXED__(lstrcpyn)
2132 WINBASEAPI LPSTR WINAPI lstrcpynA (LPSTR, LPCSTR, int);
2133 WINBASEAPI LPWSTR WINAPI lstrcpynW (LPWSTR, LPCWSTR, int);
2134
2135 #define lstrlen __AW_SUFFIXED__(lstrlen)
2136 WINBASEAPI int WINAPI lstrlenA (LPCSTR);
2137 WINBASEAPI int WINAPI lstrlenW (LPCWSTR);
2138
2139 WINBASEAPI BOOL WINAPI MakeAbsoluteSD
2140 ( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL,
2141   PDWORD, PSID, PDWORD, PSID, PDWORD
2142 );
2143
2144 #define MakeProcInstance(p, i)  (p)
2145
2146 WINBASEAPI BOOL WINAPI MakeSelfRelativeSD
2147 (PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD);
2148 WINBASEAPI VOID WINAPI MapGenericMask (PDWORD, PGENERIC_MAPPING);
2149 WINBASEAPI PVOID WINAPI MapViewOfFile (HANDLE, DWORD, DWORD, DWORD, DWORD);
2150 WINBASEAPI PVOID WINAPI MapViewOfFileEx
2151 (HANDLE, DWORD, DWORD, DWORD, DWORD, PVOID);
2152
2153 #define MoveFile __AW_SUFFIXED__(MoveFile)
2154 WINBASEAPI BOOL WINAPI MoveFileA (LPCSTR, LPCSTR);
2155 WINBASEAPI BOOL WINAPI MoveFileW (LPCWSTR, LPCWSTR);
2156
2157 #define MoveFileEx __AW_SUFFIXED__(MoveFileEx)
2158 WINBASEAPI BOOL WINAPI MoveFileExA (LPCSTR, LPCSTR, DWORD);
2159 WINBASEAPI BOOL WINAPI MoveFileExW (LPCWSTR, LPCWSTR, DWORD);
2160
2161 WINBASEAPI int WINAPI MulDiv (int, int, int);
2162 WINBASEAPI BOOL WINAPI NotifyChangeEventLog (HANDLE, HANDLE);
2163
2164 #define ObjectCloseAuditAlarm __AW_SUFFIXED__(ObjectCloseAuditAlarm)
2165 WINBASEAPI BOOL WINAPI ObjectCloseAuditAlarmA (LPCSTR, PVOID, BOOL);
2166 WINBASEAPI BOOL WINAPI ObjectCloseAuditAlarmW (LPCWSTR, PVOID, BOOL);
2167
2168 #define ObjectDeleteAuditAlarm __AW_SUFFIXED__(ObjectDeleteAuditAlarm)
2169 WINBASEAPI BOOL WINAPI ObjectDeleteAuditAlarmA (LPCSTR, PVOID, BOOL);
2170 WINBASEAPI BOOL WINAPI ObjectDeleteAuditAlarmW (LPCWSTR, PVOID, BOOL);
2171
2172 #define ObjectOpenAuditAlarm __AW_SUFFIXED__(ObjectOpenAuditAlarm)
2173 WINBASEAPI BOOL WINAPI ObjectOpenAuditAlarmA
2174 ( LPCSTR, PVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD,
2175   PPRIVILEGE_SET, BOOL, BOOL, PBOOL
2176 );
2177 WINBASEAPI BOOL WINAPI ObjectOpenAuditAlarmW
2178 ( LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD,
2179   DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL
2180 );
2181
2182 #define ObjectPrivilegeAuditAlarm __AW_SUFFIXED__(ObjectPrivilegeAuditAlarm)
2183 WINBASEAPI BOOL WINAPI ObjectPrivilegeAuditAlarmA
2184 (LPCSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL);
2185 WINBASEAPI BOOL WINAPI ObjectPrivilegeAuditAlarmW
2186 (LPCWSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL);
2187
2188 #define OpenBackupEventLog __AW_SUFFIXED__(OpenBackupEventLog)
2189 WINBASEAPI HANDLE WINAPI OpenBackupEventLogA (LPCSTR, LPCSTR);
2190 WINBASEAPI HANDLE WINAPI OpenBackupEventLogW (LPCWSTR, LPCWSTR);
2191
2192 #define OpenEvent __AW_SUFFIXED__(OpenEvent)
2193 WINBASEAPI HANDLE WINAPI OpenEventA (DWORD, BOOL, LPCSTR);
2194 WINBASEAPI HANDLE WINAPI OpenEventW (DWORD, BOOL, LPCWSTR);
2195
2196 #define OpenEventLog __AW_SUFFIXED__(OpenEventLog)
2197 WINBASEAPI HANDLE WINAPI OpenEventLogA (LPCSTR, LPCSTR);
2198 WINBASEAPI HANDLE WINAPI OpenEventLogW (LPCWSTR, LPCWSTR);
2199
2200 WINBASEAPI HFILE WINAPI OpenFile (LPCSTR, LPOFSTRUCT, UINT);
2201
2202 #define OpenFileMapping __AW_SUFFIXED__(OpenFileMapping)
2203 WINBASEAPI HANDLE WINAPI OpenFileMappingA (DWORD, BOOL, LPCSTR);
2204 WINBASEAPI HANDLE WINAPI OpenFileMappingW (DWORD, BOOL, LPCWSTR);
2205
2206 #define OpenMutex __AW_SUFFIXED__(OpenMutex)
2207 WINBASEAPI HANDLE WINAPI OpenMutexA (DWORD, BOOL, LPCSTR);
2208 WINBASEAPI HANDLE WINAPI OpenMutexW (DWORD, BOOL, LPCWSTR);
2209
2210 WINBASEAPI HANDLE WINAPI OpenProcess (DWORD, BOOL, DWORD);
2211 WINBASEAPI BOOL WINAPI OpenProcessToken (HANDLE, DWORD, PHANDLE);
2212
2213 #define OpenSemaphore __AW_SUFFIXED__(OpenSemaphore)
2214 WINBASEAPI HANDLE WINAPI OpenSemaphoreA (DWORD, BOOL, LPCSTR);
2215 WINBASEAPI HANDLE WINAPI OpenSemaphoreW (DWORD, BOOL, LPCWSTR);
2216
2217 WINBASEAPI BOOL WINAPI OpenThreadToken (HANDLE, DWORD, BOOL, PHANDLE);
2218
2219 /* OpenWaitableTimer: previously missing UNICODE vs. ANSI define */
2220 #define OpenWaitableTimer __AW_SUFFIXED__(OpenWaitableTimer)
2221 WINBASEAPI HANDLE WINAPI OpenWaitableTimerA (DWORD, BOOL, LPCSTR);
2222 WINBASEAPI HANDLE WINAPI OpenWaitableTimerW (DWORD, BOOL, LPCWSTR);
2223
2224 #define OutputDebugString __AW_SUFFIXED__(OutputDebugString)
2225 WINBASEAPI void WINAPI OutputDebugStringA (LPCSTR);
2226 WINBASEAPI void WINAPI OutputDebugStringW (LPCWSTR);
2227
2228 WINBASEAPI BOOL WINAPI PeekNamedPipe
2229 (HANDLE, PVOID, DWORD, PDWORD, PDWORD, PDWORD);
2230 WINBASEAPI BOOL WINAPI PostQueuedCompletionStatus
2231 (HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED);
2232 WINBASEAPI DWORD WINAPI PrepareTape (HANDLE, DWORD, BOOL);
2233 WINBASEAPI BOOL WINAPI PrivilegeCheck (HANDLE, PPRIVILEGE_SET, PBOOL);
2234
2235 #define PrivilegedServiceAuditAlarm __AW_SUFFIXED__(PrivilegedServiceAuditAlarm)
2236 WINBASEAPI BOOL WINAPI PrivilegedServiceAuditAlarmA
2237 (LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL);
2238 WINBASEAPI BOOL WINAPI PrivilegedServiceAuditAlarmW
2239 (LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL);
2240
2241 WINBASEAPI BOOL WINAPI PulseEvent (HANDLE);
2242 WINBASEAPI BOOL WINAPI PurgeComm (HANDLE, DWORD);
2243
2244 #define QueryDosDevice __AW_SUFFIXED__(QueryDosDevice)
2245 WINBASEAPI DWORD WINAPI QueryDosDeviceA (LPCSTR, LPSTR, DWORD);
2246 WINBASEAPI DWORD WINAPI QueryDosDeviceW (LPCWSTR, LPWSTR, DWORD);
2247 WINBASEAPI BOOL WINAPI QueryPerformanceCounter (PLARGE_INTEGER);
2248 WINBASEAPI BOOL WINAPI QueryPerformanceFrequency (PLARGE_INTEGER);
2249 WINBASEAPI DWORD WINAPI QueueUserAPC (PAPCFUNC, HANDLE, ULONG_PTR);
2250
2251 WINBASEAPI void WINAPI RaiseException (DWORD, DWORD, DWORD, const DWORD *);
2252 WINBASEAPI BOOL WINAPI ReadDirectoryChangesW
2253 ( HANDLE, PVOID, DWORD, BOOL, DWORD, PDWORD, LPOVERLAPPED,
2254   LPOVERLAPPED_COMPLETION_ROUTINE
2255 );
2256
2257 #define ReadEventLog __AW_SUFFIXED__(ReadEventLog)
2258 WINBASEAPI BOOL WINAPI ReadEventLogA
2259 (HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD *, DWORD *);
2260 WINBASEAPI BOOL WINAPI ReadEventLogW
2261 (HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD *, DWORD *);
2262
2263 WINBASEAPI BOOL WINAPI ReadFile (HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED);
2264 WINBASEAPI BOOL WINAPI ReadFileEx
2265 (HANDLE, PVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
2266 WINBASEAPI BOOL WINAPI ReadFileScatter
2267 (HANDLE, FILE_SEGMENT_ELEMENT *, DWORD, LPDWORD, LPOVERLAPPED);
2268 WINBASEAPI BOOL WINAPI ReadProcessMemory (HANDLE, PCVOID, PVOID, DWORD, PDWORD);
2269
2270 #define RegisterEventSource __AW_SUFFIXED__(RegisterEventSource)
2271 WINBASEAPI HANDLE WINAPI RegisterEventSourceA (LPCSTR, LPCSTR);
2272 WINBASEAPI HANDLE WINAPI RegisterEventSourceW (LPCWSTR, LPCWSTR);
2273
2274 WINBASEAPI BOOL WINAPI ReleaseMutex (HANDLE);
2275 WINBASEAPI BOOL WINAPI ReleaseSemaphore (HANDLE, LONG, LPLONG);
2276
2277 #define RemoveDirectory __AW_SUFFIXED__(RemoveDirectory)
2278 WINBASEAPI BOOL WINAPI RemoveDirectoryA (LPCSTR);
2279 WINBASEAPI BOOL WINAPI RemoveDirectoryW (LPCWSTR);
2280
2281 #define ReportEvent __AW_SUFFIXED__(ReportEvent)
2282 WINBASEAPI BOOL WINAPI ReportEventA
2283 (HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR *, PVOID);
2284 WINBASEAPI BOOL WINAPI ReportEventW
2285 (HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR *, PVOID);
2286
2287 #ifdef _WIN32_WCE
2288 extern BOOL ResetEvent (HANDLE);
2289 #else
2290 WINBASEAPI BOOL WINAPI ResetEvent (HANDLE);
2291 #endif
2292
2293 WINBASEAPI UINT WINAPI ResetWriteWatch (LPVOID, SIZE_T);
2294 WINBASEAPI DWORD WINAPI ResumeThread (HANDLE);
2295 WINBASEAPI BOOL WINAPI RevertToSelf (void);
2296
2297 #define SearchPath __AW_SUFFIXED__(SearchPath)
2298 WINBASEAPI DWORD WINAPI SearchPathA
2299 (LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR *);
2300 WINBASEAPI DWORD WINAPI SearchPathW
2301 (LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR *);
2302
2303 WINBASEAPI BOOL WINAPI SetAclInformation
2304 (PACL, PVOID, DWORD, ACL_INFORMATION_CLASS);
2305 WINBASEAPI BOOL WINAPI SetCommBreak (HANDLE);
2306 WINBASEAPI BOOL WINAPI SetCommConfig (HANDLE, LPCOMMCONFIG, DWORD);
2307 WINBASEAPI BOOL WINAPI SetCommMask (HANDLE, DWORD);
2308 WINBASEAPI BOOL WINAPI SetCommState (HANDLE, LPDCB);
2309 WINBASEAPI BOOL WINAPI SetCommTimeouts (HANDLE, LPCOMMTIMEOUTS);
2310
2311 #define SetComputerName __AW_SUFFIXED__(SetComputerName)
2312 WINBASEAPI BOOL WINAPI SetComputerNameA (LPCSTR);
2313 WINBASEAPI BOOL WINAPI SetComputerNameW (LPCWSTR);
2314
2315 #define SetCurrentDirectory __AW_SUFFIXED__(SetCurrentDirectory)
2316 WINBASEAPI BOOL WINAPI SetCurrentDirectoryA (LPCSTR);
2317 WINBASEAPI BOOL WINAPI SetCurrentDirectoryW (LPCWSTR);
2318
2319 #define SetDefaultCommConfig __AW_SUFFIXED__(SetDefaultCommConfig)
2320 WINBASEAPI BOOL WINAPI SetDefaultCommConfigA (LPCSTR, LPCOMMCONFIG, DWORD);
2321 WINBASEAPI BOOL WINAPI SetDefaultCommConfigW (LPCWSTR, LPCOMMCONFIG, DWORD);
2322
2323 WINBASEAPI BOOL WINAPI SetEndOfFile (HANDLE);
2324
2325 #define SetEnvironmentVariable __AW_SUFFIXED__(SetEnvironmentVariable)
2326 WINBASEAPI BOOL WINAPI SetEnvironmentVariableA (LPCSTR, LPCSTR);
2327 WINBASEAPI BOOL WINAPI SetEnvironmentVariableW (LPCWSTR, LPCWSTR);
2328
2329 WINBASEAPI UINT WINAPI SetErrorMode (UINT);
2330
2331 #ifdef _WIN32_WCE
2332 extern BOOL SetEvent (HANDLE);
2333 #else
2334 WINBASEAPI BOOL WINAPI SetEvent (HANDLE);
2335 #endif
2336
2337 WINBASEAPI VOID WINAPI SetFileApisToANSI (void);
2338 WINBASEAPI VOID WINAPI SetFileApisToOEM (void);
2339
2340 #define SetFileAttributes __AW_SUFFIXED__(SetFileAttributes)
2341 WINBASEAPI BOOL WINAPI SetFileAttributesA (LPCSTR, DWORD);
2342 WINBASEAPI BOOL WINAPI SetFileAttributesW (LPCWSTR, DWORD);
2343
2344 WINBASEAPI DWORD WINAPI SetFilePointer (HANDLE, LONG, PLONG, DWORD);
2345 WINBASEAPI BOOL WINAPI SetFilePointerEx
2346 (HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD);
2347
2348 #define SetFileSecurity __AW_SUFFIXED__(SetFileSecurity)
2349 WINBASEAPI BOOL WINAPI SetFileSecurityA
2350 (LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
2351 WINBASEAPI BOOL WINAPI SetFileSecurityW
2352 (LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
2353
2354 WINBASEAPI BOOL WINAPI SetFileTime
2355 (HANDLE, const FILETIME *, const FILETIME *, const FILETIME *);
2356
2357 WINBASEAPI UINT WINAPI SetHandleCount (UINT);
2358 WINBASEAPI BOOL WINAPI SetHandleInformation (HANDLE, DWORD, DWORD);
2359 WINBASEAPI BOOL WINAPI SetKernelObjectSecurity
2360 (HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
2361 WINBASEAPI void WINAPI SetLastError (DWORD);
2362 WINBASEAPI void WINAPI SetLastErrorEx (DWORD, DWORD);
2363 WINBASEAPI BOOL WINAPI SetLocalTime (const SYSTEMTIME *);
2364 WINBASEAPI BOOL WINAPI SetMailslotInfo (HANDLE, DWORD);
2365 WINBASEAPI BOOL WINAPI SetNamedPipeHandleState (HANDLE, PDWORD, PDWORD, PDWORD);
2366 WINBASEAPI BOOL WINAPI SetPriorityClass (HANDLE, DWORD);
2367 WINBASEAPI BOOL WINAPI SetPrivateObjectSecurity
2368 ( SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *,
2369   PGENERIC_MAPPING, HANDLE
2370 );
2371 WINBASEAPI BOOL WINAPI SetProcessAffinityMask (HANDLE, DWORD);
2372 WINBASEAPI BOOL WINAPI SetProcessPriorityBoost (HANDLE, BOOL);
2373 WINBASEAPI BOOL WINAPI SetProcessShutdownParameters (DWORD, DWORD);
2374 WINBASEAPI BOOL WINAPI SetProcessWorkingSetSize (HANDLE, SIZE_T, SIZE_T);
2375 WINBASEAPI BOOL WINAPI SetSecurityDescriptorControl
2376 ( PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL
2377 );
2378 WINBASEAPI BOOL WINAPI SetSecurityDescriptorDacl
2379 (PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
2380 WINBASEAPI BOOL WINAPI SetSecurityDescriptorGroup
2381 (PSECURITY_DESCRIPTOR, PSID, BOOL);
2382 WINBASEAPI BOOL WINAPI SetSecurityDescriptorOwner
2383 (PSECURITY_DESCRIPTOR, PSID, BOOL);
2384 WINBASEAPI BOOL WINAPI SetSecurityDescriptorSacl
2385 (PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
2386 WINBASEAPI BOOL WINAPI SetStdHandle (DWORD, HANDLE);
2387
2388 #define SetSwapAreaSize(w)  (w)
2389
2390 WINBASEAPI BOOL WINAPI SetSystemPowerState (BOOL, BOOL);
2391 WINBASEAPI BOOL WINAPI SetSystemTime (const SYSTEMTIME *);
2392 WINBASEAPI BOOL WINAPI SetSystemTimeAdjustment (DWORD, BOOL);
2393 WINBASEAPI DWORD WINAPI SetTapeParameters (HANDLE, DWORD, PVOID);
2394 WINBASEAPI DWORD WINAPI SetTapePosition
2395 (HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL);
2396 WINBASEAPI DWORD WINAPI SetThreadAffinityMask (HANDLE, DWORD);
2397 WINBASEAPI BOOL WINAPI SetThreadContext (HANDLE, const CONTEXT *);
2398
2399 WINBASEAPI DWORD WINAPI SetThreadIdealProcessor (HANDLE, DWORD);
2400 WINBASEAPI BOOL WINAPI SetThreadPriority (HANDLE, int);
2401 WINBASEAPI BOOL WINAPI SetThreadPriorityBoost (HANDLE, BOOL);
2402 WINBASEAPI BOOL WINAPI SetThreadToken (PHANDLE, HANDLE);
2403 WINBASEAPI BOOL WINAPI SetTimeZoneInformation (const TIME_ZONE_INFORMATION *);
2404 WINBASEAPI BOOL WINAPI SetTokenInformation
2405 (HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD);
2406 WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter
2407 (LPTOP_LEVEL_EXCEPTION_FILTER);
2408 WINBASEAPI BOOL WINAPI SetupComm (HANDLE, DWORD, DWORD);
2409
2410 #define SetVolumeLabel __AW_SUFFIXED__(SetVolumeLabel)
2411 WINBASEAPI BOOL WINAPI SetVolumeLabelA (LPCSTR, LPCSTR);
2412 WINBASEAPI BOOL WINAPI SetVolumeLabelW (LPCWSTR, LPCWSTR);
2413
2414 WINBASEAPI BOOL WINAPI SetWaitableTimer
2415 (HANDLE, const LARGE_INTEGER *, LONG, PTIMERAPCROUTINE, PVOID, BOOL);
2416 WINBASEAPI DWORD WINAPI SignalObjectAndWait (HANDLE, HANDLE, DWORD, BOOL);
2417 WINBASEAPI DWORD WINAPI SizeofResource (HINSTANCE, HRSRC);
2418 WINBASEAPI void WINAPI Sleep (DWORD);
2419 WINBASEAPI DWORD WINAPI SleepEx (DWORD, BOOL);
2420 WINBASEAPI DWORD WINAPI SuspendThread (HANDLE);
2421 WINBASEAPI void WINAPI SwitchToFiber (PVOID);
2422 WINBASEAPI BOOL WINAPI SwitchToThread (void);
2423 WINBASEAPI BOOL WINAPI SystemTimeToFileTime (const SYSTEMTIME *, LPFILETIME);
2424 WINBASEAPI BOOL WINAPI SystemTimeToTzSpecificLocalTime
2425 (LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME);
2426
2427 WINBASEAPI BOOL WINAPI TerminateProcess (HANDLE, UINT);
2428 WINBASEAPI BOOL WINAPI TerminateThread (HANDLE, DWORD);
2429 WINBASEAPI DWORD WINAPI TlsAlloc (VOID);
2430 WINBASEAPI BOOL WINAPI TlsFree (DWORD);
2431 WINBASEAPI PVOID WINAPI TlsGetValue (DWORD);
2432 WINBASEAPI BOOL WINAPI TlsSetValue (DWORD, PVOID);
2433 WINBASEAPI BOOL WINAPI TransactNamedPipe
2434 (HANDLE, PVOID, DWORD, PVOID, DWORD, PDWORD, LPOVERLAPPED);
2435 WINBASEAPI BOOL WINAPI TransmitCommChar (HANDLE, char);
2436 WINBASEAPI BOOL WINAPI TryEnterCriticalSection (LPCRITICAL_SECTION);
2437 WINBASEAPI LONG WINAPI UnhandledExceptionFilter (LPEXCEPTION_POINTERS);
2438 WINBASEAPI BOOL WINAPI UnlockFile (HANDLE, DWORD, DWORD, DWORD, DWORD);
2439 WINBASEAPI BOOL WINAPI UnlockFileEx (HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED);
2440
2441 #define UnlockResource(h)  (h)
2442 #define UnlockSegment(w)   GlobalUnfix((HANDLE)(w)) /* Obsolete: Has no effect. */
2443
2444 WINBASEAPI BOOL WINAPI UnmapViewOfFile (LPCVOID);
2445
2446 #define UpdateResource __AW_SUFFIXED__(UpdateResource)
2447 WINBASEAPI BOOL WINAPI UpdateResourceA
2448 (HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD);
2449 WINBASEAPI BOOL WINAPI UpdateResourceW
2450 (HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWORD);
2451
2452 #define VerifyVersionInfo __AW_SUFFIXED__(VerifyVersionInfo)
2453 WINBASEAPI BOOL WINAPI VerifyVersionInfoA
2454 (LPOSVERSIONINFOEXA, DWORD, DWORDLONG);
2455 WINBASEAPI BOOL WINAPI VerifyVersionInfoW
2456 (LPOSVERSIONINFOEXW, DWORD, DWORDLONG);
2457
2458 WINBASEAPI PVOID WINAPI VirtualAlloc (PVOID, DWORD, DWORD, DWORD);
2459 WINBASEAPI PVOID WINAPI VirtualAllocEx (HANDLE, PVOID, DWORD, DWORD, DWORD);
2460 WINBASEAPI BOOL WINAPI VirtualFree (PVOID, DWORD, DWORD);
2461 WINBASEAPI BOOL WINAPI VirtualFreeEx (HANDLE, PVOID, DWORD, DWORD);
2462 WINBASEAPI BOOL WINAPI VirtualLock (PVOID, DWORD);
2463 WINBASEAPI BOOL WINAPI VirtualProtect (PVOID, DWORD, DWORD, PDWORD);
2464 WINBASEAPI BOOL WINAPI VirtualProtectEx (HANDLE, PVOID, DWORD, DWORD, PDWORD);
2465 WINBASEAPI DWORD WINAPI VirtualQuery (LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
2466 WINBASEAPI DWORD WINAPI VirtualQueryEx
2467 (HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
2468 WINBASEAPI BOOL WINAPI VirtualUnlock (PVOID, DWORD);
2469 WINBASEAPI BOOL WINAPI WaitCommEvent (HANDLE, PDWORD, LPOVERLAPPED);
2470 WINBASEAPI BOOL WINAPI WaitForDebugEvent (LPDEBUG_EVENT, DWORD);
2471 WINBASEAPI DWORD WINAPI WaitForMultipleObjects
2472 (DWORD, const HANDLE *, BOOL, DWORD);
2473 WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx
2474 (DWORD, const HANDLE *, BOOL, DWORD, BOOL);
2475 WINBASEAPI DWORD WINAPI WaitForSingleObject (HANDLE, DWORD);
2476 WINBASEAPI DWORD WINAPI WaitForSingleObjectEx (HANDLE, DWORD, BOOL);
2477
2478 #define WaitNamedPipe __AW_SUFFIXED__(WaitNamedPipe)
2479 WINBASEAPI BOOL WINAPI WaitNamedPipeA (LPCSTR, DWORD);
2480 WINBASEAPI BOOL WINAPI WaitNamedPipeW (LPCWSTR, DWORD);
2481
2482 WINBASEAPI BOOL WINAPI WinLoadTrustProvider (GUID *);
2483 WINBASEAPI BOOL WINAPI WriteFile (HANDLE, PCVOID, DWORD, PDWORD, LPOVERLAPPED);
2484 WINBASEAPI BOOL WINAPI WriteFileEx
2485 (HANDLE, PCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
2486 WINBASEAPI BOOL WINAPI WriteFileGather
2487 (HANDLE, FILE_SEGMENT_ELEMENT *, DWORD, LPDWORD, LPOVERLAPPED);
2488
2489 #define WritePrivateProfileSection __AW_SUFFIXED__(WritePrivateProfileSection)
2490 WINBASEAPI BOOL WINAPI WritePrivateProfileSectionA (LPCSTR, LPCSTR, LPCSTR);
2491 WINBASEAPI BOOL WINAPI WritePrivateProfileSectionW (LPCWSTR, LPCWSTR, LPCWSTR);
2492
2493 #define WritePrivateProfileString __AW_SUFFIXED__(WritePrivateProfileString)
2494 WINBASEAPI BOOL WINAPI WritePrivateProfileStringA
2495 (LPCSTR, LPCSTR, LPCSTR, LPCSTR);
2496 WINBASEAPI BOOL WINAPI WritePrivateProfileStringW
2497 (LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR);
2498
2499 #define WritePrivateProfileStruct __AW_SUFFIXED__(WritePrivateProfileStruct)
2500 WINBASEAPI BOOL WINAPI WritePrivateProfileStructA
2501 (LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR);
2502 WINBASEAPI BOOL WINAPI WritePrivateProfileStructW
2503 (LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR);
2504
2505 WINBASEAPI BOOL WINAPI WriteProcessMemory
2506 (HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T *);
2507
2508 #define WriteProfileSection __AW_SUFFIXED__(WriteProfileSection)
2509 WINBASEAPI BOOL WINAPI WriteProfileSectionA (LPCSTR, LPCSTR);
2510 WINBASEAPI BOOL WINAPI WriteProfileSectionW (LPCWSTR, LPCWSTR);
2511
2512 #define WriteProfileString __AW_SUFFIXED__(WriteProfileString)
2513 WINBASEAPI BOOL WINAPI WriteProfileStringA (LPCSTR, LPCSTR, LPCSTR);
2514 WINBASEAPI BOOL WINAPI WriteProfileStringW (LPCWSTR, LPCWSTR, LPCWSTR);
2515
2516 WINBASEAPI DWORD WINAPI WriteTapemark (HANDLE, DWORD, DWORD, BOOL);
2517
2518 #define Yield()
2519
2520 #if _WIN32_WINNT >= _WIN32_WINNT_NT4
2521 /* Features available on all Win9x versions, but not introduced to the
2522  * WinNT platform series until the release of Windows-NT4.
2523  */
2524 WINBASEAPI BOOL WINAPI ConvertFiberToThread (void);
2525 WINBASEAPI LPVOID WINAPI CreateFiberEx
2526 (SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID);
2527 #endif  /* Win9x, but not WinNT until NT4 */
2528
2529 #if _WIN32_WINDOWS >= _WIN32_WINDOWS_98 || _WIN32_WINNT >= _WIN32_WINNT_WIN2K
2530 /* New features, introduced to Win9x from Win98 onwards, and also to the WinNT
2531  * platform series, from Win2K onwards.
2532  */
2533 typedef DWORD EXECUTION_STATE;
2534
2535 #define GetLongPathName __AW_SUFFIXED__(GetLongPathName)
2536 WINBASEAPI DWORD WINAPI GetLongPathNameA (LPCSTR, LPSTR, DWORD);
2537 WINBASEAPI DWORD WINAPI GetLongPathNameW (LPCWSTR, LPWSTR, DWORD);
2538
2539 WINBASEAPI EXECUTION_STATE WINAPI SetThreadExecutionState (EXECUTION_STATE);
2540
2541 #if _WIN32_WINDOWS >= _WIN32_WINDOWS_ME || _WIN32_WINNT >= _WIN32_WINNT_WIN2K
2542 /* The OpenThread() API is supported in WinNT versions, from Win2K onwards,
2543  * but was introduced to the Win9X series only in the Millennium Edition.
2544  */
2545 WINBASEAPI HANDLE WINAPI OpenThread (DWORD, BOOL, DWORD);
2546 #endif  /* WinNT from Win2K onwards, and WinME */
2547
2548 #if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
2549 /* Additional new features introduced in Win2K, but not available in Win9x.
2550  */
2551 typedef struct _MEMORYSTATUSEX
2552 { DWORD                         dwLength;
2553   DWORD                         dwMemoryLoad;
2554   DWORDLONG                     ullTotalPhys;
2555   DWORDLONG                     ullAvailPhys;
2556   DWORDLONG                     ullTotalPageFile;
2557   DWORDLONG                     ullAvailPageFile;
2558   DWORDLONG                     ullTotalVirtual;
2559   DWORDLONG                     ullAvailVirtual;
2560   DWORDLONG                     ullAvailExtendedVirtual;
2561 } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
2562
2563 typedef enum _COMPUTER_NAME_FORMAT
2564 { ComputerNameNetBIOS,
2565   ComputerNameDnsHostname,
2566   ComputerNameDnsDomain,
2567   ComputerNameDnsFullyQualified,
2568   ComputerNamePhysicalNetBIOS,
2569   ComputerNamePhysicalDnsHostname,
2570   ComputerNamePhysicalDnsDomain,
2571   ComputerNamePhysicalDnsFullyQualified,
2572   ComputerNameMax
2573 } COMPUTER_NAME_FORMAT;
2574
2575 typedef void (CALLBACK *WAITORTIMERCALLBACK)(PVOID, BOOLEAN);
2576
2577 WINBASEAPI BOOL WINAPI AddAccessAllowedAceEx (PACL, DWORD, DWORD, DWORD, PSID);
2578 WINBASEAPI BOOL WINAPI AddAccessDeniedAceEx (PACL, DWORD, DWORD, DWORD, PSID);
2579 WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler
2580 (ULONG, PVECTORED_EXCEPTION_HANDLER);
2581
2582 WINBASEAPI BOOL WINAPI ChangeTimerQueueTimer (HANDLE, HANDLE, ULONG, ULONG);
2583 WINBASEAPI BOOL WINAPI CheckTokenMembership (HANDLE, PSID, PBOOL);
2584
2585 #define CreateHardLink __AW_SUFFIXED__(CreateHardLink)
2586 WINBASEAPI BOOL WINAPI CreateHardLinkA (LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
2587 WINBASEAPI BOOL WINAPI CreateHardLinkW
2588 (LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
2589
2590 #define CreateJobObject __AW_SUFFIXED__(CreateJobObject)
2591 WINBASEAPI HANDLE WINAPI CreateJobObjectA (LPSECURITY_ATTRIBUTES, LPCSTR);
2592 WINBASEAPI HANDLE WINAPI CreateJobObjectW (LPSECURITY_ATTRIBUTES, LPCWSTR);
2593
2594 WINBASEAPI BOOL WINAPI TerminateJobObject (HANDLE, UINT);
2595 WINBASEAPI BOOL WINAPI AssignProcessToJobObject (HANDLE, HANDLE);
2596
2597 WINBASEAPI BOOL WINAPI SetInformationJobObject
2598 (HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD);
2599 WINBASEAPI BOOL WINAPI QueryInformationJobObject
2600 (HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);
2601
2602 WINBASEAPI BOOL WINAPI CreateProcessWithLogonW
2603 ( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID,
2604   LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION
2605 );
2606 #define LOGON_WITH_PROFILE              0x00000001
2607 #define LOGON_NETCREDENTIALS_ONLY       0x00000002
2608
2609 WINBASEAPI BOOL WINAPI CreateRestrictedToken
2610 ( HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES,
2611   DWORD, PSID_AND_ATTRIBUTES, PHANDLE
2612 );
2613 #define DISABLE_MAX_PRIVILEGE   1
2614 #define SANDBOX_INERT           2
2615 #define LUA_TOKEN               4
2616 #define WRITE_RESTRICTED        8
2617
2618 WINBASEAPI HANDLE WINAPI CreateTimerQueue (void);
2619 WINBASEAPI BOOL WINAPI CreateTimerQueueTimer
2620 (PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG);
2621
2622 WINBASEAPI BOOL WINAPI DeleteTimerQueue (HANDLE);
2623 WINBASEAPI BOOL WINAPI DeleteTimerQueueEx (HANDLE, HANDLE);
2624 WINBASEAPI BOOL WINAPI DeleteTimerQueueTimer (HANDLE, HANDLE, HANDLE);
2625
2626 #define DeleteVolumeMountPoint __AW_SUFFIXED__(DeleteVolumeMountPoint)
2627 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointA (LPCSTR);
2628 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointW (LPCWSTR);
2629
2630 #define DnsHostnameToComputerName __AW_SUFFIXED__(DnsHostnameToComputerName)
2631 WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameA (LPCSTR, LPSTR, LPDWORD);
2632 WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameW (LPCWSTR, LPWSTR, LPDWORD);
2633
2634 #define FindFirstVolume __AW_SUFFIXED__(FindFirstVolume)
2635 WINBASEAPI HANDLE WINAPI FindFirstVolumeA (LPCSTR, DWORD);
2636 WINBASEAPI HANDLE WINAPI FindFirstVolumeW (LPCWSTR, DWORD);
2637
2638 #define FindFirstVolumeMountPoint __AW_SUFFIXED__(FindFirstVolumeMountPoint)
2639 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA (LPSTR, LPSTR, DWORD);
2640 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW (LPWSTR, LPWSTR, DWORD);
2641
2642 #define FindNextVolume __AW_SUFFIXED__(FindNextVolume)
2643 WINBASEAPI BOOL WINAPI FindNextVolumeA (HANDLE, LPCSTR, DWORD);
2644 WINBASEAPI BOOL WINAPI FindNextVolumeW (HANDLE, LPWSTR, DWORD);
2645
2646 #define FindNextVolumeMountPoint __AW_SUFFIXED__(FindNextVolumeMountPoint)
2647 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointA (HANDLE, LPSTR, DWORD);
2648 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW (HANDLE, LPWSTR, DWORD);
2649
2650 WINBASEAPI BOOL WINAPI FindVolumeClose (HANDLE);
2651 WINBASEAPI BOOL WINAPI FindVolumeMountPointClose (HANDLE);
2652
2653 #define GetComputerNameEx __AW_SUFFIXED__(GetComputerNameEx)
2654 WINBASEAPI BOOL WINAPI GetComputerNameExA
2655 (COMPUTER_NAME_FORMAT, LPSTR, LPDWORD);
2656 WINBASEAPI BOOL WINAPI GetComputerNameExW
2657 (COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD);
2658
2659 WINBASEAPI BOOL WINAPI GetFileSizeEx (HANDLE, PLARGE_INTEGER);
2660 WINBASEAPI BOOL WINAPI GetProcessIoCounters (HANDLE, PIO_COUNTERS);
2661
2662 #define GetSystemWindowsDirectory __AW_SUFFIXED__(GetSystemWindowsDirectory)
2663 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA (LPSTR, UINT);
2664 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW (LPWSTR, UINT);
2665 #define \
2666 GetVolumeNameForVolumeMountPoint __AW_SUFFIXED__(GetVolumeNameForVolumeMountPoint)
2667 WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointA (LPCSTR, LPSTR, DWORD);
2668 WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointW
2669 (LPCWSTR, LPWSTR, DWORD);
2670
2671 #define GetVolumePathName __AW_SUFFIXED__(GetVolumePathName)
2672 WINBASEAPI BOOL WINAPI GetVolumePathNameA (LPCSTR, LPSTR, DWORD);
2673 WINBASEAPI BOOL WINAPI GetVolumePathNameW (LPCWSTR, LPWSTR, DWORD);
2674
2675 WINBASEAPI BOOL WINAPI GlobalMemoryStatusEx (LPMEMORYSTATUSEX);
2676
2677 WINBASEAPI BOOL WINAPI IsTokenRestricted (HANDLE);
2678
2679 #define MoveFileWithProgress __AW_SUFFIXED__(MoveFileWithProgress)
2680 WINBASEAPI BOOL WINAPI MoveFileWithProgressA
2681 (LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, DWORD);
2682 WINBASEAPI BOOL WINAPI MoveFileWithProgressW
2683 (LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, DWORD);
2684
2685 WINBASEAPI BOOL WINAPI ProcessIdToSessionId (DWORD, DWORD *);
2686
2687 WINBASEAPI BOOL WINAPI QueueUserWorkItem (LPTHREAD_START_ROUTINE, PVOID, ULONG);
2688
2689 WINBASEAPI BOOL WINAPI RegisterWaitForSingleObject
2690 (PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, ULONG, ULONG);
2691 WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx
2692 (HANDLE, WAITORTIMERCALLBACK, PVOID, ULONG, ULONG);
2693 WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler (PVOID);
2694
2695 #define ReplaceFile __AW_SUFFIXED__(ReplaceFile)
2696 WINBASEAPI BOOL WINAPI ReplaceFileA
2697 (LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID);
2698 WINBASEAPI BOOL WINAPI ReplaceFileW
2699 (LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID);
2700
2701 /* SetComputerNameEx: previously missing UNICODE vs. ANSI define */
2702 #define SetComputerNameEx __AW_SUFFIXED__(SetComputerNameEx)
2703 WINBASEAPI BOOL WINAPI SetComputerNameExA (COMPUTER_NAME_FORMAT, LPCSTR);
2704 WINBASEAPI BOOL WINAPI SetComputerNameExW (COMPUTER_NAME_FORMAT, LPCWSTR);
2705
2706 #define SetVolumeMountPoint __AW_SUFFIXED__(SetVolumeMountPoint)
2707 WINBASEAPI BOOL WINAPI SetVolumeMountPointA (LPCSTR, LPCSTR);
2708 WINBASEAPI BOOL WINAPI SetVolumeMountPointW (LPCWSTR, LPCWSTR);
2709
2710 WINBASEAPI BOOL WINAPI UnregisterWait (HANDLE);
2711 WINBASEAPI BOOL WINAPI UnregisterWaitEx (HANDLE, HANDLE);
2712
2713 WINBASEAPI BOOL WINAPI AllocateUserPhysicalPages
2714 (HANDLE, PULONG_PTR, PULONG_PTR);
2715
2716 WINBASEAPI BOOL WINAPI FreeUserPhysicalPages (HANDLE, PULONG_PTR, PULONG_PTR);
2717
2718 WINBASEAPI BOOL WINAPI MapUserPhysicalPages (PVOID, ULONG_PTR, PULONG_PTR);
2719 WINBASEAPI BOOL WINAPI MapUserPhysicalPagesScatter
2720 (PVOID *, ULONG_PTR, PULONG_PTR);
2721
2722 #if _WIN32_WINNT >= _WIN32_WINNT_WINXP
2723 /* New features, implemented for WinXP; not available in Win9x.
2724  */
2725 typedef struct tagACTCTXA
2726 { ULONG                         cbSize;
2727   DWORD                         dwFlags;
2728   LPCSTR lpSource;
2729   USHORT wProcessorArchitecture;
2730   LANGID wLangId;
2731   LPCSTR lpAssemblyDirectory;
2732   LPCSTR lpResourceName;
2733   LPCSTR lpApplicationName;
2734   HMODULE hModule;
2735 } ACTCTXA, *PACTCTXA;
2736
2737 typedef struct tagACTCTXW
2738 { ULONG                         cbSize;
2739   DWORD                         dwFlags;
2740   LPCWSTR lpSource;
2741   USHORT wProcessorArchitecture;
2742   LANGID wLangId;
2743   LPCWSTR lpAssemblyDirectory;
2744   LPCWSTR lpResourceName;
2745   LPCWSTR lpApplicationName;
2746   HMODULE hModule;
2747 } ACTCTXW, *PACTCTXW;
2748
2749 typedef const ACTCTXA *PCACTCTXA;
2750 typedef const ACTCTXW *PCACTCTXW;
2751
2752 typedef __AW_ALIAS__(ACTCTX), *PACTCTX;
2753 typedef __AW_ALIAS__(PCACTCTX);
2754
2755 typedef struct tagACTCTX_SECTION_KEYED_DATA
2756 { ULONG                         cbSize;
2757   ULONG                         ulDataFormatVersion;
2758   PVOID                         lpData;
2759   ULONG                         ulLength;
2760   PVOID                         lpSectionGlobalData;
2761   ULONG                         ulSectionGlobalDataLength;
2762   PVOID                         lpSectionBase;
2763   ULONG                         ulSectionTotalLength;
2764   HANDLE hActCtx;
2765   HANDLE ulAssemblyRosterIndex;
2766 } ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA;
2767
2768 typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
2769
2770 typedef enum
2771 { LowMemoryResourceNotification,
2772   HighMemoryResourceNotification
2773 } MEMORY_RESOURCE_NOTIFICATION_TYPE;
2774
2775 WINBASEAPI BOOL WINAPI ActivateActCtx (HANDLE, ULONG_PTR *);
2776 WINBASEAPI void WINAPI AddRefActCtx (HANDLE);
2777
2778 #define CheckNameLegalDOS8Dot3 __AW_SUFFIXED__(CheckNameLegalDOS8Dot3)
2779 WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3A
2780 (LPCSTR, LPSTR, DWORD, PBOOL, PBOOL);
2781 WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3W
2782 (LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL);
2783
2784 WINBASEAPI BOOL WINAPI CheckRemoteDebuggerPresent (HANDLE, PBOOL);
2785
2786 #define CreateActCtx __AW_SUFFIXED__(CreateActCtx)
2787 WINBASEAPI HANDLE WINAPI CreateActCtxA (PCACTCTXA);
2788 WINBASEAPI HANDLE WINAPI CreateActCtxW (PCACTCTXW);
2789
2790 WINBASEAPI HANDLE WINAPI CreateMemoryResourceNotification
2791 (MEMORY_RESOURCE_NOTIFICATION_TYPE);
2792
2793 WINBASEAPI BOOL WINAPI DeactivateActCtx (DWORD, ULONG_PTR);
2794 WINBASEAPI BOOL WINAPI DebugActiveProcessStop (DWORD);
2795 WINBASEAPI BOOL WINAPI DebugBreakProcess (HANDLE);
2796 WINBASEAPI BOOL WINAPI DebugSetProcessKillOnExit (BOOL);
2797
2798 WINBASEAPI BOOL WINAPI FindActCtxSectionGuid
2799 (DWORD, const GUID *, ULONG, const GUID *, PACTCTX_SECTION_KEYED_DATA);
2800
2801 #define FindActCtxSectionString __AW_SUFFIXED__(FindActCtxSectionString)
2802 WINBASEAPI BOOL WINAPI FindActCtxSectionStringA
2803 (DWORD, const GUID *, ULONG, LPCSTR, PACTCTX_SECTION_KEYED_DATA);
2804 WINBASEAPI BOOL WINAPI FindActCtxSectionStringW
2805 (DWORD, const GUID *, ULONG, LPCWSTR, PACTCTX_SECTION_KEYED_DATA);
2806
2807 WINBASEAPI BOOL WINAPI GetCurrentActCtx (HANDLE *);
2808
2809 #define GetModuleHandleEx __AW_SUFFIXED__(GetModuleHandleEx)
2810 WINBASEAPI BOOL WINAPI GetModuleHandleExA (DWORD, LPCSTR, HMODULE *);
2811 WINBASEAPI BOOL WINAPI GetModuleHandleExW (DWORD, LPCWSTR, HMODULE *);
2812
2813 WINBASEAPI VOID WINAPI GetNativeSystemInfo (LPSYSTEM_INFO);
2814 WINBASEAPI BOOL WINAPI GetProcessHandleCount (HANDLE, PDWORD);
2815 WINBASEAPI DWORD WINAPI GetProcessId (HANDLE);
2816 WINBASEAPI BOOL WINAPI GetSystemRegistryQuota (PDWORD, PDWORD);
2817 WINBASEAPI BOOL WINAPI GetSystemTimes (LPFILETIME, LPFILETIME, LPFILETIME);
2818
2819 #define GetSystemWow64Directory __AW_SUFFIXED__(GetSystemWow64Directory)
2820 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA (LPSTR, UINT);
2821 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW (LPWSTR, UINT);
2822 WINBASEAPI BOOL WINAPI GetThreadIOPendingFlag (HANDLE, PBOOL);
2823 #define \
2824 GetVolumePathNamesForVolumeName __AW_SUFFIXED__(GetVolumePathNamesForVolumeName)
2825 WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameA
2826 (LPCSTR, LPSTR, DWORD, PDWORD);
2827 WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameW
2828 (LPCWSTR, LPWSTR, DWORD, PDWORD);
2829
2830 WINBASEAPI BOOL WINAPI HeapQueryInformation
2831 (HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T);
2832 WINBASEAPI BOOL WINAPI HeapSetInformation
2833 (HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T);
2834
2835 WINBASEAPI BOOL IsProcessInJob (HANDLE, HANDLE, PBOOL);
2836 WINBASEAPI BOOL WINAPI IsWow64Process (HANDLE, PBOOL);
2837
2838 WINBASEAPI BOOL WINAPI QueryActCtxW
2839 (DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T *);
2840 WINBASEAPI BOOL WINAPI QueryMemoryResourceNotification (HANDLE, PBOOL);
2841
2842 WINBASEAPI void WINAPI ReleaseActCtx (HANDLE);
2843 WINBASEAPI VOID WINAPI RestoreLastError (DWORD);
2844
2845 #define SetFileShortName __AW_SUFFIXED__(SetFileShortName)
2846 WINBASEAPI BOOL WINAPI SetFileShortNameA (HANDLE, LPCSTR);
2847 WINBASEAPI BOOL WINAPI SetFileShortNameW (HANDLE, LPCWSTR);
2848
2849 WINBASEAPI BOOL WINAPI SetFileValidData (HANDLE, LONGLONG);
2850
2851 WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime
2852 (LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME);
2853
2854 WINBASEAPI BOOL WINAPI ZombifyActCtx (HANDLE);
2855
2856 #if _WIN32_WINNT >= _WIN32_WINNT_WS03
2857 /* Further added features, which became available on the WinNT platform
2858  * from Windows Server-2003; these were never made available in Win9x.
2859  */
2860 /* GetFirmwareEnvironmentVariable: previously missing UNICODE vs. ANSI define */
2861 #define \
2862 GetFirmwareEnvironmentVariable __AW_SUFFIXED__(GetFirmwareEnvironmentVariable)
2863 WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableA
2864 (LPCSTR, LPCSTR, PVOID, DWORD);
2865 WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableW
2866 (LPCWSTR, LPCWSTR, PVOID, DWORD);
2867
2868 #define GetDllDirectory __AW_SUFFIXED__(GetDllDirectory)
2869 WINBASEAPI DWORD WINAPI GetDllDirectoryA (DWORD, LPSTR);
2870 WINBASEAPI DWORD WINAPI GetDllDirectoryW (DWORD, LPWSTR);
2871
2872 WINBASEAPI HANDLE WINAPI ReOpenFile (HANDLE, DWORD, DWORD, DWORD);
2873
2874 #define SetDllDirectory __AW_SUFFIXED__(SetDllDirectory)
2875 WINBASEAPI BOOL WINAPI SetDllDirectoryA (LPCSTR);
2876 WINBASEAPI BOOL WINAPI SetDllDirectoryW (LPCWSTR);
2877
2878 #define \
2879 SetFirmwareEnvironmentVariable __AW_SUFFIXED__(SetFirmwareEnvironmentVariable)
2880 WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableA
2881 (LPCSTR, LPCSTR, PVOID, DWORD);
2882 WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableW
2883 (LPCWSTR, LPCWSTR, PVOID, DWORD);
2884
2885 #if _WIN32_WINNT >= _WIN32_WINNT_VISTA
2886 /* Additional features, available only on the WinNT series platforms, from
2887  * the release of Windows-Vista onwards.
2888  */
2889 typedef struct _FILE_BASIC_INFO
2890 /* http://msdn.microsoft.com/en-us/library/aa364217%28VS.85%29.aspx */
2891 { LARGE_INTEGER                 CreationTime;
2892   LARGE_INTEGER                 LastAccessTime;
2893   LARGE_INTEGER                 LastWriteTime;
2894   LARGE_INTEGER                 ChangeTime;
2895   DWORD                         FileAttributes;
2896 } FILE_BASIC_INFO, *PFILE_BASIC_INFO, *LPFILE_BASIC_INFO;
2897
2898 typedef struct _FILE_STANDARD_INFO
2899 /* http://msdn.microsoft.com/en-us/library/aa364401%28VS.85%29.aspx */
2900 { LARGE_INTEGER                 AllocationSize;
2901   LARGE_INTEGER                 EndOfFile;
2902   DWORD                         NumberOfLinks;
2903   BOOL                          DeletePending;
2904   BOOL                          Directory;
2905 } FILE_STANDARD_INFO, *PFILE_STANDARD_INFO, *LPFILE_STANDARD_INFO;
2906
2907 typedef struct _FILE_NAME_INFO
2908 /* http://msdn.microsoft.com/en-us/library/aa364388%28v=VS.85%29.aspx */
2909 { DWORD                         FileNameLength;
2910   WCHAR                         FileName[1];
2911 } FILE_NAME_INFO, *PFILE_NAME_INFO, *LPFILE_NAME_INFO;
2912
2913 typedef struct _FILE_STREAM_INFO
2914 /* http://msdn.microsoft.com/en-us/library/aa364406%28v=VS.85%29.aspx */
2915 { DWORD                         NextEntryOffset;
2916   DWORD                         StreamNameLength;
2917   LARGE_INTEGER                 StreamSize;
2918   LARGE_INTEGER                 StreamAllocationSize;
2919   WCHAR                         StreamName[1];
2920 } FILE_STREAM_INFO, *PFILE_STREAM_INFO, *LPFILE_STREAM_INFO;
2921
2922 typedef struct _FILE_COMPRESSION_INFO
2923 /* http://msdn.microsoft.com/en-us/library/aa364220%28v=VS.85%29.aspx */
2924 { LARGE_INTEGER                 CompressedFileSize;
2925   WORD                          CompressionFormat;
2926   UCHAR                         CompressionUnitShift;
2927   UCHAR                         ChunkShift;
2928   UCHAR                         ClusterShift;
2929   UCHAR                         Reserved[3];
2930 } FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO, *LPFILE_COMPRESSION_INFO;
2931
2932 typedef struct _FILE_ATTRIBUTE_TAG_INFO
2933 /* http://msdn.microsoft.com/en-us/library/aa364216%28v=VS.85%29.aspx */
2934 { DWORD                         FileAttributes;
2935   DWORD                         ReparseTag;
2936 } FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO, *LPFILE_ATTRIBUTE_TAG_INFO;
2937
2938 typedef struct _FILE_ID_BOTH_DIR_INFO
2939 /* http://msdn.microsoft.com/en-us/library/aa364226%28v=VS.85%29.aspx */
2940 { DWORD                         NextEntryOffset;
2941   DWORD                         FileIndex;
2942   LARGE_INTEGER                 CreationTime;
2943   LARGE_INTEGER                 LastAccessTime;
2944   LARGE_INTEGER                 LastWriteTime;
2945   LARGE_INTEGER                 ChangeTime;
2946   LARGE_INTEGER                 EndOfFile;
2947   LARGE_INTEGER                 AllocationSize;
2948   DWORD                         FileAttributes;
2949   DWORD                         FileNameLength;
2950   DWORD                         EaSize;
2951   CCHAR                         ShortNameLength;
2952   WCHAR                         ShortName[12];
2953   LARGE_INTEGER                 FileId;
2954   WCHAR                         FileName[1];
2955 } FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO, *LPFILE_ID_BOTH_DIR_INFO;
2956
2957 typedef struct _FILE_REMOTE_PROTOCOL_INFO
2958 /* http://msdn.microsoft.com/en-us/library/dd979524%28v=VS.85%29.aspx */
2959 { USHORT                        StructureVersion;
2960   USHORT                        StructureSize;
2961   ULONG                         Protocol;
2962   USHORT                        ProtocolMajorVersion;
2963   USHORT                        ProtocolMinorVersion;
2964   USHORT                        ProtocolRevision;
2965   USHORT                        Reserved;
2966   ULONG                         Flags;
2967   struct
2968   { ULONG                         Reserved[8];
2969   }                             GenericReserved;
2970   struct
2971   { ULONG                         Reserved[16];
2972   }                             ProtocolSpecificReserved;
2973 } FILE_REMOTE_PROTOCOL_INFO, *PFILE_REMOTE_PROTOCOL_INFO, *LPFILE_REMOTE_PROTOCOL_INFO;
2974
2975 typedef enum _DEP_SYSTEM_POLICY_TYPE
2976 { AlwaysOn,
2977   AlwaysOff,
2978   OptIn,
2979   OptOut
2980 } DEP_SYSTEM_POLICY_TYPE;
2981
2982 typedef enum _FILE_INFO_BY_HANDLE_CLASS
2983 /* http://msdn.microsoft.com/en-us/library/aa364228%28v=VS.85%29.aspx */
2984 { FileBasicInfo,
2985   FileStandardInfo,
2986   FileNameInfo,
2987   FileRenameInfo,
2988   FileDispositionInfo,
2989   FileAllocationInfo,
2990   FileEndOfFileInfo,
2991   FileStreamInfo,
2992   FileCompressionInfo,
2993   FileAttributeTagInfo,
2994   FileIdBothDirectoryInfo,
2995   FileIdBothDirectoryRestartInfo,
2996   FileIoPriorityHintInfo,
2997   FileRemoteProtocolInfo,
2998   MaximumFileInfoByHandlesClass
2999 } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
3000
3001 #define CreateSymbolicLink __AW_SUFFIXED__(CreateSymbolicLink)
3002 WINBASEAPI BOOL WINAPI CreateSymbolicLinkA (LPCSTR, LPCSTR, DWORD);
3003 WINBASEAPI BOOL WINAPI CreateSymbolicLinkW (LPCWSTR, LPCWSTR, DWORD);
3004
3005 /* http://msdn.microsoft.com/en-us/library/aa364953%28VS.85%29.aspx */
3006 WINBASEAPI BOOL WINAPI GetFileInformationByHandleEx
3007 (HANDLE, FILE_INFO_BY_HANDLE_CLASS, LPVOID, DWORD);
3008
3009 /* http://msdn.microsoft.com/en-us/library/aa364962%28VS.85%29.aspx */
3010 #define GetFinalPathNameByHandle __AW_SUFFIXED__(GetFinalPathNameByHandle)
3011 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleA (HANDLE, LPSTR, DWORD, DWORD);
3012 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleW
3013 (HANDLE, LPWSTR, DWORD, DWORD);
3014
3015 #if _WIN32_WINNT >= _WIN32_WINNT_WIN7
3016 /* Additional features, available only on the WinNT series platforms, from
3017  * the release of Windows-7 onwards.
3018  */
3019 WINBASEAPI BOOL WINAPI GetProcessDEPPolicy (HANDLE, LPDWORD, PBOOL);
3020 WINBASEAPI DEP_SYSTEM_POLICY_TYPE WINAPI GetSystemDEPPolicy (void);
3021
3022 WINBASEAPI BOOL WINAPI SetProcessDEPPolicy (DWORD);
3023
3024 #endif  /* Win7 and later */
3025 #endif  /* Windows Vista and later */
3026 #endif  /* Windows Server-2003 and later */
3027 #endif  /* WinXP and later; not Win9x */
3028 #endif  /* Win2K and later, but not Win9x */
3029 #endif  /* Win98, Win2K, and later */
3030
3031 #endif  /* ! RC_INVOKED */
3032
3033 _END_C_DECLS
3034
3035 #endif  /* !_WINBASE_H: $RCSfile$: end of file */