xref: /reactos/sdk/include/psdk/winbase.h (revision 80774a2f)
1 #ifndef _WINBASE_
2 #define _WINBASE_
3 
4 #if !defined(_KERNEL32_)
5 #define WINBASEAPI DECLSPEC_IMPORT
6 #else
7 #define WINBASEAPI
8 #endif
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include <libloaderapi.h>
15 
16 #ifdef _MSC_VER
17 #pragma warning(push)
18 #pragma warning(disable:4201)
19 #pragma warning(disable:4214)
20 #pragma warning(disable:4820)
21 #endif
22 
23 #define PROCESS_NAME_NATIVE      1
24 
25 #define FILE_ENCRYPTABLE         0
26 #define FILE_IS_ENCRYPTED        1
27 #define FILE_SYSTEM_ATTR         2
28 #define FILE_ROOT_DIR            3
29 #define FILE_SYSTEM_DIR          4
30 #define FILE_UNKNOWN             5
31 #define FILE_SYSTEM_NOT_SUPPORT  6
32 #define FILE_USER_DISALLOWED     7
33 #define FILE_READ_ONLY           8
34 #define FILE_DIR_DISALLOWED      9
35 
36 #define COMMPROP_INITIALIZED 0xE73CF52E
37 #define SP_SERIALCOMM 1
38 #define PST_UNSPECIFIED	0
39 #define PST_RS232	1
40 #define PST_PARALLELPORT	2
41 #define PST_RS422	3
42 #define PST_RS423	4
43 #define PST_RS449	5
44 #define PST_MODEM	6
45 #define PST_FAX	0x21
46 #define PST_SCANNER	0x22
47 #define PST_NETWORK_BRIDGE	0x100
48 #define PST_LAT	0x101
49 #define PST_TCPIP_TELNET	0x102
50 #define PST_X25	0x103
51 #define BAUD_075	1
52 #define BAUD_110	2
53 #define BAUD_134_5	4
54 #define BAUD_150	8
55 #define BAUD_300	16
56 #define BAUD_600	32
57 #define BAUD_1200	64
58 #define BAUD_1800	128
59 #define BAUD_2400	256
60 #define BAUD_4800	512
61 #define BAUD_7200	1024
62 #define BAUD_9600	2048
63 #define BAUD_14400	4096
64 #define BAUD_19200	8192
65 #define BAUD_38400	16384
66 #define BAUD_56K	32768
67 #define BAUD_128K	65536
68 #define BAUD_115200	131072
69 #define BAUD_57600	262144
70 #define BAUD_USER	0x10000000
71 #define PCF_DTRDSR	1
72 #define PCF_RTSCTS	2
73 #define PCF_RLSD	4
74 #define PCF_PARITY_CHECK	8
75 #define PCF_XONXOFF	16
76 #define PCF_SETXCHAR	32
77 #define PCF_TOTALTIMEOUTS	64
78 #define PCF_INTTIMEOUTS	128
79 #define PCF_SPECIALCHARS	256
80 #define PCF_16BITMODE	512
81 #define SP_PARITY	1
82 #define SP_BAUD	2
83 #define SP_DATABITS	4
84 #define SP_STOPBITS	8
85 #define SP_HANDSHAKING	16
86 #define SP_PARITY_CHECK	32
87 #define SP_RLSD	64
88 #define DATABITS_5	1
89 #define DATABITS_6	2
90 #define DATABITS_7	4
91 #define DATABITS_8	8
92 #define DATABITS_16	16
93 #define DATABITS_16X	32
94 #define STOPBITS_10	1
95 #define STOPBITS_15	2
96 #define STOPBITS_20	4
97 #define PARITY_NONE	256
98 #define PARITY_ODD	512
99 #define PARITY_EVEN	1024
100 #define PARITY_MARK	2048
101 #define PARITY_SPACE	4096
102 #define EXCEPTION_DEBUG_EVENT	1
103 #define CREATE_THREAD_DEBUG_EVENT	2
104 #define CREATE_PROCESS_DEBUG_EVENT	3
105 #define EXIT_THREAD_DEBUG_EVENT	4
106 #define EXIT_PROCESS_DEBUG_EVENT	5
107 #define LOAD_DLL_DEBUG_EVENT	6
108 #define UNLOAD_DLL_DEBUG_EVENT	7
109 #define OUTPUT_DEBUG_STRING_EVENT	8
110 #define RIP_EVENT	9
111 #define HFILE_ERROR ((HFILE)-1)
112 #define FILE_BEGIN	0
113 #define FILE_CURRENT	1
114 #define FILE_END	2
115 #define INVALID_SET_FILE_POINTER	((DWORD)-1)
116 #define OF_READ 0
117 #define OF_READWRITE	2
118 #define OF_WRITE	1
119 #define OF_SHARE_COMPAT	0
120 #define OF_SHARE_DENY_NONE	64
121 #define OF_SHARE_DENY_READ	48
122 #define OF_SHARE_DENY_WRITE	32
123 #define OF_SHARE_EXCLUSIVE	16
124 #define OF_CANCEL	2048
125 #define OF_CREATE	4096
126 #define OF_DELETE	512
127 #define OF_EXIST	16384
128 #define OF_PARSE	256
129 #define OF_PROMPT	8192
130 #define OF_REOPEN	32768
131 #define OF_VERIFY	1024
132 #define NMPWAIT_NOWAIT	1
133 #define NMPWAIT_WAIT_FOREVER	((DWORD)-1)
134 #define NMPWAIT_USE_DEFAULT_WAIT	0
135 #define CE_BREAK	16
136 #define CE_DNS	2048
137 #define CE_FRAME	8
138 #define CE_IOE	1024
139 #define CE_MODE	32768
140 #define CE_OOP	4096
141 #define CE_OVERRUN	2
142 #define CE_PTO	512
143 #define CE_RXOVER	1
144 #define CE_RXPARITY	4
145 #define CE_TXFULL	256
146 #define PROGRESS_CONTINUE	0
147 #define PROGRESS_CANCEL	1
148 #define PROGRESS_STOP	2
149 #define PROGRESS_QUIET	3
150 #define CALLBACK_CHUNK_FINISHED	0
151 #define CALLBACK_STREAM_SWITCH	1
152 #define OFS_MAXPATHNAME 128
153 #define FILE_MAP_COPY SECTION_QUERY
154 #define FILE_MAP_WRITE SECTION_MAP_WRITE
155 #define FILE_MAP_READ SECTION_MAP_READ
156 #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
157 #define FILE_MAP_EXECUTE SECTION_MAP_EXECUTE_EXPLICIT
158 #define MUTEX_ALL_ACCESS	0x1f0001
159 #define MUTEX_MODIFY_STATE	1
160 #define SEMAPHORE_ALL_ACCESS	0x1f0003
161 #define SEMAPHORE_MODIFY_STATE	2
162 #define EVENT_ALL_ACCESS	0x1f0003
163 #define EVENT_MODIFY_STATE	2
164 #define PIPE_ACCESS_DUPLEX      3
165 #define PIPE_ACCESS_INBOUND     1
166 #define PIPE_ACCESS_OUTBOUND    2
167 #define PIPE_TYPE_BYTE	0
168 #define PIPE_TYPE_MESSAGE	4
169 #define PIPE_READMODE_BYTE	0
170 #define PIPE_READMODE_MESSAGE	2
171 #define PIPE_WAIT	0
172 #define PIPE_NOWAIT	1
173 #define PIPE_CLIENT_END 0
174 #define PIPE_SERVER_END 1
175 #define PIPE_UNLIMITED_INSTANCES 255
176 #define DEBUG_PROCESS			0x00000001
177 #define DEBUG_ONLY_THIS_PROCESS		0x00000002
178 #define CREATE_SUSPENDED		0x00000004
179 #define DETACHED_PROCESS		0x00000008
180 #define CREATE_NEW_CONSOLE		0x00000010
181 #define NORMAL_PRIORITY_CLASS		0x00000020
182 #define IDLE_PRIORITY_CLASS		0x00000040
183 #define HIGH_PRIORITY_CLASS		0x00000080
184 #define REALTIME_PRIORITY_CLASS		0x00000100
185 #define CREATE_NEW_PROCESS_GROUP	0x00000200
186 #define CREATE_UNICODE_ENVIRONMENT	0x00000400
187 #define CREATE_SEPARATE_WOW_VDM		0x00000800
188 #define CREATE_SHARED_WOW_VDM		0x00001000
189 #define CREATE_FORCEDOS			0x00002000
190 #define BELOW_NORMAL_PRIORITY_CLASS	0x00004000
191 #define ABOVE_NORMAL_PRIORITY_CLASS	0x00008000
192 #define CREATE_BREAKAWAY_FROM_JOB	0x01000000
193 #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x02000000
194 #define CREATE_DEFAULT_ERROR_MODE	0x04000000
195 #define CREATE_NO_WINDOW		0x08000000
196 #define PROFILE_USER			0x10000000
197 #define PROFILE_KERNEL			0x20000000
198 #define PROFILE_SERVER			0x40000000
199 #define CREATE_NEW	1
200 #define CREATE_ALWAYS	2
201 #define OPEN_EXISTING	3
202 #define OPEN_ALWAYS	4
203 #define TRUNCATE_EXISTING	5
204 #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x00000008
205 #define COPY_FILE_FAIL_IF_EXISTS 0x00000001
206 #define COPY_FILE_RESTARTABLE 0x00000002
207 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
208 #define FILE_FLAG_WRITE_THROUGH	0x80000000
209 #define FILE_FLAG_OVERLAPPED	1073741824
210 #define FILE_FLAG_NO_BUFFERING	536870912
211 #define FILE_FLAG_RANDOM_ACCESS	268435456
212 #define FILE_FLAG_SEQUENTIAL_SCAN	134217728
213 #define FILE_FLAG_DELETE_ON_CLOSE	67108864
214 #define FILE_FLAG_BACKUP_SEMANTICS	33554432
215 #define FILE_FLAG_POSIX_SEMANTICS	16777216
216 #define FILE_FLAG_OPEN_REPARSE_POINT	2097152
217 #define FILE_FLAG_OPEN_NO_RECALL	1048576
218 #if (_WIN32_WINNT >= 0x0500)
219 #define FILE_FLAG_FIRST_PIPE_INSTANCE	524288
220 #endif
221 #define CLRDTR 6
222 #define CLRRTS 4
223 #define SETDTR 5
224 #define SETRTS 3
225 #define SETXOFF 1
226 #define SETXON 2
227 #define RESETDEV 7
228 #define SETBREAK 8
229 #define CLRBREAK 9
230 #define STILL_ACTIVE 0x103
231 #define FIND_FIRST_EX_CASE_SENSITIVE 1
232 #define FIND_FIRST_EX_LARGE_FETCH 2
233 #define SCS_32BIT_BINARY 0
234 #define SCS_64BIT_BINARY 6
235 #define SCS_DOS_BINARY 1
236 #define SCS_OS216_BINARY 5
237 #define SCS_PIF_BINARY 3
238 #define SCS_POSIX_BINARY 4
239 #define SCS_WOW_BINARY 2
240 #define MAX_COMPUTERNAME_LENGTH 15
241 #define HW_PROFILE_GUIDLEN	39
242 #define MAX_PROFILE_LEN	80
243 #define DOCKINFO_UNDOCKED	1
244 #define DOCKINFO_DOCKED	2
245 #define DOCKINFO_USER_SUPPLIED	4
246 #define DOCKINFO_USER_UNDOCKED	(DOCKINFO_USER_SUPPLIED|DOCKINFO_UNDOCKED)
247 #define DOCKINFO_USER_DOCKED	(DOCKINFO_USER_SUPPLIED|DOCKINFO_DOCKED)
248 #define DRIVE_REMOVABLE 2
249 #define DRIVE_FIXED 3
250 #define DRIVE_REMOTE 4
251 #define DRIVE_CDROM 5
252 #define DRIVE_RAMDISK 6
253 #define DRIVE_UNKNOWN 0
254 #define DRIVE_NO_ROOT_DIR 1
255 #define FILE_TYPE_UNKNOWN 0
256 #define FILE_TYPE_DISK 1
257 #define FILE_TYPE_CHAR 2
258 #define FILE_TYPE_PIPE 3
259 #define FILE_TYPE_REMOTE 0x8000
260 /* also in ddk/ntapi.h */
261 #define HANDLE_FLAG_INHERIT		0x01
262 #define HANDLE_FLAG_PROTECT_FROM_CLOSE	0x02
263 /* end ntapi.h */
264 #define STD_INPUT_HANDLE (DWORD)(0xfffffff6)
265 #define STD_OUTPUT_HANDLE (DWORD)(0xfffffff5)
266 #define STD_ERROR_HANDLE (DWORD)(0xfffffff4)
267 #define INVALID_HANDLE_VALUE (HANDLE)(-1)
268 #define GET_TAPE_MEDIA_INFORMATION 0
269 #define GET_TAPE_DRIVE_INFORMATION 1
270 #define SET_TAPE_MEDIA_INFORMATION 0
271 #define SET_TAPE_DRIVE_INFORMATION 1
272 #define THREAD_PRIORITY_ABOVE_NORMAL 1
273 #define THREAD_PRIORITY_BELOW_NORMAL (-1)
274 #define THREAD_PRIORITY_HIGHEST 2
275 #define THREAD_PRIORITY_IDLE (-15)
276 #define THREAD_PRIORITY_LOWEST (-2)
277 #define THREAD_PRIORITY_NORMAL 0
278 #define THREAD_PRIORITY_TIME_CRITICAL 15
279 #define THREAD_PRIORITY_ERROR_RETURN 2147483647
280 #define TIME_ZONE_ID_UNKNOWN 0
281 #define TIME_ZONE_ID_STANDARD 1
282 #define TIME_ZONE_ID_DAYLIGHT 2
283 #define TIME_ZONE_ID_INVALID 0xFFFFFFFF
284 #define FS_CASE_IS_PRESERVED 2
285 #define FS_CASE_SENSITIVE 1
286 #define FS_UNICODE_STORED_ON_DISK 4
287 #define FS_PERSISTENT_ACLS 8
288 #define FS_FILE_COMPRESSION 16
289 #define FS_VOL_IS_COMPRESSED 32768
290 #define GMEM_FIXED 0
291 #define GMEM_MOVEABLE 2
292 #define GMEM_MODIFY 128
293 #define GPTR 64
294 #define GHND 66
295 #define GMEM_DDESHARE 8192
296 #define GMEM_DISCARDABLE 256
297 #define GMEM_LOWER 4096
298 #define GMEM_NOCOMPACT 16
299 #define GMEM_NODISCARD 32
300 #define GMEM_NOT_BANKED 4096
301 #define GMEM_NOTIFY 16384
302 #define GMEM_SHARE 8192
303 #define GMEM_ZEROINIT 64
304 #define GMEM_DISCARDED 16384
305 #define GMEM_INVALID_HANDLE 32768
306 #define GMEM_LOCKCOUNT 255
307 #define GMEM_VALID_FLAGS 32626
308 #define EXCEPTION_ACCESS_VIOLATION ((DWORD)0xC0000005)
309 #define EXCEPTION_DATATYPE_MISALIGNMENT ((DWORD)0x80000002)
310 #define EXCEPTION_BREAKPOINT ((DWORD)0x80000003)
311 #define EXCEPTION_SINGLE_STEP ((DWORD)0x80000004)
312 #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED ((DWORD)0xC000008C)
313 #define EXCEPTION_FLT_DENORMAL_OPERAND ((DWORD)0xC000008D)
314 #define EXCEPTION_FLT_DIVIDE_BY_ZERO ((DWORD)0xC000008E)
315 #define EXCEPTION_FLT_INEXACT_RESULT ((DWORD)0xC000008F)
316 #define EXCEPTION_FLT_INVALID_OPERATION ((DWORD)0xC0000090)
317 #define EXCEPTION_FLT_OVERFLOW ((DWORD)0xC0000091)
318 #define EXCEPTION_FLT_STACK_CHECK ((DWORD)0xC0000092)
319 #define EXCEPTION_FLT_UNDERFLOW ((DWORD)0xC0000093)
320 #define EXCEPTION_INT_DIVIDE_BY_ZERO ((DWORD)0xC0000094)
321 #define EXCEPTION_INT_OVERFLOW ((DWORD)0xC0000095)
322 #define EXCEPTION_PRIV_INSTRUCTION ((DWORD)0xC0000096)
323 #define EXCEPTION_IN_PAGE_ERROR ((DWORD)0xC0000006)
324 #define EXCEPTION_ILLEGAL_INSTRUCTION ((DWORD)0xC000001D)
325 #define EXCEPTION_NONCONTINUABLE_EXCEPTION ((DWORD)0xC0000025)
326 #define EXCEPTION_STACK_OVERFLOW ((DWORD)0xC00000FD)
327 #define EXCEPTION_INVALID_DISPOSITION ((DWORD)0xC0000026)
328 #define EXCEPTION_GUARD_PAGE ((DWORD)0x80000001)
329 #define EXCEPTION_INVALID_HANDLE ((DWORD)0xC0000008L)
330 #define CONTROL_C_EXIT ((DWORD)0xC000013A)
331 #define PROCESS_HEAP_REGION 1
332 #define PROCESS_HEAP_UNCOMMITTED_RANGE 2
333 #define PROCESS_HEAP_ENTRY_BUSY 4
334 #define PROCESS_HEAP_ENTRY_MOVEABLE 16
335 #define PROCESS_HEAP_ENTRY_DDESHARE 32
336 
337 #define DONT_RESOLVE_DLL_REFERENCES         1
338 #define LOAD_LIBRARY_AS_DATAFILE            2
339 #define LOAD_WITH_ALTERED_SEARCH_PATH       8
340 #define LOAD_IGNORE_CODE_AUTHZ_LEVEL        16
341 #define LOAD_LIBRARY_AS_IMAGE_RESOURCE      32
342 #define LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE  64
343 #define LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR    256
344 #define LOAD_LIBRARY_SEARCH_APPLICATION_DIR 512
345 #define LOAD_LIBRARY_SEARCH_USER_DIRS       1024
346 #define LOAD_LIBRARY_SEARCH_SYSTEM32        2048
347 #define LOAD_LIBRARY_SEARCH_DEFAULT_DIRS    4096
348 
349 #define LMEM_FIXED 0
350 #define LMEM_MOVEABLE 2
351 #define LMEM_NONZEROLHND 2
352 #define LMEM_NONZEROLPTR 0
353 #define LMEM_DISCARDABLE 3840
354 #define LMEM_NOCOMPACT 16
355 #define LMEM_NODISCARD 32
356 #define LMEM_ZEROINIT 64
357 #define LMEM_DISCARDED 16384
358 #define LMEM_MODIFY 128
359 #define LMEM_INVALID_HANDLE 32768
360 #define LMEM_LOCKCOUNT 255
361 #define LMEM_VALID_FLAGS 0x0F72
362 #define LPTR 64
363 #define LHND 66
364 #define NONZEROLHND 2
365 #define NONZEROLPTR 0
366 #define LOCKFILE_FAIL_IMMEDIATELY 1
367 #define LOCKFILE_EXCLUSIVE_LOCK 2
368 #define LOGON32_PROVIDER_DEFAULT	0
369 #define LOGON32_PROVIDER_WINNT35	1
370 #define LOGON32_PROVIDER_WINNT40	2
371 #define LOGON32_PROVIDER_WINNT50	3
372 #define LOGON32_LOGON_INTERACTIVE	2
373 #define LOGON32_LOGON_NETWORK	3
374 #define LOGON32_LOGON_BATCH	4
375 #define LOGON32_LOGON_SERVICE	5
376 #define LOGON32_LOGON_UNLOCK	7
377 #define LOGON32_LOGON_NETWORK_CLEARTEXT	8
378 #define LOGON32_LOGON_NEW_CREDENTIALS	9
379 #define MOVEFILE_REPLACE_EXISTING 1
380 #define MOVEFILE_COPY_ALLOWED 2
381 #define MOVEFILE_DELAY_UNTIL_REBOOT 4
382 #define MOVEFILE_WRITE_THROUGH 8
383 #define MOVEFILE_CREATE_HARDLINK 16
384 #define MOVEFILE_FAIL_IF_NOT_TRACKABLE 32
385 #define MAXIMUM_WAIT_OBJECTS 64
386 #define MAXIMUM_SUSPEND_COUNT 0x7F
387 #define WAIT_OBJECT_0 0
388 #define WAIT_ABANDONED_0 128
389 #ifndef WAIT_TIMEOUT /* also in winerror.h */
390 #define WAIT_TIMEOUT 258
391 #endif
392 #define WAIT_IO_COMPLETION 0xC0
393 #define WAIT_ABANDONED 128
394 #define WAIT_FAILED ((DWORD)0xFFFFFFFF)
395 #define PURGE_TXABORT 1
396 #define PURGE_RXABORT 2
397 #define PURGE_TXCLEAR 4
398 #define PURGE_RXCLEAR 8
399 
400 #define FORMAT_MESSAGE_ALLOCATE_BUFFER 256
401 #define FORMAT_MESSAGE_IGNORE_INSERTS 512
402 #define FORMAT_MESSAGE_FROM_STRING 1024
403 #define FORMAT_MESSAGE_FROM_HMODULE 2048
404 #define FORMAT_MESSAGE_FROM_SYSTEM 4096
405 #define FORMAT_MESSAGE_ARGUMENT_ARRAY 8192
406 #define FORMAT_MESSAGE_MAX_WIDTH_MASK 255
407 #define EV_BREAK 64
408 #define EV_CTS 8
409 #define EV_DSR 16
410 #define EV_ERR 128
411 #define EV_EVENT1 2048
412 #define EV_EVENT2 4096
413 #define EV_PERR 512
414 #define EV_RING 256
415 #define EV_RLSD 32
416 #define EV_RX80FULL 1024
417 #define EV_RXCHAR 1
418 #define EV_RXFLAG 2
419 #define EV_TXEMPTY 4
420 /* also in ddk/ntapi.h */
421 #define SEM_FAILCRITICALERRORS		0x0001
422 #define SEM_NOGPFAULTERRORBOX		0x0002
423 #define SEM_NOALIGNMENTFAULTEXCEPT	0x0004
424 #define SEM_NOOPENFILEERRORBOX		0x8000
425 /* end ntapi.h */
426 #define SLE_ERROR 1
427 #define SLE_MINORERROR 2
428 #define SLE_WARNING 3
429 #define SHUTDOWN_NORETRY 1
430 #define MAXINTATOM 0xC000
431 #define INVALID_ATOM ((ATOM)0)
432 #define IGNORE	0
433 #define INFINITE	0xFFFFFFFF
434 #define NOPARITY	0
435 #define ODDPARITY	1
436 #define EVENPARITY	2
437 #define MARKPARITY	3
438 #define SPACEPARITY	4
439 #define ONESTOPBIT	0
440 #define ONE5STOPBITS	1
441 #define TWOSTOPBITS	2
442 #define CBR_110	110
443 #define CBR_300	300
444 #define CBR_600	600
445 #define CBR_1200	1200
446 #define CBR_2400	2400
447 #define CBR_4800	4800
448 #define CBR_9600	9600
449 #define CBR_14400	14400
450 #define CBR_19200	19200
451 #define CBR_38400	38400
452 #define CBR_56000	56000
453 #define CBR_57600	57600
454 #define CBR_115200	115200
455 #define CBR_128000	128000
456 #define CBR_256000	256000
457 #define BACKUP_INVALID	0
458 #define BACKUP_DATA 1
459 #define BACKUP_EA_DATA 2
460 #define BACKUP_SECURITY_DATA 3
461 #define BACKUP_ALTERNATE_DATA 4
462 #define BACKUP_LINK 5
463 #define BACKUP_PROPERTY_DATA 6
464 #define BACKUP_OBJECT_ID 7
465 #define BACKUP_REPARSE_DATA 8
466 #define BACKUP_SPARSE_BLOCK 9
467 #define STREAM_NORMAL_ATTRIBUTE 0
468 #define STREAM_MODIFIED_WHEN_READ 1
469 #define STREAM_CONTAINS_SECURITY 2
470 #define STREAM_CONTAINS_PROPERTIES 4
471 
472 #define STARTF_USESHOWWINDOW    0x00000001
473 #define STARTF_USESIZE          0x00000002
474 #define STARTF_USEPOSITION      0x00000004
475 #define STARTF_USECOUNTCHARS    0x00000008
476 #define STARTF_USEFILLATTRIBUTE 0x00000010
477 #define STARTF_RUNFULLSCREEN    0x00000020
478 #define STARTF_FORCEONFEEDBACK  0x00000040
479 #define STARTF_FORCEOFFFEEDBACK 0x00000080
480 #define STARTF_USESTDHANDLES    0x00000100
481 #if (WINVER >= 0x400)
482 #define STARTF_USEHOTKEY        0x00000200
483 #define STARTF_TITLEISLINKNAME  0x00000800
484 #define STARTF_TITLEISAPPID     0x00001000
485 #define STARTF_PREVENTPINNING   0x00002000
486 #endif /* (WINVER >= 0x400) */
487 
488 #define TC_NORMAL 0
489 #define TC_HARDERR 1
490 #define TC_GP_TRAP 2
491 #define TC_SIGNAL 3
492 #define AC_LINE_OFFLINE 0
493 #define AC_LINE_ONLINE 1
494 #define AC_LINE_BACKUP_POWER 2
495 #define AC_LINE_UNKNOWN 255
496 #define BATTERY_FLAG_HIGH 1
497 #define BATTERY_FLAG_LOW 2
498 #define BATTERY_FLAG_CRITICAL 4
499 #define BATTERY_FLAG_CHARGING 8
500 #define BATTERY_FLAG_NO_BATTERY 128
501 #define BATTERY_FLAG_UNKNOWN 255
502 #define BATTERY_PERCENTAGE_UNKNOWN 255
503 #define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
504 #define DDD_RAW_TARGET_PATH 1
505 #define DDD_REMOVE_DEFINITION 2
506 #define DDD_EXACT_MATCH_ON_REMOVE 4
507 #define DDD_NO_BROADCAST_SYSTEM 8
508 #define DDD_LUID_BROADCAST_DRIVE 16
509 #define HINSTANCE_ERROR 32
510 #define MS_CTS_ON 16
511 #define MS_DSR_ON 32
512 #define MS_RING_ON 64
513 #define MS_RLSD_ON 128
514 #define DTR_CONTROL_DISABLE 0
515 #define DTR_CONTROL_ENABLE 1
516 #define DTR_CONTROL_HANDSHAKE 2
517 #define RTS_CONTROL_DISABLE 0
518 #define RTS_CONTROL_ENABLE 1
519 #define RTS_CONTROL_HANDSHAKE 2
520 #define RTS_CONTROL_TOGGLE 3
521 #define SECURITY_ANONYMOUS (SecurityAnonymous<<16)
522 #define SECURITY_IDENTIFICATION (SecurityIdentification<<16)
523 #define SECURITY_IMPERSONATION (SecurityImpersonation<<16)
524 #define SECURITY_DELEGATION (SecurityDelegation<<16)
525 #define SECURITY_CONTEXT_TRACKING 0x40000
526 #define SECURITY_EFFECTIVE_ONLY 0x80000
527 #define SECURITY_SQOS_PRESENT 0x100000
528 #define SECURITY_VALID_SQOS_FLAGS 0x1F0000
529 #define INVALID_FILE_SIZE 0xFFFFFFFF
530 #define TLS_OUT_OF_INDEXES (DWORD)0xFFFFFFFF
531 #if (_WIN32_WINNT >= 0x0501)
532 #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID 0x00000001
533 #define ACTCTX_FLAG_LANGID_VALID 0x00000002
534 #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x00000004
535 #define ACTCTX_FLAG_RESOURCE_NAME_VALID 0x00000008
536 #define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x00000010
537 #define ACTCTX_FLAG_APPLICATION_NAME_VALID 0x00000020
538 #define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF 0x00000040
539 #define ACTCTX_FLAG_HMODULE_VALID 0x00000080
540 #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION 0x00000001
541 #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX 0x00000001
542 #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX 0x00000004
543 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE 0x00000008
544 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS 0x00000010
545 #define QUERY_ACTCTX_FLAG_NO_ADDREF 0x80000000
546 #if (_WIN32_WINNT >= 0x0600)
547 #define SYMBOLIC_LINK_FLAG_DIRECTORY 0x1
548 #endif
549 #endif /* (_WIN32_WINNT >= 0x0501) */
550 #if (_WIN32_WINNT >= 0x0500)
551 #define REPLACEFILE_WRITE_THROUGH 0x00000001
552 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002
553 #endif /* (_WIN32_WINNT >= 0x0500) */
554 #if (_WIN32_WINNT >= 0x0400)
555 #define FIBER_FLAG_FLOAT_SWITCH 0x1
556 #endif
557 #define FLS_OUT_OF_INDEXES 0xFFFFFFFF
558 #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
559 #if (_WIN32_WINNT >= 0x0600)
560 #define MAX_RESTART_CMD_LINE 0x800
561 #define RESTART_CYCLICAL 0x1
562 #define RESTART_NOTIFY_SOLUTION 0x2
563 #define RESTART_NOTIFY_FAULT 0x4
564 #define VOLUME_NAME_DOS 0x0
565 #define VOLUME_NAME_GUID 0x1
566 #define VOLUME_NAME_NT 0x2
567 #define VOLUME_NAME_NONE 0x4
568 #define FILE_NAME_NORMALIZED 0x0
569 #define FILE_NAME_OPENED 0x8
570 #define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1
571 #define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2
572 #endif
573 #if (_WIN32_WINNT >= 0x0500)
574 #define GET_MODULE_HANDLE_EX_FLAG_PIN 0x1
575 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 0x2
576 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 0x4
577 #endif
578 #if (_WIN32_WINNT >= 0x0600)
579 #define CREATE_EVENT_MANUAL_RESET   0x1
580 #define CREATE_EVENT_INITIAL_SET    0x2
581 #define CREATE_MUTEX_INITIAL_OWNER  0x1
582 #define CREATE_WAITABLE_TIMER_MANUAL_RESET  0x1
583 #define SRWLOCK_INIT    RTL_SRWLOCK_INIT
584 #define CONDITION_VARIABLE_INIT RTL_CONDITION_VARIABLE_INIT
585 #define CONDITION_VARIABLE_LOCKMODE_SHARED  RTL_CONDITION_VARIABLE_LOCKMODE_SHARED
586 #endif
587 
588 #define BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE  0x00001
589 #define BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE 0x10000
590 #define BASE_SEARCH_PATH_PERMANENT               0x08000
591 #define BASE_SEARCH_PATH_INVALID_FLAGS           (~0x18001)
592 
593 #define INIT_ONCE_STATIC_INIT RTL_RUN_ONCE_INIT
594 
595 #if (_WIN32_WINNT >= 0x0600)
596 #define PROCESS_DEP_ENABLE 0x00000001
597 #define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION 0x00000002
598 #endif
599 
600 #ifndef RC_INVOKED
601 
602 #ifndef _FILETIME_
603 #define _FILETIME_
604 typedef struct _FILETIME {
605 	DWORD dwLowDateTime;
606 	DWORD dwHighDateTime;
607 } FILETIME,*PFILETIME,*LPFILETIME;
608 #endif
609 
610 typedef struct _BY_HANDLE_FILE_INFORMATION {
611 	DWORD	dwFileAttributes;
612 	FILETIME	ftCreationTime;
613 	FILETIME	ftLastAccessTime;
614 	FILETIME	ftLastWriteTime;
615 	DWORD	dwVolumeSerialNumber;
616 	DWORD	nFileSizeHigh;
617 	DWORD	nFileSizeLow;
618 	DWORD	nNumberOfLinks;
619 	DWORD	nFileIndexHigh;
620 	DWORD	nFileIndexLow;
621 } BY_HANDLE_FILE_INFORMATION,*PBY_HANDLE_FILE_INFORMATION,*LPBY_HANDLE_FILE_INFORMATION;
622 
623 typedef struct _DCB {
624 	DWORD DCBlength;
625 	DWORD BaudRate;
626 	DWORD fBinary:1;
627 	DWORD fParity:1;
628 	DWORD fOutxCtsFlow:1;
629 	DWORD fOutxDsrFlow:1;
630 	DWORD fDtrControl:2;
631 	DWORD fDsrSensitivity:1;
632 	DWORD fTXContinueOnXoff:1;
633 	DWORD fOutX:1;
634 	DWORD fInX:1;
635 	DWORD fErrorChar:1;
636 	DWORD fNull:1;
637 	DWORD fRtsControl:2;
638 	DWORD fAbortOnError:1;
639 	DWORD fDummy2:17;
640 	WORD wReserved;
641 	WORD XonLim;
642 	WORD XoffLim;
643 	BYTE ByteSize;
644 	BYTE Parity;
645 	BYTE StopBits;
646 	char XonChar;
647 	char XoffChar;
648 	char ErrorChar;
649 	char EofChar;
650 	char EvtChar;
651 	WORD wReserved1;
652 } DCB,*LPDCB;
653 
654 typedef struct _COMM_CONFIG {
655 	DWORD dwSize;
656 	WORD  wVersion;
657 	WORD  wReserved;
658 	DCB   dcb;
659 	DWORD dwProviderSubType;
660 	DWORD dwProviderOffset;
661 	DWORD dwProviderSize;
662 	WCHAR wcProviderData[1];
663 } COMMCONFIG,*LPCOMMCONFIG;
664 
665 typedef struct _COMMPROP {
666 	WORD	wPacketLength;
667 	WORD	wPacketVersion;
668 	DWORD	dwServiceMask;
669 	DWORD	dwReserved1;
670 	DWORD	dwMaxTxQueue;
671 	DWORD	dwMaxRxQueue;
672 	DWORD	dwMaxBaud;
673 	DWORD	dwProvSubType;
674 	DWORD	dwProvCapabilities;
675 	DWORD	dwSettableParams;
676 	DWORD	dwSettableBaud;
677 	WORD	wSettableData;
678 	WORD	wSettableStopParity;
679 	DWORD	dwCurrentTxQueue;
680 	DWORD	dwCurrentRxQueue;
681 	DWORD	dwProvSpec1;
682 	DWORD	dwProvSpec2;
683 	WCHAR	wcProvChar[1];
684 } COMMPROP,*LPCOMMPROP;
685 
686 typedef struct _COMMTIMEOUTS {
687 	DWORD ReadIntervalTimeout;
688 	DWORD ReadTotalTimeoutMultiplier;
689 	DWORD ReadTotalTimeoutConstant;
690 	DWORD WriteTotalTimeoutMultiplier;
691 	DWORD WriteTotalTimeoutConstant;
692 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
693 
694 typedef struct _COMSTAT {
695 	DWORD fCtsHold:1;
696 	DWORD fDsrHold:1;
697 	DWORD fRlsdHold:1;
698 	DWORD fXoffHold:1;
699 	DWORD fXoffSent:1;
700 	DWORD fEof:1;
701 	DWORD fTxim:1;
702 	DWORD fReserved:25;
703 	DWORD cbInQue;
704 	DWORD cbOutQue;
705 } COMSTAT,*LPCOMSTAT;
706 
707 typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID);
708 
709 typedef struct _CREATE_PROCESS_DEBUG_INFO {
710 	HANDLE hFile;
711 	HANDLE hProcess;
712 	HANDLE hThread;
713 	LPVOID lpBaseOfImage;
714 	DWORD dwDebugInfoFileOffset;
715 	DWORD nDebugInfoSize;
716 	LPVOID lpThreadLocalBase;
717 	LPTHREAD_START_ROUTINE lpStartAddress;
718 	LPVOID lpImageName;
719 	WORD fUnicode;
720 } CREATE_PROCESS_DEBUG_INFO,*LPCREATE_PROCESS_DEBUG_INFO;
721 
722 typedef struct _CREATE_THREAD_DEBUG_INFO {
723 	HANDLE hThread;
724 	LPVOID lpThreadLocalBase;
725 	LPTHREAD_START_ROUTINE lpStartAddress;
726 } CREATE_THREAD_DEBUG_INFO,*LPCREATE_THREAD_DEBUG_INFO;
727 
728 typedef struct _EXCEPTION_DEBUG_INFO {
729 	EXCEPTION_RECORD ExceptionRecord;
730 	DWORD dwFirstChance;
731 } EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
732 
733 typedef struct _EXIT_THREAD_DEBUG_INFO {
734 	DWORD dwExitCode;
735 } EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
736 
737 typedef struct _EXIT_PROCESS_DEBUG_INFO {
738 	DWORD dwExitCode;
739 } EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
740 
741 typedef struct _LOAD_DLL_DEBUG_INFO {
742 	HANDLE hFile;
743 	LPVOID lpBaseOfDll;
744 	DWORD dwDebugInfoFileOffset;
745 	DWORD nDebugInfoSize;
746 	LPVOID lpImageName;
747 	WORD fUnicode;
748 } LOAD_DLL_DEBUG_INFO,*LPLOAD_DLL_DEBUG_INFO;
749 
750 typedef struct _UNLOAD_DLL_DEBUG_INFO {
751 	LPVOID lpBaseOfDll;
752 } UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
753 
754 typedef struct _OUTPUT_DEBUG_STRING_INFO {
755 	LPSTR lpDebugStringData;
756 	WORD fUnicode;
757 	WORD nDebugStringLength;
758 } OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO;
759 
760 typedef struct _RIP_INFO {
761 	DWORD dwError;
762 	DWORD dwType;
763 } RIP_INFO,*LPRIP_INFO;
764 
765 typedef struct _DEBUG_EVENT {
766 	DWORD dwDebugEventCode;
767 	DWORD dwProcessId;
768 	DWORD dwThreadId;
769 	union {
770 		EXCEPTION_DEBUG_INFO Exception;
771 		CREATE_THREAD_DEBUG_INFO CreateThread;
772 		CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
773 		EXIT_THREAD_DEBUG_INFO ExitThread;
774 		EXIT_PROCESS_DEBUG_INFO ExitProcess;
775 		LOAD_DLL_DEBUG_INFO LoadDll;
776 		UNLOAD_DLL_DEBUG_INFO UnloadDll;
777 		OUTPUT_DEBUG_STRING_INFO DebugString;
778 		RIP_INFO RipInfo;
779 	} u;
780 } DEBUG_EVENT,*LPDEBUG_EVENT;
781 
782 typedef struct _OVERLAPPED {
783 	ULONG_PTR Internal;
784 	ULONG_PTR InternalHigh;
785 	union {
786 		struct {
787 			DWORD Offset;
788 			DWORD OffsetHigh;
789 		} DUMMYSTRUCTNAME;
790 		PVOID Pointer;
791 	} DUMMYUNIONNAME;
792 	HANDLE hEvent;
793 } OVERLAPPED, *POVERLAPPED, *LPOVERLAPPED;
794 
795 typedef struct _STARTUPINFOA {
796 	DWORD	cb;
797 	LPSTR	lpReserved;
798 	LPSTR	lpDesktop;
799 	LPSTR	lpTitle;
800 	DWORD	dwX;
801 	DWORD	dwY;
802 	DWORD	dwXSize;
803 	DWORD	dwYSize;
804 	DWORD	dwXCountChars;
805 	DWORD	dwYCountChars;
806 	DWORD	dwFillAttribute;
807 	DWORD	dwFlags;
808 	WORD	wShowWindow;
809 	WORD	cbReserved2;
810 	PBYTE	lpReserved2;
811 	HANDLE	hStdInput;
812 	HANDLE	hStdOutput;
813 	HANDLE	hStdError;
814 } STARTUPINFOA,*LPSTARTUPINFOA;
815 
816 typedef struct _STARTUPINFOW {
817 	DWORD	cb;
818 	LPWSTR	lpReserved;
819 	LPWSTR	lpDesktop;
820 	LPWSTR	lpTitle;
821 	DWORD	dwX;
822 	DWORD	dwY;
823 	DWORD	dwXSize;
824 	DWORD	dwYSize;
825 	DWORD	dwXCountChars;
826 	DWORD	dwYCountChars;
827 	DWORD	dwFillAttribute;
828 	DWORD	dwFlags;
829 	WORD	wShowWindow;
830 	WORD	cbReserved2;
831 	PBYTE	lpReserved2;
832 	HANDLE	hStdInput;
833 	HANDLE	hStdOutput;
834 	HANDLE	hStdError;
835 } STARTUPINFOW,*LPSTARTUPINFOW;
836 
837 typedef struct _PROCESS_INFORMATION {
838 	HANDLE hProcess;
839 	HANDLE hThread;
840 	DWORD dwProcessId;
841 	DWORD dwThreadId;
842 } PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
843 
844 typedef struct _CRITICAL_SECTION_DEBUG {
845 	WORD Type;
846 	WORD CreatorBackTraceIndex;
847 	struct _CRITICAL_SECTION *CriticalSection;
848 	LIST_ENTRY ProcessLocksList;
849 	DWORD EntryCount;
850 	DWORD ContentionCount;
851 //#ifdef __WINESRC__ //not all wine code is marked so
852 	DWORD_PTR Spare[8/sizeof(DWORD_PTR)];/* in Wine they store a string here */
853 //#else
854 	//WORD SpareWORD;
855 //#endif
856 } CRITICAL_SECTION_DEBUG,*PCRITICAL_SECTION_DEBUG,*LPCRITICAL_SECTION_DEBUG;
857 
858 typedef struct _CRITICAL_SECTION {
859 	PCRITICAL_SECTION_DEBUG DebugInfo;
860 	LONG LockCount;
861 	LONG RecursionCount;
862 	HANDLE OwningThread;
863 	HANDLE LockSemaphore;
864 	ULONG_PTR SpinCount;
865 } CRITICAL_SECTION,*PCRITICAL_SECTION,*LPCRITICAL_SECTION;
866 
867 #ifndef _SYSTEMTIME_
868 #define _SYSTEMTIME_
869 typedef struct _SYSTEMTIME {
870 	WORD wYear;
871 	WORD wMonth;
872 	WORD wDayOfWeek;
873 	WORD wDay;
874 	WORD wHour;
875 	WORD wMinute;
876 	WORD wSecond;
877 	WORD wMilliseconds;
878 } SYSTEMTIME,*LPSYSTEMTIME,*PSYSTEMTIME;
879 #endif /* _SYSTEMTIME_ */
880 #if (_WIN32_WINNT >= 0x0500)
881 typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK ;
882 #endif
883 typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
884 	DWORD	dwFileAttributes;
885 	FILETIME	ftCreationTime;
886 	FILETIME	ftLastAccessTime;
887 	FILETIME	ftLastWriteTime;
888 	DWORD	nFileSizeHigh;
889 	DWORD	nFileSizeLow;
890 } WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA;
891 typedef struct _WIN32_FIND_DATAA {
892 	DWORD dwFileAttributes;
893 	FILETIME ftCreationTime;
894 	FILETIME ftLastAccessTime;
895 	FILETIME ftLastWriteTime;
896 	DWORD nFileSizeHigh;
897 	DWORD nFileSizeLow;
898 	DWORD dwReserved0;
899 	DWORD dwReserved1;
900 	CHAR cFileName[MAX_PATH];
901 	CHAR cAlternateFileName[14];
902 } WIN32_FIND_DATAA,*PWIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
903 typedef struct _WIN32_FIND_DATAW {
904 	DWORD dwFileAttributes;
905 	FILETIME ftCreationTime;
906 	FILETIME ftLastAccessTime;
907 	FILETIME ftLastWriteTime;
908 	DWORD nFileSizeHigh;
909 	DWORD nFileSizeLow;
910 	DWORD dwReserved0;
911 	DWORD dwReserved1;
912 	WCHAR cFileName[MAX_PATH];
913 	WCHAR cAlternateFileName[14];
914 } WIN32_FIND_DATAW,*PWIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
915 
916 #if (_WIN32_WINNT >= 0x0501)
917 typedef enum _STREAM_INFO_LEVELS {
918 	FindStreamInfoStandard
919 } STREAM_INFO_LEVELS;
920 
921 typedef struct _WIN32_FIND_STREAM_DATA {
922 	LARGE_INTEGER StreamSize;
923 	WCHAR cStreamName[MAX_PATH + 36];
924 } WIN32_FIND_STREAM_DATA, *PWIN32_FIND_STREAM_DATA;
925 #endif
926 
927 typedef struct _WIN32_STREAM_ID {
928 	DWORD dwStreamId;
929 	DWORD dwStreamAttributes;
930 	LARGE_INTEGER Size;
931 	DWORD dwStreamNameSize;
932 	WCHAR cStreamName[ANYSIZE_ARRAY];
933 } WIN32_STREAM_ID, *LPWIN32_STREAM_ID;
934 
935 #if (_WIN32_WINNT >= 0x0600)
936 
937 typedef enum _FILE_ID_TYPE {
938     FileIdType,
939     ObjectIdType,
940     ExtendedFileIdType,
941     MaximumFileIdType
942 } FILE_ID_TYPE, *PFILE_ID_TYPE;
943 
944 typedef struct _FILE_ID_DESCRIPTOR {
945     DWORD        dwSize;
946     FILE_ID_TYPE Type;
947     union {
948         LARGE_INTEGER FileId;
949         GUID          ObjectId;
950     } DUMMYUNIONNAME;
951 } FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
952 
953 typedef enum _FILE_INFO_BY_HANDLE_CLASS {
954     FileBasicInfo,
955     FileStandardInfo,
956     FileNameInfo,
957     FileRenameInfo,
958     FileDispositionInfo,
959     FileAllocationInfo,
960     FileEndOfFileInfo,
961     FileStreamInfo,
962     FileCompressionInfo,
963     FileAttributeTagInfo,
964     FileIdBothDirectoryInfo,
965     FileIdBothDirectoryRestartInfo,
966     FileIoPriorityHintInfo,
967     FileRemoteProtocolInfo,
968     FileFullDirectoryInfo,
969     FileFullDirectoryRestartInfo,
970     FileStorageInfo,
971     FileAlignmentInfo,
972     FileIdInfo,
973     FileIdExtdDirectoryInfo,
974     FileIdExtdDirectoryRestartInfo,
975     MaximumFileInfoByHandlesClass
976 } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
977 
978 typedef struct _FILE_ID_BOTH_DIR_INFO {
979     DWORD         NextEntryOffset;
980     DWORD         FileIndex;
981     LARGE_INTEGER CreationTime;
982     LARGE_INTEGER LastAccessTime;
983     LARGE_INTEGER LastWriteTime;
984     LARGE_INTEGER ChangeTime;
985     LARGE_INTEGER EndOfFile;
986     LARGE_INTEGER AllocationSize;
987     DWORD         FileAttributes;
988     DWORD         FileNameLength;
989     DWORD         EaSize;
990     CCHAR         ShortNameLength;
991     WCHAR         ShortName[12];
992     LARGE_INTEGER FileId;
993     WCHAR         FileName[1];
994 } FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
995 
996 typedef struct _FILE_BASIC_INFO {
997     LARGE_INTEGER CreationTime;
998     LARGE_INTEGER LastAccessTime;
999     LARGE_INTEGER LastWriteTime;
1000     LARGE_INTEGER ChangeTime;
1001     DWORD FileAttributes;
1002 } FILE_BASIC_INFO, *PFILE_BASIC_INFO;
1003 
1004 typedef struct _FILE_STANDARD_INFO {
1005     LARGE_INTEGER AllocationSize;
1006     LARGE_INTEGER EndOfFile;
1007     DWORD NumberOfLinks;
1008     BOOLEAN DeletePending;
1009     BOOLEAN Directory;
1010 } FILE_STANDARD_INFO, *PFILE_STANDARD_INFO;
1011 
1012 typedef struct _FILE_NAME_INFO {
1013     DWORD FileNameLength;
1014     WCHAR FileName[1];
1015 } FILE_NAME_INFO, *PFILE_NAME_INFO;
1016 
1017 typedef enum _PRIORITY_HINT {
1018     IoPriorityHintVeryLow,
1019     IoPriorityHintLow,
1020     IoPriorityHintNormal,
1021     MaximumIoPriorityHintType
1022 } PRIORITY_HINT;
1023 
1024 typedef struct _FILE_IO_PRIORITY_HINT_INFO {
1025     PRIORITY_HINT PriorityHint;
1026 } FILE_IO_PRIORITY_HINT_INFO;
1027 
1028 typedef struct _FILE_ALLOCATION_INFO {
1029     LARGE_INTEGER AllocationSize;
1030 } FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO;
1031 
1032 typedef struct _FILE_DISPOSITION_INFO {
1033     BOOLEAN DeleteFile;
1034 } FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO;
1035 
1036 typedef struct _FILE_END_OF_FILE_INFO {
1037     LARGE_INTEGER EndOfFile;
1038 } FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO;
1039 
1040 typedef struct _FILE_RENAME_INFO {
1041     BOOLEAN ReplaceIfExists;
1042     HANDLE RootDirectory;
1043     DWORD FileNameLength;
1044     WCHAR FileName[1];
1045 } FILE_RENAME_INFO, *PFILE_RENAME_INFO;
1046 
1047 typedef struct _FILE_ATTRIBUTE_TAG_INFO {
1048     DWORD FileAttributes;
1049     DWORD ReparseTag;
1050 } FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
1051 
1052 typedef struct _FILE_COMPRESSION_INFO {
1053     LARGE_INTEGER CompressedFileSize;
1054     WORD CompressionFormat;
1055     UCHAR CompressionUnitShift;
1056     UCHAR ChunkShift;
1057     UCHAR ClusterShift;
1058     UCHAR Reserved[3];
1059 } FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO;
1060 
1061 typedef struct _FILE_REMOTE_PROTOCOL_INFO {
1062     USHORT StructureVersion;
1063     USHORT StructureSize;
1064     ULONG Protocol;
1065     USHORT ProtocolMajorVersion;
1066     USHORT ProtocolMinorVersion;
1067     USHORT ProtocolRevision;
1068     USHORT Reserved;
1069     ULONG Flags;
1070     struct {
1071         ULONG Reserved[8];
1072     } GenericReserved;
1073     struct {
1074         ULONG Reserved[16];
1075     } ProtocolSpecificReserved;
1076 } FILE_REMOTE_PROTOCOL_INFO, *PFILE_REMOTE_PROTOCOL_INFO;
1077 
1078 #endif
1079 
1080 typedef enum _FINDEX_INFO_LEVELS {
1081 	FindExInfoStandard,
1082 	FindExInfoBasic,
1083 	FindExInfoMaxInfoLevel
1084 } FINDEX_INFO_LEVELS;
1085 
1086 typedef enum _FINDEX_SEARCH_OPS {
1087 	FindExSearchNameMatch,
1088 	FindExSearchLimitToDirectories,
1089 	FindExSearchLimitToDevices,
1090 	FindExSearchMaxSearchOp
1091 } FINDEX_SEARCH_OPS;
1092 
1093 typedef struct tagHW_PROFILE_INFOA {
1094 	DWORD dwDockInfo;
1095 	CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
1096 	CHAR szHwProfileName[MAX_PROFILE_LEN];
1097 } HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA;
1098 
1099 typedef struct tagHW_PROFILE_INFOW {
1100 	DWORD dwDockInfo;
1101 	WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
1102 	WCHAR szHwProfileName[MAX_PROFILE_LEN];
1103 } HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW;
1104 
1105 /* Event Logging */
1106 
1107 #define EVENTLOG_FULL_INFO          0
1108 
1109 typedef struct _EVENTLOG_FULL_INFORMATION {
1110     DWORD dwFull;
1111 } EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION;
1112 
1113 typedef enum _GET_FILEEX_INFO_LEVELS {
1114 	GetFileExInfoStandard,
1115 	GetFileExMaxInfoLevel
1116 } GET_FILEEX_INFO_LEVELS;
1117 
1118 typedef struct _SYSTEM_INFO {
1119 	_ANONYMOUS_UNION union {
1120 		DWORD dwOemId;
1121 		_ANONYMOUS_STRUCT struct {
1122 			WORD wProcessorArchitecture;
1123 			WORD wReserved;
1124 		} DUMMYSTRUCTNAME;
1125 	} DUMMYUNIONNAME;
1126 	DWORD dwPageSize;
1127 	PVOID lpMinimumApplicationAddress;
1128 	PVOID lpMaximumApplicationAddress;
1129 	DWORD_PTR dwActiveProcessorMask;
1130 	DWORD dwNumberOfProcessors;
1131 	DWORD dwProcessorType;
1132 	DWORD dwAllocationGranularity;
1133 	WORD wProcessorLevel;
1134 	WORD wProcessorRevision;
1135 } SYSTEM_INFO,*LPSYSTEM_INFO;
1136 
1137 typedef struct _SYSTEM_POWER_STATUS {
1138 	BYTE ACLineStatus;
1139 	BYTE BatteryFlag;
1140 	BYTE BatteryLifePercent;
1141 	BYTE Reserved1;
1142 	DWORD BatteryLifeTime;
1143 	DWORD BatteryFullLifeTime;
1144 } SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
1145 
1146 typedef struct _TIME_DYNAMIC_ZONE_INFORMATION {
1147   LONG Bias;
1148   WCHAR StandardName[32];
1149   SYSTEMTIME StandardDate;
1150   LONG StandardBias;
1151   WCHAR DaylightName[32];
1152   SYSTEMTIME DaylightDate;
1153   LONG DaylightBias;
1154   WCHAR TimeZoneKeyName[128];
1155   BOOLEAN DynamicDaylightTimeDisabled;
1156 } DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION;
1157 
1158 typedef struct _TIME_ZONE_INFORMATION {
1159 	LONG Bias;
1160 	WCHAR StandardName[32];
1161 	SYSTEMTIME StandardDate;
1162 	LONG StandardBias;
1163 	WCHAR DaylightName[32];
1164 	SYSTEMTIME DaylightDate;
1165 	LONG DaylightBias;
1166 } TIME_ZONE_INFORMATION,*PTIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION;
1167 
1168 typedef struct _MEMORYSTATUS {
1169 	DWORD dwLength;
1170 	DWORD dwMemoryLoad;
1171 	SIZE_T dwTotalPhys;
1172 	SIZE_T dwAvailPhys;
1173 	SIZE_T dwTotalPageFile;
1174 	SIZE_T dwAvailPageFile;
1175 	SIZE_T dwTotalVirtual;
1176 	SIZE_T dwAvailVirtual;
1177 } MEMORYSTATUS,*LPMEMORYSTATUS;
1178 
1179 #if (_WIN32_WINNT >= 0x0500)
1180 typedef struct _MEMORYSTATUSEX {
1181 	DWORD dwLength;
1182 	DWORD dwMemoryLoad;
1183 	DWORDLONG ullTotalPhys;
1184 	DWORDLONG ullAvailPhys;
1185 	DWORDLONG ullTotalPageFile;
1186 	DWORDLONG ullAvailPageFile;
1187 	DWORDLONG ullTotalVirtual;
1188 	DWORDLONG ullAvailVirtual;
1189 	DWORDLONG ullAvailExtendedVirtual;
1190 } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
1191 #endif
1192 
1193 #ifndef _LDT_ENTRY_DEFINED
1194 #define _LDT_ENTRY_DEFINED
1195 typedef struct _LDT_ENTRY {
1196 	WORD LimitLow;
1197 	WORD BaseLow;
1198 	union {
1199 		struct {
1200 			BYTE BaseMid;
1201 			BYTE Flags1;
1202 			BYTE Flags2;
1203 			BYTE BaseHi;
1204 		} Bytes;
1205 		struct {
1206 			DWORD BaseMid:8;
1207 			DWORD Type:5;
1208 			DWORD Dpl:2;
1209 			DWORD Pres:1;
1210 			DWORD LimitHi:4;
1211 			DWORD Sys:1;
1212 			DWORD Reserved_0:1;
1213 			DWORD Default_Big:1;
1214 			DWORD Granularity:1;
1215 			DWORD BaseHi:8;
1216 		} Bits;
1217 	} HighWord;
1218 } LDT_ENTRY,*PLDT_ENTRY,*LPLDT_ENTRY;
1219 #endif
1220 
1221 typedef struct _PROCESS_HEAP_ENTRY {
1222 	PVOID lpData;
1223 	DWORD cbData;
1224 	BYTE cbOverhead;
1225 	BYTE iRegionIndex;
1226 	WORD wFlags;
1227 	_ANONYMOUS_UNION union {
1228 		struct {
1229 			HANDLE hMem;
1230 			DWORD dwReserved[3];
1231 		} Block;
1232 		struct {
1233 			DWORD dwCommittedSize;
1234 			DWORD dwUnCommittedSize;
1235 			LPVOID lpFirstBlock;
1236 			LPVOID lpLastBlock;
1237 		} Region;
1238 	} DUMMYUNIONNAME;
1239 } PROCESS_HEAP_ENTRY,*PPROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY;
1240 
1241 typedef struct _OFSTRUCT {
1242 	BYTE cBytes;
1243 	BYTE fFixedDisk;
1244 	WORD nErrCode;
1245 	WORD Reserved1;
1246 	WORD Reserved2;
1247 	CHAR szPathName[OFS_MAXPATHNAME];
1248 } OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
1249 
1250 #if (_WIN32_WINNT >= 0x0501)
1251 typedef struct tagACTCTXA {
1252 	ULONG cbSize;
1253 	DWORD dwFlags;
1254 	LPCSTR lpSource;
1255 	USHORT wProcessorArchitecture;
1256 	LANGID wLangId;
1257 	LPCSTR lpAssemblyDirectory;
1258 	LPCSTR lpResourceName;
1259 	LPCSTR lpApplicationName;
1260 	HMODULE hModule;
1261 } ACTCTXA,*PACTCTXA;
1262 typedef const ACTCTXA *PCACTCTXA;
1263 
1264 typedef struct tagACTCTXW {
1265 	ULONG cbSize;
1266 	DWORD dwFlags;
1267 	LPCWSTR lpSource;
1268 	USHORT wProcessorArchitecture;
1269 	LANGID wLangId;
1270 	LPCWSTR lpAssemblyDirectory;
1271 	LPCWSTR lpResourceName;
1272 	LPCWSTR lpApplicationName;
1273 	HMODULE hModule;
1274 } ACTCTXW,*PACTCTXW;
1275 typedef const ACTCTXW *PCACTCTXW;
1276 
1277 typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
1278 	ULONG  cbSize;
1279 	ULONG  ulDataFormatVersion;
1280 	PVOID  lpData;
1281 	ULONG  ulLength;
1282 	PVOID  lpSectionGlobalData;
1283 	ULONG  ulSectionGlobalDataLength;
1284 	PVOID  lpSectionBase;
1285 	ULONG  ulSectionTotalLength;
1286 	HANDLE hActCtx;
1287 	ULONG  ulAssemblyRosterIndex;
1288 } ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600;
1289 typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
1290 
1291 typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
1292 	PVOID lpInformation;
1293 	PVOID lpSectionBase;
1294 	ULONG ulSectionLength;
1295 	PVOID lpSectionGlobalDataBase;
1296 	ULONG ulSectionGlobalDataLength;
1297 } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1298 typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1299 
1300 typedef struct tagACTCTX_SECTION_KEYED_DATA {
1301 	ULONG cbSize;
1302 	ULONG ulDataFormatVersion;
1303 	PVOID lpData;
1304 	ULONG ulLength;
1305 	PVOID lpSectionGlobalData;
1306 	ULONG ulSectionGlobalDataLength;
1307 	PVOID lpSectionBase;
1308 	ULONG ulSectionTotalLength;
1309 	HANDLE hActCtx;
1310 	ULONG ulAssemblyRosterIndex;
1311 	/* Non 2600 extra fields */
1312 	ULONG ulFlags;
1313 	ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
1314 } ACTCTX_SECTION_KEYED_DATA,*PACTCTX_SECTION_KEYED_DATA;
1315 
1316 typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
1317 
1318 typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
1319 	HANDLE hActCtx;
1320 	DWORD  dwFlags;
1321 } ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION;
1322 typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
1323 
1324 typedef BOOL
1325 (WINAPI *PQUERYACTCTXW_FUNC)(
1326   _In_ DWORD dwFlags,
1327   _In_ HANDLE hActCtx,
1328   _In_opt_ PVOID pvSubInstance,
1329   _In_ ULONG ulInfoClass,
1330   _Out_writes_bytes_to_opt_(cbBuffer, *pcbWrittenOrRequired) PVOID pvBuffer,
1331   _In_ SIZE_T cbBuffer,
1332   _Out_opt_ SIZE_T *pcbWrittenOrRequired);
1333 
1334 typedef enum {
1335 	LowMemoryResourceNotification ,
1336 	HighMemoryResourceNotification
1337 } MEMORY_RESOURCE_NOTIFICATION_TYPE;
1338 #endif /* (_WIN32_WINNT >= 0x0501) */
1339 
1340 #if (_WIN32_WINNT >= 0x0500)
1341 typedef enum _COMPUTER_NAME_FORMAT {
1342 	ComputerNameNetBIOS,
1343 	ComputerNameDnsHostname,
1344 	ComputerNameDnsDomain,
1345 	ComputerNameDnsFullyQualified,
1346 	ComputerNamePhysicalNetBIOS,
1347 	ComputerNamePhysicalDnsHostname,
1348 	ComputerNamePhysicalDnsDomain,
1349 	ComputerNamePhysicalDnsFullyQualified,
1350 	ComputerNameMax
1351 } COMPUTER_NAME_FORMAT;
1352 #endif /* (_WIN32_WINNT >= 0x0500) */
1353 
1354 #if (_WIN32_WINNT >= 0x0600)
1355 typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK;
1356 typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE;
1357 #endif
1358 
1359 typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST;
1360 
1361 #define PROC_THREAD_ATTRIBUTE_NUMBER 0x0000ffff
1362 #define PROC_THREAD_ATTRIBUTE_THREAD 0x00010000
1363 #define PROC_THREAD_ATTRIBUTE_INPUT 0x00020000
1364 #define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x00040000
1365 
1366 typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
1367   ProcThreadAttributeParentProcess = 0,
1368   ProcThreadAttributeHandleList = 2,
1369   ProcThreadAttributeGroupAffinity = 3,
1370   ProcThreadAttributeIdealProcessor = 5,
1371   ProcThreadAttributeUmsThread = 6,
1372   ProcThreadAttributeMitigationPolicy = 7,
1373   ProcThreadAttributeSecurityCapabilities = 9,
1374   ProcThreadAttributeProtectionLevel = 11,
1375   ProcThreadAttributeJobList = 13,
1376   ProcThreadAttributeChildProcessPolicy = 14,
1377   ProcThreadAttributeAllApplicationPackagesPolicy = 15,
1378   ProcThreadAttributeWin32kFilter = 16,
1379   ProcThreadAttributeSafeOpenPromptOriginClaim = 17,
1380 } PROC_THREAD_ATTRIBUTE_NUM;
1381 
1382 #define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1383 #define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
1384 #define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS (ProcThreadAttributeParentProcess | PROC_THREAD_ATTRIBUTE_INPUT)
1385 
1386 typedef DWORD
1387 (WINAPI *PFE_EXPORT_FUNC)(
1388   _In_reads_bytes_(ulLength) PBYTE pbData,
1389   _In_opt_ PVOID pvCallbackContext,
1390   _In_ ULONG ulLength);
1391 
1392 typedef DWORD(WINAPI *LPPROGRESS_ROUTINE)(_In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ DWORD, _In_ DWORD, _In_ HANDLE, _In_ HANDLE, _In_opt_ LPVOID);
1393 
1394 typedef VOID (WINAPI *PFIBER_START_ROUTINE)( LPVOID lpFiberParameter );
1395 typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
1396 
1397 typedef VOID (WINAPI *PFLS_CALLBACK_FUNCTION)(PVOID);
1398 typedef BOOL(CALLBACK *ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG_PTR);
1399 typedef BOOL(CALLBACK *ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG_PTR);
1400 typedef BOOL(CALLBACK *ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG_PTR);
1401 typedef BOOL(CALLBACK *ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG_PTR);
1402 typedef BOOL(CALLBACK *ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG_PTR);
1403 typedef BOOL(CALLBACK *ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG_PTR);
1404 typedef void(CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
1405 typedef LONG(CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS);
1406 typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1407 typedef void(APIENTRY *PAPCFUNC)(ULONG_PTR);
1408 typedef void(CALLBACK *PTIMERAPCROUTINE)(PVOID,DWORD,DWORD);
1409 #if (_WIN32_WINNT >= 0x0600)
1410 typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)(PVOID);
1411 #endif
1412 
1413 #ifdef WINE_NO_UNICODE_MACROS /* force using a cast */
1414 #define MAKEINTATOM(atom)   ((ULONG_PTR)((WORD)(atom)))
1415 #else
1416 #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
1417 #endif
1418 
1419 typedef DWORD
1420 (WINAPI *PFE_IMPORT_FUNC)(
1421   _Out_writes_bytes_to_(*ulLength, *ulLength) PBYTE pbData,
1422   _In_opt_ PVOID pvCallbackContext,
1423   _Inout_ PULONG ulLength);
1424 
1425 /* Functions */
1426 #ifndef UNDER_CE
1427 int APIENTRY WinMain(_In_ HINSTANCE, _In_opt_ HINSTANCE, _In_ LPSTR, _In_ int);
1428 #else
1429 int APIENTRY WinMain(_In_ HINSTANCE, _In_opt_ HINSTANCE, _In_ LPWSTR, _In_ int);
1430 #endif
1431 int APIENTRY wWinMain(_In_ HINSTANCE, _In_opt_ HINSTANCE, _In_ LPWSTR, _In_ int);
1432 
1433 long
1434 WINAPI
1435 _hread(
1436   _In_ HFILE hFile,
1437   _Out_writes_bytes_to_(lBytes, return) LPVOID lpBuffer,
1438   _In_ long lBytes);
1439 
1440 long
1441 WINAPI
1442 _hwrite(
1443   _In_ HFILE hFile,
1444   _In_reads_bytes_(lBytes) LPCCH lpBuffer,
1445   _In_ long lBytes);
1446 
1447 HFILE WINAPI _lclose(_In_ HFILE);
1448 HFILE WINAPI _lcreat(_In_ LPCSTR, _In_ int);
1449 LONG WINAPI _llseek(_In_ HFILE, _In_ LONG, _In_ int);
1450 HFILE WINAPI _lopen(_In_ LPCSTR, _In_ int);
1451 
1452 UINT
1453 WINAPI
1454 _lread(
1455   _In_ HFILE hFile,
1456   _Out_writes_bytes_to_(uBytes, return) LPVOID lpBuffer,
1457   _In_ UINT uBytes);
1458 
1459 UINT
1460 WINAPI
1461 _lwrite(
1462   _In_ HFILE hFile,
1463   _In_reads_bytes_(uBytes) LPCCH lpBuffer,
1464   _In_ UINT uBytes);
1465 
1466 BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,PDWORD,PDWORD,PBOOL);
1467 
1468 BOOL
1469 WINAPI
1470 AccessCheckAndAuditAlarmA(
1471   _In_ LPCSTR SubsystemName,
1472   _In_opt_ LPVOID HandleId,
1473   _In_ LPSTR ObjectTypeName,
1474   _In_opt_ LPSTR ObjectName,
1475   _In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
1476   _In_ DWORD DesiredAccess,
1477   _In_ PGENERIC_MAPPING GenericMapping,
1478   _In_ BOOL ObjectCreation,
1479   _Out_ LPDWORD GrantedAccess,
1480   _Out_ LPBOOL AccessStatus,
1481   _Out_ LPBOOL pfGenerateOnClose);
1482 
1483 BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
1484 #if (_WIN32_WINNT >= 0x0600)
1485 VOID WINAPI AcquireSRWLockExclusive(PSRWLOCK);
1486 VOID WINAPI AcquireSRWLockShared(PSRWLOCK);
1487 #endif
1488 #if (_WIN32_WINNT >= 0x0501)
1489 BOOL WINAPI ActivateActCtx(_Inout_opt_ HANDLE, _Out_ ULONG_PTR*);
1490 #endif
1491 BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
1492 BOOL WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
1493 #if (_WIN32_WINNT >= 0x0500)
1494 BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1495 BOOL WINAPI AddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1496 BOOL WINAPI AddAccessAllowedObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID);
1497 BOOL WINAPI AddAccessDeniedObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID);
1498 #endif
1499 BOOL WINAPI AddAce(PACL,DWORD,DWORD,PVOID,DWORD);
1500 ATOM WINAPI AddAtomA(_In_opt_ LPCSTR);
1501 ATOM WINAPI AddAtomW(_In_opt_ LPCWSTR);
1502 BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
1503 #if (_WIN32_WINNT >= 0x0500)
1504 BOOL WINAPI AddAuditAccessObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID,BOOL,BOOL);
1505 #endif
1506 #if (_WIN32_WINNT >= 0x0501)
1507 void WINAPI AddRefActCtx(_Inout_ HANDLE);
1508 #endif
1509 #if (_WIN32_WINNT >= 0x0500)
1510 _Ret_maybenull_ PVOID WINAPI AddVectoredExceptionHandler(_In_ ULONG, _In_ PVECTORED_EXCEPTION_HANDLER);
1511 _Ret_maybenull_ PVOID WINAPI AddVectoredContinueHandler(_In_ ULONG, _In_ PVECTORED_EXCEPTION_HANDLER);
1512 #endif
1513 BOOL WINAPI AccessCheckByType(PSECURITY_DESCRIPTOR,PSID,HANDLE,DWORD,POBJECT_TYPE_LIST,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
1514 BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
1515 BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
1516 BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID*);
1517 BOOL WINAPI CheckTokenMembership(HANDLE,PSID,PBOOL);
1518 BOOL WINAPI AllocateLocallyUniqueId(PLUID);
1519 BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD);
1520 BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD);
1521 BOOL WINAPI AreFileApisANSI(void);
1522 BOOL WINAPI BackupEventLogA(_In_ HANDLE, _In_ LPCSTR);
1523 BOOL WINAPI BackupEventLogW(_In_ HANDLE, _In_ LPCWSTR);
1524 
1525 BOOL
1526 WINAPI
1527 BackupRead(
1528   _In_ HANDLE hFile,
1529   _Out_writes_bytes_to_(nNumberOfBytesToRead, *lpNumberOfBytesRead) LPBYTE lpBuffer,
1530   _In_ DWORD nNumberOfBytesToRead,
1531   _Out_ LPDWORD lpNumberOfBytesRead,
1532   _In_ BOOL bAbort,
1533   _In_ BOOL bProcessSecurity,
1534   _Inout_ LPVOID *lpContext);
1535 
1536 BOOL WINAPI BackupSeek(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _Out_ LPDWORD, _Out_ LPDWORD, _Inout_ LPVOID*);
1537 
1538 BOOL
1539 WINAPI
1540 BackupWrite(
1541   _In_ HANDLE hFile,
1542   _In_reads_bytes_(nNumberOfBytesToWrite) LPBYTE lpBuffer,
1543   _In_ DWORD nNumberOfBytesToWrite,
1544   _Out_ LPDWORD lpNumberOfBytesWritten,
1545   _In_ BOOL bAbort,
1546   _In_ BOOL bProcessSecurity,
1547   _Inout_ LPVOID *lpContext);
1548 
1549 BOOL WINAPI Beep(DWORD,DWORD);
1550 HANDLE WINAPI BeginUpdateResourceA(_In_ LPCSTR, _In_ BOOL);
1551 HANDLE WINAPI BeginUpdateResourceW(_In_ LPCWSTR, _In_ BOOL);
1552 #if (_WIN32_WINNT >= 0x0500)
1553 BOOL WINAPI BindIoCompletionCallback(_In_ HANDLE, _In_ LPOVERLAPPED_COMPLETION_ROUTINE, _In_ ULONG);
1554 #endif
1555 BOOL WINAPI BuildCommDCBA(_In_ LPCSTR, _Out_ LPDCB);
1556 BOOL WINAPI BuildCommDCBW(_In_ LPCWSTR, _Out_ LPDCB);
1557 BOOL WINAPI BuildCommDCBAndTimeoutsA(_In_ LPCSTR, _Out_ LPDCB, _Out_ LPCOMMTIMEOUTS);
1558 BOOL WINAPI BuildCommDCBAndTimeoutsW(_In_ LPCWSTR, _Out_ LPDCB, _Out_ LPCOMMTIMEOUTS);
1559 
1560 BOOL
1561 WINAPI
1562 CallNamedPipeA(
1563   _In_ LPCSTR lpNamedPipeName,
1564   _In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
1565   _In_ DWORD nInBufferSize,
1566   _Out_writes_bytes_to_opt_(nOutBufferSize, *lpBytesRead) LPVOID lpOutBuffer,
1567   _In_ DWORD nOutBufferSize,
1568   _Out_ LPDWORD lpBytesRead,
1569   _In_ DWORD nTimeOut);
1570 
1571 BOOL
1572 WINAPI
1573 CallNamedPipeW(
1574   _In_ LPCWSTR lpNamedPipeName,
1575   _In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
1576   _In_ DWORD nInBufferSize,
1577   _Out_writes_bytes_to_opt_(nOutBufferSize, *lpBytesRead) LPVOID lpOutBuffer,
1578   _In_ DWORD nOutBufferSize,
1579   _Out_ LPDWORD lpBytesRead,
1580   _In_ DWORD nTimeOut);
1581 
1582 BOOL WINAPI CancelDeviceWakeupRequest(_In_ HANDLE);
1583 BOOL WINAPI CancelIo(HANDLE);
1584 #if (_WIN32_WINNT >= 0x0600)
1585 BOOL WINAPI CancelIoEx(HANDLE,LPOVERLAPPED);
1586 BOOL WINAPI CancelSynchronousIo(HANDLE);
1587 #endif
1588 BOOL WINAPI CancelWaitableTimer(HANDLE);
1589 
1590 #if (_WIN32_WINNT >= 0x0501)
1591 
1592 BOOL
1593 WINAPI
1594 CheckNameLegalDOS8Dot3A(
1595   _In_ LPCSTR lpName,
1596   _Out_writes_opt_(OemNameSize) LPSTR lpOemName,
1597   _In_ DWORD OemNameSize,
1598   _Out_opt_ PBOOL pbNameContainsSpaces,
1599   _Out_ PBOOL pbNameLegal);
1600 
1601 BOOL
1602 WINAPI
1603 CheckNameLegalDOS8Dot3W(
1604   _In_ LPCWSTR lpName,
1605   _Out_writes_opt_(OemNameSize) LPSTR lpOemName,
1606   _In_ DWORD OemNameSize,
1607   _Out_opt_ PBOOL pbNameContainsSpaces,
1608   _Out_ PBOOL pbNameLegal);
1609 
1610 BOOL WINAPI CheckRemoteDebuggerPresent(_In_ HANDLE, _Out_ PBOOL);
1611 #endif
1612 
1613 BOOL WINAPI ClearCommBreak(_In_ HANDLE);
1614 BOOL WINAPI ClearCommError(_In_ HANDLE, _Out_opt_ PDWORD, _Out_opt_ LPCOMSTAT);
1615 BOOL WINAPI ClearEventLogA(_In_ HANDLE, _In_opt_ LPCSTR);
1616 BOOL WINAPI ClearEventLogW(_In_ HANDLE, _In_opt_ LPCWSTR);
1617 BOOL WINAPI CloseEventLog(_In_ HANDLE);
1618 BOOL WINAPI CloseHandle(HANDLE);
1619 BOOL WINAPI CommConfigDialogA(_In_ LPCSTR, _In_opt_ HWND, _Inout_ LPCOMMCONFIG);
1620 BOOL WINAPI CommConfigDialogW(_In_ LPCWSTR, _In_opt_ HWND, _Inout_ LPCOMMCONFIG);
1621 LONG WINAPI CompareFileTime(CONST FILETIME*,CONST FILETIME*);
1622 BOOL WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED);
1623 BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
1624 #if (_WIN32_WINNT >= 0x0400)
1625 BOOL WINAPI ConvertFiberToThread(void);
1626 #endif
1627 _Ret_maybenull_ PVOID WINAPI ConvertThreadToFiber(_In_opt_ PVOID);
1628 BOOL WINAPI CopyFileA(_In_ LPCSTR, _In_ LPCSTR, _In_ BOOL);
1629 BOOL WINAPI CopyFileW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ BOOL);
1630 BOOL WINAPI CopyFileExA(_In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_opt_ LPBOOL, _In_ DWORD);
1631 BOOL WINAPI CopyFileExW(_In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_opt_ LPBOOL, _In_ DWORD);
1632 #define MoveMemory RtlMoveMemory
1633 #define CopyMemory RtlCopyMemory
1634 #define FillMemory RtlFillMemory
1635 #define ZeroMemory RtlZeroMemory
1636 #define SecureZeroMemory RtlSecureZeroMemory
1637 BOOL WINAPI CopySid(DWORD,PSID,PSID);
1638 #if (_WIN32_WINNT >= 0x0501)
1639 HANDLE WINAPI CreateActCtxA(_In_ PCACTCTXA);
1640 HANDLE WINAPI CreateActCtxW(_In_ PCACTCTXW);
1641 #endif
1642 BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
1643 BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
1644 BOOL WINAPI CreateDirectoryExA(_In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPSECURITY_ATTRIBUTES);
1645 BOOL WINAPI CreateDirectoryExW(_In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPSECURITY_ATTRIBUTES);
1646 HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1647 HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1648 #if (_WIN32_WINNT >= 0x0600)
1649 HANDLE WINAPI CreateEventExA(LPSECURITY_ATTRIBUTES,LPCSTR,DWORD,DWORD);
1650 HANDLE WINAPI CreateEventExW(LPSECURITY_ATTRIBUTES,LPCWSTR,DWORD,DWORD);
1651 #endif
1652 _Ret_maybenull_ LPVOID WINAPI CreateFiber(_In_ SIZE_T, _In_ LPFIBER_START_ROUTINE, _In_opt_ LPVOID);
1653 #if (_WIN32_WINNT >= 0x0400)
1654 _Ret_maybenull_ LPVOID WINAPI CreateFiberEx(_In_ SIZE_T, _In_ SIZE_T, _In_ DWORD, _In_ LPFIBER_START_ROUTINE, _In_opt_ LPVOID);
1655 #endif
1656 HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1657 HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1658 _Ret_maybenull_ HANDLE WINAPI CreateFileMappingA(_In_ HANDLE, _In_opt_ LPSECURITY_ATTRIBUTES, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCSTR);
1659 HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR);
1660 #if (_WIN32_WINNT >= 0x0500)
1661 BOOL WINAPI CreateHardLinkA(_In_ LPCSTR, _In_ LPCSTR, _Reserved_ LPSECURITY_ATTRIBUTES);
1662 BOOL WINAPI CreateHardLinkW(_In_ LPCWSTR, _In_ LPCWSTR, _Reserved_ LPSECURITY_ATTRIBUTES);
1663 #endif
1664 HANDLE WINAPI CreateIoCompletionPort(HANDLE,HANDLE,ULONG_PTR,DWORD);
1665 #if (_WIN32_WINNT >= 0x0500)
1666 _Ret_maybenull_ HANDLE WINAPI CreateJobObjectA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_opt_ LPCSTR);
1667 _Ret_maybenull_ HANDLE WINAPI CreateJobObjectW(_In_opt_ LPSECURITY_ATTRIBUTES, _In_opt_ LPCWSTR);
1668 BOOL WINAPI TerminateJobObject(_In_ HANDLE, _In_ UINT);
1669 BOOL WINAPI AssignProcessToJobObject(_In_ HANDLE, _In_ HANDLE);
1670 #endif
1671 HANDLE WINAPI CreateMailslotA(_In_ LPCSTR, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1672 HANDLE WINAPI CreateMailslotW(_In_ LPCWSTR, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1673 #if (_WIN32_WINNT >= 0x0501)
1674 HANDLE WINAPI CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE);
1675 #endif
1676 HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1677 HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1678 #if (_WIN32_WINNT >= 0x0600)
1679 HANDLE WINAPI CreateMutexExA(LPSECURITY_ATTRIBUTES,LPCSTR,DWORD,DWORD);
1680 HANDLE WINAPI CreateMutexExW(LPSECURITY_ATTRIBUTES,LPCWSTR,DWORD,DWORD);
1681 #endif
1682 HANDLE WINAPI CreateNamedPipeA(_In_ LPCSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1683 HANDLE WINAPI CreateNamedPipeW(_In_ LPCWSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1684 BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1685 BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
1686 BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1687 BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1688 
1689 BOOL
1690 WINAPI
1691 CreateProcessAsUserA(
1692   _In_opt_ HANDLE,
1693   _In_opt_ LPCSTR,
1694   _Inout_opt_ LPSTR,
1695   _In_opt_ LPSECURITY_ATTRIBUTES,
1696   _In_opt_ LPSECURITY_ATTRIBUTES,
1697   _In_ BOOL,
1698   _In_ DWORD,
1699   _In_opt_ PVOID,
1700   _In_opt_ LPCSTR,
1701   _In_ LPSTARTUPINFOA,
1702   _Out_ LPPROCESS_INFORMATION);
1703 
1704 BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1705 HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1706 
1707 BOOL
1708 WINAPI
1709 CreateRestrictedToken(
1710   _In_ HANDLE ExistingTokenHandle,
1711   _In_ DWORD Flags,
1712   _In_ DWORD DisableSidCount,
1713   _In_reads_opt_(DisableSidCount) PSID_AND_ATTRIBUTES SidsToDisable,
1714   _In_ DWORD DeletePrivilegeCount,
1715   _In_reads_opt_(DeletePrivilegeCount) PLUID_AND_ATTRIBUTES PrivilegesToDelete,
1716   _In_ DWORD RestrictedSidCount,
1717   _In_reads_opt_(RestrictedSidCount) PSID_AND_ATTRIBUTES SidsToRestrict,
1718   _Outptr_ PHANDLE NewTokenHandle);
1719 
1720 _Ret_maybenull_ HANDLE WINAPI CreateSemaphoreA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ LONG, _In_ LONG, _In_opt_ LPCSTR);
1721 _Ret_maybenull_ HANDLE WINAPI CreateSemaphoreW(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ LONG, _In_ LONG, _In_opt_ LPCWSTR);
1722 #if (_WIN32_WINNT >= 0x0600)
1723 _Ret_maybenull_ HANDLE WINAPI CreateSemaphoreExA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ LONG, _In_ LONG, _In_opt_ LPCSTR, _Reserved_ DWORD, _In_ DWORD);
1724 HANDLE WINAPI CreateSemaphoreExW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR,DWORD,DWORD);
1725 #endif
1726 DWORD WINAPI CreateTapePartition(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ DWORD);
1727 #if (_WIN32_WINNT >= 0x0500)
1728 HANDLE WINAPI CreateTimerQueue(void);
1729 BOOL WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
1730 #endif
1731 HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,PVOID,DWORD,PDWORD);
1732 _Ret_maybenull_ HANDLE WINAPI CreateWaitableTimerA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ BOOL, _In_opt_ LPCSTR);
1733 _Ret_maybenull_ HANDLE WINAPI CreateWaitableTimerW(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ BOOL, _In_opt_ LPCWSTR);
1734 #if (_WIN32_WINNT >= 0x0600)
1735 _Ret_maybenull_ HANDLE WINAPI CreateWaitableTimerExA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_opt_ LPCSTR, _In_ DWORD, _In_ DWORD);
1736 HANDLE WINAPI CreateWaitableTimerExW(LPSECURITY_ATTRIBUTES,LPCWSTR,DWORD,DWORD);
1737 #endif
1738 #if (_WIN32_WINNT >= 0x0501)
1739 BOOL WINAPI CreateWellKnownSid(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*);
1740 BOOL WINAPI DeactivateActCtx(_In_ DWORD, _In_ ULONG_PTR);
1741 #endif
1742 BOOL WINAPI DebugActiveProcess(DWORD);
1743 #if (_WIN32_WINNT >= 0x0501)
1744 BOOL WINAPI DebugActiveProcessStop(DWORD);
1745 #endif
1746 void WINAPI DebugBreak(void);
1747 #if (_WIN32_WINNT >= 0x0501)
1748 BOOL WINAPI DebugBreakProcess(_In_ HANDLE);
1749 BOOL WINAPI DebugSetProcessKillOnExit(_In_ BOOL);
1750 #endif
1751 PVOID WINAPI DecodePointer(PVOID);
1752 PVOID WINAPI DecodeSystemPointer(PVOID);
1753 BOOL WINAPI DecryptFileA(_In_ LPCSTR, _Reserved_ DWORD);
1754 BOOL WINAPI DecryptFileW(_In_ LPCWSTR, _Reserved_ DWORD);
1755 BOOL WINAPI DefineDosDeviceA(_In_ DWORD, _In_ LPCSTR, _In_opt_ LPCSTR);
1756 BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1757 #define DefineHandleTable(w) ((w),TRUE)
1758 BOOL WINAPI DeleteAce(PACL,DWORD);
1759 ATOM WINAPI DeleteAtom(_In_ ATOM);
1760 void WINAPI DeleteCriticalSection(PCRITICAL_SECTION);
1761 void WINAPI DeleteFiber(_In_ PVOID);
1762 BOOL WINAPI DeleteFileA(LPCSTR);
1763 BOOL WINAPI DeleteFileW(LPCWSTR);
1764 #if (_WIN32_WINNT >= 0x0500)
1765 _Must_inspect_result_ BOOL WINAPI DeleteTimerQueue(_In_ HANDLE);
1766 BOOL WINAPI DeleteTimerQueueEx(HANDLE,HANDLE);
1767 BOOL WINAPI DeleteTimerQueueTimer(HANDLE,HANDLE,HANDLE);
1768 BOOL WINAPI DeleteVolumeMountPointA(_In_ LPCSTR);
1769 BOOL WINAPI DeleteVolumeMountPointW(LPCWSTR);
1770 #endif
1771 BOOL WINAPI DeregisterEventSource(_In_ HANDLE);
1772 BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
1773 BOOL WINAPI DeviceIoControl(HANDLE,DWORD,PVOID,DWORD,PVOID,DWORD,PDWORD,POVERLAPPED);
1774 BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
1775 
1776 #if (_WIN32_WINNT >= 0x0500)
1777 
1778 _Success_(return != FALSE)
1779 BOOL
1780 WINAPI
1781 DnsHostnameToComputerNameA(
1782   _In_ LPCSTR Hostname,
1783   _Out_writes_to_opt_(*nSize, *nSize + 1) LPSTR ComputerName,
1784   _Inout_ LPDWORD nSize);
1785 
1786 _Success_(return != FALSE)
1787 BOOL
1788 WINAPI
1789 DnsHostnameToComputerNameW(
1790   _In_ LPCWSTR Hostname,
1791   _Out_writes_to_opt_(*nSize, *nSize + 1) LPWSTR ComputerName,
1792   _Inout_ LPDWORD nSize);
1793 
1794 #endif
1795 
1796 BOOL WINAPI DisconnectNamedPipe(HANDLE);
1797 BOOL WINAPI DosDateTimeToFileTime(_In_ WORD, _In_ WORD, _Out_ LPFILETIME);
1798 BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,PHANDLE,DWORD,BOOL,DWORD);
1799 BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
1800 BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
1801 PVOID WINAPI EncodePointer(PVOID);
1802 PVOID WINAPI EncodeSystemPointer(PVOID);
1803 BOOL WINAPI EncryptFileA(_In_ LPCSTR);
1804 BOOL WINAPI EncryptFileW(_In_ LPCWSTR);
1805 BOOL WINAPI EndUpdateResourceA(_In_ HANDLE, _In_ BOOL);
1806 BOOL WINAPI EndUpdateResourceW(_In_ HANDLE, _In_ BOOL);
1807 void WINAPI EnterCriticalSection(LPCRITICAL_SECTION);
1808 BOOL WINAPI EnumResourceLanguagesA(_In_opt_ HMODULE, _In_ LPCSTR, _In_ LPCSTR, _In_ ENUMRESLANGPROCA, _In_ LONG_PTR);
1809 BOOL WINAPI EnumResourceLanguagesW(_In_opt_ HMODULE, _In_ LPCWSTR, _In_ LPCWSTR, _In_ ENUMRESLANGPROCW, _In_ LONG_PTR);
1810 BOOL WINAPI EnumResourceNamesA(_In_opt_ HMODULE, _In_ LPCSTR, _In_ ENUMRESNAMEPROCA, _In_ LONG_PTR);
1811 BOOL WINAPI EnumResourceNamesW(_In_opt_ HMODULE, _In_ LPCWSTR, _In_ ENUMRESNAMEPROCW, _In_ LONG_PTR);
1812 BOOL WINAPI EnumResourceTypesA(_In_opt_ HMODULE, _In_ ENUMRESTYPEPROCA, _In_ LONG_PTR);
1813 BOOL WINAPI EnumResourceTypesW(_In_opt_ HMODULE, _In_ ENUMRESTYPEPROCW, _In_ LONG_PTR);
1814 BOOL WINAPI EqualPrefixSid(PSID,PSID);
1815 BOOL WINAPI EqualSid(PSID,PSID);
1816 DWORD WINAPI EraseTape(_In_ HANDLE, _In_ DWORD, _In_ BOOL);
1817 BOOL WINAPI EscapeCommFunction(_In_ HANDLE, _In_ DWORD);
1818 DECLSPEC_NORETURN void WINAPI ExitProcess(UINT);
1819 DECLSPEC_NORETURN void WINAPI ExitThread(DWORD);
1820 DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
1821 DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
1822 void WINAPI FatalAppExitA(UINT,LPCSTR);
1823 void WINAPI FatalAppExitW(UINT,LPCWSTR);
1824 __analysis_noreturn void WINAPI FatalExit(_In_ int);
1825 BOOL WINAPI FileEncryptionStatusA(_In_ LPCSTR, _Out_ LPDWORD);
1826 BOOL WINAPI FileEncryptionStatusW(_In_ LPCWSTR, _Out_ LPDWORD);
1827 BOOL WINAPI FileTimeToDosDateTime(_In_ CONST FILETIME *, _Out_ LPWORD, _Out_ LPWORD);
1828 BOOL WINAPI FileTimeToLocalFileTime(CONST FILETIME *,LPFILETIME);
1829 BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *,LPSYSTEMTIME);
1830 #if (_WIN32_WINNT >= 0x0501)
1831 BOOL WINAPI FindActCtxSectionGuid(_In_ DWORD, _Reserved_ const GUID*, _In_ ULONG, _In_opt_ const GUID*, _Out_ PACTCTX_SECTION_KEYED_DATA);
1832 BOOL WINAPI FindActCtxSectionStringA(_In_ DWORD, _Reserved_ const GUID*, _In_ ULONG, _In_ LPCSTR, _Out_ PACTCTX_SECTION_KEYED_DATA);
1833 BOOL WINAPI FindActCtxSectionStringW(_In_ DWORD, _Reserved_ const GUID*, _In_ ULONG, _In_ LPCWSTR, _Out_ PACTCTX_SECTION_KEYED_DATA);
1834 #endif
1835 ATOM WINAPI FindAtomA(_In_opt_ LPCSTR);
1836 ATOM WINAPI FindAtomW(_In_opt_ LPCWSTR);
1837 BOOL WINAPI FindClose(HANDLE);
1838 BOOL WINAPI FindCloseChangeNotification(HANDLE);
1839 HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
1840 HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
1841 HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
1842 HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
1843 HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1844 HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1845 #if (_WIN32_WINNT >= 0x0501)
1846 HANDLE WINAPI FindFirstStreamW(_In_ LPCWSTR, _In_ STREAM_INFO_LEVELS, _Out_ LPVOID, _Reserved_ DWORD);
1847 #endif
1848 BOOL WINAPI FindFirstFreeAce(PACL,PVOID*);
1849 
1850 #if (_WIN32_WINNT >= 0x0500)
1851 
1852 HANDLE
1853 WINAPI
1854 FindFirstVolumeA(
1855   _Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
1856   _In_ DWORD cchBufferLength);
1857 
1858 HANDLE WINAPI FindFirstVolumeW(LPWSTR,DWORD);
1859 
1860 HANDLE
1861 WINAPI
1862 FindFirstVolumeMountPointA(
1863   _In_ LPCSTR lpszRootPathName,
1864   _Out_writes_(cchBufferLength) LPSTR lpszVolumeMountPoint,
1865   _In_ DWORD cchBufferLength);
1866 
1867 HANDLE
1868 WINAPI
1869 FindFirstVolumeMountPointW(
1870   _In_ LPCWSTR lpszRootPathName,
1871   _Out_writes_(cchBufferLength) LPWSTR lpszVolumeMountPoint,
1872   _In_ DWORD cchBufferLength);
1873 
1874 #endif
1875 
1876 BOOL WINAPI FindNextChangeNotification(HANDLE);
1877 BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
1878 BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
1879 #if (_WIN32_WINNT >= 0x0501)
1880 BOOL WINAPI FindNextStreamW(_In_ HANDLE, _Out_ LPVOID);
1881 #endif
1882 
1883 #if (_WIN32_WINNT >= 0x0500)
1884 
1885 BOOL
1886 WINAPI
1887 FindNextVolumeA(
1888   _Inout_ HANDLE hFindVolume,
1889   _Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
1890   _In_ DWORD cchBufferLength);
1891 
1892 BOOL WINAPI FindNextVolumeW(HANDLE,LPWSTR,DWORD);
1893 
1894 BOOL
1895 WINAPI
1896 FindNextVolumeMountPointA(
1897   _In_ HANDLE hFindVolumeMountPoint,
1898   _Out_writes_(cchBufferLength) LPSTR lpszVolumeMountPoint,
1899   _In_ DWORD cchBufferLength);
1900 
1901 BOOL
1902 WINAPI
1903 FindNextVolumeMountPointW(
1904   _In_ HANDLE hFindVolumeMountPoint,
1905   _Out_writes_(cchBufferLength) LPWSTR lpszVolumeMountPoint,
1906   _In_ DWORD cchBufferLength);
1907 
1908 BOOL WINAPI FindVolumeClose(HANDLE);
1909 BOOL WINAPI FindVolumeMountPointClose(_In_ HANDLE);
1910 
1911 #endif
1912 
1913 _Ret_maybenull_ HRSRC WINAPI FindResourceA(_In_opt_ HMODULE,_In_ LPCSTR, _In_ LPCSTR);
1914 _Ret_maybenull_ HRSRC WINAPI FindResourceW(_In_opt_ HMODULE,_In_ LPCWSTR, _In_ LPCWSTR);
1915 _Ret_maybenull_ HRSRC WINAPI FindResourceExA(_In_opt_ HMODULE, _In_ LPCSTR, _In_ LPCSTR, _In_ WORD);
1916 HRSRC WINAPI FindResourceExW(HINSTANCE,LPCWSTR,LPCWSTR,WORD);
1917 #if (_WIN32_WINNT >= 0x0502)
1918 
1919 DWORD
1920 WINAPI
1921 GetFirmwareEnvironmentVariableA(
1922   _In_ LPCSTR lpName,
1923   _In_ LPCSTR lpGuid,
1924   _Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
1925   _In_ DWORD nSize);
1926 
1927 DWORD
1928 WINAPI
1929 GetFirmwareEnvironmentVariableW(
1930   _In_ LPCWSTR lpName,
1931   _In_ LPCWSTR lpGuid,
1932   _Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
1933   _In_ DWORD nSize);
1934 
1935 #endif
1936 BOOL WINAPI FlushFileBuffers(HANDLE);
1937 BOOL WINAPI FlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
1938 BOOL WINAPI FlushViewOfFile(LPCVOID,SIZE_T);
1939 DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION);
1940 PVOID WINAPI FlsGetValue(DWORD);
1941 BOOL WINAPI FlsSetValue(DWORD,PVOID);
1942 BOOL WINAPI FlsFree(DWORD);
1943 DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
1944 DWORD WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
1945 BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
1946 BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
1947 BOOL WINAPI FreeLibrary(HMODULE);
1948 DECLSPEC_NORETURN void WINAPI FreeLibraryAndExitThread(HMODULE,DWORD);
1949 #define FreeModule(m) FreeLibrary(m)
1950 #define FreeProcInstance(p) (void)(p)
1951 #ifndef XFree86Server
1952 BOOL WINAPI FreeResource(HGLOBAL);
1953 #endif /* ndef XFree86Server */
1954 PVOID WINAPI FreeSid(PSID);
1955 BOOL WINAPI GetAce(PACL,DWORD,LPVOID*);
1956 BOOL WINAPI GetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1957 #if (_WIN32_WINNT >= 0x0600)
1958 HRESULT WINAPI GetApplicationRecoveryCallback(_In_ HANDLE, _Out_ APPLICATION_RECOVERY_CALLBACK*, _Outptr_opt_result_maybenull_ PVOID*, _Out_opt_ DWORD*, _Out_opt_ DWORD*);
1959 HRESULT WINAPI GetApplicationRestart(HANDLE,PWSTR,PDWORD,PDWORD);
1960 #endif
1961 
1962 UINT
1963 WINAPI
1964 GetAtomNameA(
1965   _In_ ATOM nAtom,
1966   _Out_writes_to_(nSize, return + 1) LPSTR lpBuffer,
1967   _In_ int nSize);
1968 
1969 UINT
1970 WINAPI
1971 GetAtomNameW(
1972   _In_ ATOM nAtom,
1973   _Out_writes_to_(nSize, return + 1) LPWSTR lpBuffer,
1974   _In_ int nSize);
1975 
1976 BOOL WINAPI GetBinaryTypeA(_In_ LPCSTR, _Out_ PDWORD);
1977 BOOL WINAPI GetBinaryTypeW(_In_ LPCWSTR, _Out_ PDWORD);
1978 LPSTR WINAPI GetCommandLineA(VOID);
1979 LPWSTR WINAPI GetCommandLineW(VOID);
1980 
1981 _Success_(return != FALSE)
1982 BOOL
1983 WINAPI
1984 GetCommConfig(
1985   _In_ HANDLE hCommDev,
1986   _Out_writes_bytes_opt_(*lpdwSize) LPCOMMCONFIG lpCC,
1987   _Inout_ LPDWORD lpdwSize);
1988 
1989 BOOL WINAPI GetCommMask(_In_ HANDLE, _Out_ PDWORD);
1990 BOOL WINAPI GetCommModemStatus(_In_ HANDLE, _Out_ PDWORD);
1991 BOOL WINAPI GetCommProperties(_In_ HANDLE, _Inout_ LPCOMMPROP);
1992 BOOL WINAPI GetCommState(_In_ HANDLE, _Out_ LPDCB);
1993 BOOL WINAPI GetCommTimeouts(_In_ HANDLE, _Out_ LPCOMMTIMEOUTS);
1994 DWORD WINAPI GetCompressedFileSizeA(_In_ LPCSTR, _Out_opt_ PDWORD);
1995 DWORD WINAPI GetCompressedFileSizeW(_In_ LPCWSTR, _Out_opt_ PDWORD);
1996 
1997 _Success_(return != 0)
1998 BOOL
1999 WINAPI
2000 GetComputerNameA(
2001   _Out_writes_to_opt_(*nSize, *nSize + 1) LPSTR lpBuffer,
2002   _Inout_ LPDWORD nSize);
2003 
2004 _Success_(return != 0)
2005 BOOL
2006 WINAPI
2007 GetComputerNameW(
2008   _Out_writes_to_opt_(*nSize, *nSize + 1) LPWSTR lpBuffer,
2009   _Inout_ LPDWORD nSize);
2010 
2011 #if (_WIN32_WINNT >= 0x0500)
2012 BOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT,LPSTR,LPDWORD);
2013 BOOL WINAPI GetComputerNameExW(COMPUTER_NAME_FORMAT,LPWSTR,LPDWORD);
2014 #endif
2015 #if (_WIN32_WINNT >= 0x0501)
2016 BOOL WINAPI GetCurrentActCtx( _Outptr_ HANDLE*);
2017 #endif
2018 DWORD WINAPI GetCurrentDirectoryA(DWORD,LPSTR);
2019 DWORD WINAPI GetCurrentDirectoryW(DWORD,LPWSTR);
2020 BOOL WINAPI GetCurrentHwProfileA(_Out_ LPHW_PROFILE_INFOA);
2021 BOOL WINAPI GetCurrentHwProfileW(_Out_ LPHW_PROFILE_INFOW);
2022 HANDLE WINAPI GetCurrentProcess(void);
2023 DWORD WINAPI GetCurrentProcessId(void);
2024 HANDLE WINAPI GetCurrentThread(void);
2025 DWORD WINAPI GetCurrentThreadId(void);
2026 #define GetCurrentTime GetTickCount
2027 
2028 BOOL
2029 WINAPI
2030 GetDefaultCommConfigA(
2031   _In_ LPCSTR lpszName,
2032   _Out_writes_bytes_to_(*lpdwSize, *lpdwSize) LPCOMMCONFIG lpCC,
2033   _Inout_ LPDWORD lpdwSize);
2034 
2035 BOOL
2036 WINAPI
2037 GetDefaultCommConfigW(
2038   _In_ LPCWSTR lpszName,
2039   _Out_writes_bytes_to_(*lpdwSize, *lpdwSize) LPCOMMCONFIG lpCC,
2040   _Inout_ LPDWORD lpdwSize);
2041 
2042 BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,PDWORD,PDWORD,PDWORD,PDWORD);
2043 BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,PDWORD,PDWORD,PDWORD,PDWORD);
2044 BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2045 BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2046 
2047 #if (_WIN32_WINNT >= 0x0502)
2048 
2049 _Success_(return != 0 && return < nBufferLength)
2050 DWORD
2051 WINAPI
2052 GetDllDirectoryA(
2053   _In_ DWORD nBufferLength,
2054   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer);
2055 
2056 _Success_(return != 0 && return < nBufferLength)
2057 DWORD
2058 WINAPI
2059 GetDllDirectoryW(
2060   _In_ DWORD nBufferLength,
2061   _Out_writes_to_opt_(nBufferLength, return + 1) LPWSTR lpBuffer);
2062 
2063 #endif
2064 
2065 UINT WINAPI GetDriveTypeA(LPCSTR);
2066 UINT WINAPI GetDriveTypeW(LPCWSTR);
2067 LPSTR WINAPI GetEnvironmentStrings(void);
2068 LPWSTR WINAPI GetEnvironmentStringsW(void);
2069 DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
2070 DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
2071 BOOL WINAPI GetExitCodeProcess(HANDLE,PDWORD);
2072 BOOL WINAPI GetExitCodeThread(HANDLE,PDWORD);
2073 DWORD WINAPI GetFileAttributesA(LPCSTR);
2074 #if (_WIN32_WINNT >= 0x0600)
2075 BOOL WINAPI GetFileAttributesByHandle(HANDLE,LPDWORD,DWORD);
2076 DWORD WINAPI GetFinalPathNameByHandleA(HANDLE,LPSTR,DWORD,DWORD);
2077 DWORD WINAPI GetFinalPathNameByHandleW(HANDLE,LPWSTR,DWORD,DWORD);
2078 #endif
2079 DWORD WINAPI GetFileAttributesW(LPCWSTR);
2080 BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,PVOID);
2081 BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,PVOID);
2082 #if (_WIN32_WINNT >= 0x0600)
2083 BOOL WINAPI GetFileBandwidthReservation(_In_ HANDLE, _Out_ LPDWORD, _Out_ LPDWORD, _Out_ LPBOOL, _Out_ LPDWORD, _Out_ LPDWORD);
2084 #endif
2085 BOOL WINAPI GetFileInformationByHandle(HANDLE,LPBY_HANDLE_FILE_INFORMATION);
2086 
2087 #if (_WIN32_WINNT >= 0x0600)
2088 BOOL
2089 WINAPI
2090 GetFileInformationByHandleEx(
2091   _In_ HANDLE hFile,
2092   _In_ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
2093   _Out_writes_bytes_(dwBufferSize) LPVOID lpFileInformation,
2094   _In_ DWORD dwBufferSize);
2095 #endif
2096 
2097 BOOL
2098 WINAPI
2099 GetFileSecurityA(
2100   _In_ LPCSTR lpFileName,
2101   _In_ SECURITY_INFORMATION RequestedInformation,
2102   _Out_writes_bytes_to_opt_(nLength, *lpnLengthNeeded) PSECURITY_DESCRIPTOR pSecurityDescriptor,
2103   _In_ DWORD nLength,
2104   _Out_ LPDWORD lpnLengthNeeded);
2105 
2106 BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
2107 DWORD WINAPI GetFileSize(HANDLE,PDWORD);
2108 BOOL WINAPI GetFileSizeEx(HANDLE,PLARGE_INTEGER);
2109 BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
2110 DWORD WINAPI GetFileType(HANDLE);
2111 #define GetFreeSpace(w) (0x100000L)
2112 DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
2113 DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
2114 BOOL WINAPI GetHandleInformation(HANDLE,PDWORD);
2115 BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
2116 DWORD WINAPI GetLastError(void);
2117 DWORD WINAPI GetLengthSid(PSID);
2118 void WINAPI GetLocalTime(LPSYSTEMTIME);
2119 DWORD WINAPI GetLogicalDrives(void);
2120 
2121 _Success_(return != 0 && return <= nBufferLength)
2122 DWORD
2123 WINAPI
2124 GetLogicalDriveStringsA(
2125   _In_ DWORD nBufferLength,
2126   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer);
2127 
2128 DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR);
2129 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
2130 DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
2131 DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
2132 #endif
2133 BOOL WINAPI GetMailslotInfo(_In_ HANDLE, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD);
2134 DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
2135 DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD);
2136 HMODULE WINAPI GetModuleHandleA(LPCSTR);
2137 HMODULE WINAPI GetModuleHandleW(LPCWSTR);
2138 #if (_WIN32_WINNT >= 0x0500)
2139 BOOL WINAPI GetModuleHandleExA(DWORD,LPCSTR,HMODULE*);
2140 BOOL WINAPI GetModuleHandleExW(DWORD,LPCWSTR,HMODULE*);
2141 #endif
2142 
2143 #if _WIN32_WINNT >= 0x0502
2144 WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathA(LPCSTR ExeName);
2145 WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathW(LPCWSTR ExeName);
2146 #endif
2147 
2148 BOOL
2149 WINAPI
2150 GetNamedPipeHandleStateA(
2151   _In_ HANDLE hNamedPipe,
2152   _Out_opt_ LPDWORD lpState,
2153   _Out_opt_ LPDWORD lpCurInstances,
2154   _Out_opt_ LPDWORD lpMaxCollectionCount,
2155   _Out_opt_ LPDWORD lpCollectDataTimeout,
2156   _Out_writes_opt_(nMaxUserNameSize) LPSTR lpUserName,
2157   _In_ DWORD nMaxUserNameSize);
2158 
2159 BOOL
2160 WINAPI
2161 GetNamedPipeHandleStateW(
2162   _In_ HANDLE hNamedPipe,
2163   _Out_opt_ LPDWORD lpState,
2164   _Out_opt_ LPDWORD lpCurInstances,
2165   _Out_opt_ LPDWORD lpMaxCollectionCount,
2166   _Out_opt_ LPDWORD lpCollectDataTimeout,
2167   _Out_writes_opt_(nMaxUserNameSize) LPWSTR lpUserName,
2168   _In_ DWORD nMaxUserNameSize);
2169 
2170 BOOL WINAPI GetNamedPipeInfo(_In_ HANDLE, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD);
2171 #if (_WIN32_WINNT >= 0x0501)
2172 VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
2173 #endif
2174 
2175 BOOL
2176 WINAPI
2177 GetEventLogInformation(
2178   _In_ HANDLE hEventLog,
2179   _In_ DWORD dwInfoLevel,
2180   _Out_writes_bytes_to_(cbBufSize, *pcbBytesNeeded) LPVOID lpBuffer,
2181   _In_ DWORD cbBufSize,
2182   _Out_ LPDWORD pcbBytesNeeded);
2183 
2184 BOOL WINAPI GetNumberOfEventLogRecords(_In_ HANDLE, _Out_ PDWORD);
2185 BOOL WINAPI GetOldestEventLogRecord(_In_ HANDLE, _Out_ PDWORD);
2186 BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,PDWORD,BOOL);
2187 DWORD WINAPI GetPriorityClass(HANDLE);
2188 BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
2189 UINT WINAPI GetPrivateProfileIntA(_In_ LPCSTR, _In_ LPCSTR, _In_ INT, _In_opt_ LPCSTR);
2190 UINT WINAPI GetPrivateProfileIntW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ INT, _In_opt_ LPCWSTR);
2191 
2192 DWORD
2193 WINAPI
2194 GetPrivateProfileSectionA(
2195   _In_ LPCSTR lpAppName,
2196   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2197   _In_ DWORD nSize,
2198   _In_opt_ LPCSTR lpFileName);
2199 
2200 DWORD
2201 WINAPI
2202 GetPrivateProfileSectionW(
2203   _In_ LPCWSTR lpAppName,
2204   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2205   _In_ DWORD nSize,
2206   _In_opt_ LPCWSTR lpFileName);
2207 
2208 DWORD
2209 WINAPI
2210 GetPrivateProfileSectionNamesA(
2211   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpszReturnBuffer,
2212   _In_ DWORD nSize,
2213   _In_opt_ LPCSTR lpFileName);
2214 
2215 DWORD
2216 WINAPI
2217 GetPrivateProfileSectionNamesW(
2218   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpszReturnBuffer,
2219   _In_ DWORD nSize,
2220   _In_opt_ LPCWSTR lpFileName);
2221 
2222 DWORD
2223 WINAPI
2224 GetPrivateProfileStringA(
2225   _In_opt_ LPCSTR lpAppName,
2226   _In_opt_ LPCSTR lpKeyName,
2227   _In_opt_ LPCSTR lpDefault,
2228   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2229   _In_ DWORD nSize,
2230   _In_opt_ LPCSTR lpFileName);
2231 
2232 DWORD
2233 WINAPI
2234 GetPrivateProfileStringW(
2235   _In_opt_ LPCWSTR lpAppName,
2236   _In_opt_ LPCWSTR lpKeyName,
2237   _In_opt_ LPCWSTR lpDefault,
2238   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2239   _In_ DWORD nSize,
2240   _In_opt_ LPCWSTR lpFileName);
2241 
2242 BOOL
2243 WINAPI
2244 GetPrivateProfileStructA(
2245   _In_ LPCSTR lpszSection,
2246   _In_ LPCSTR lpszKey,
2247   _Out_writes_bytes_opt_(uSizeStruct) LPVOID lpStruct,
2248   _In_ UINT uSizeStruct,
2249   _In_opt_ LPCSTR szFile);
2250 
2251 BOOL
2252 WINAPI
2253 GetPrivateProfileStructW(
2254   _In_ LPCWSTR lpszSection,
2255   _In_ LPCWSTR lpszKey,
2256   _Out_writes_bytes_opt_(uSizeStruct) LPVOID lpStruct,
2257   _In_ UINT uSizeStruct,
2258   _In_opt_ LPCWSTR szFile);
2259 
2260 FARPROC WINAPI GetProcAddress(HINSTANCE,LPCSTR);
2261 BOOL WINAPI GetProcessAffinityMask(_In_ HANDLE, _Out_ PDWORD_PTR, _Out_ PDWORD_PTR);
2262 #if (_WIN32_WINNT >= 0x0502)
2263 BOOL WINAPI GetProcessHandleCount(_In_ HANDLE, _Out_ PDWORD);
2264 #endif
2265 HANDLE WINAPI GetProcessHeap(VOID);
2266 DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
2267 #if (_WIN32_WINNT >= 0x0502)
2268 DWORD WINAPI GetProcessId(HANDLE);
2269 #endif
2270 #if (_WIN32_WINNT >= 0x0500)
2271 BOOL WINAPI GetProcessIoCounters(_In_ HANDLE, _Out_ PIO_COUNTERS);
2272 #endif
2273 BOOL WINAPI GetProcessPriorityBoost(_In_ HANDLE, _Out_ PBOOL);
2274 BOOL WINAPI GetProcessShutdownParameters(_Out_ PDWORD, _Out_ PDWORD);
2275 BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
2276 DWORD WINAPI GetProcessVersion(DWORD);
2277 HWINSTA WINAPI GetProcessWindowStation(void);
2278 BOOL WINAPI GetProcessWorkingSetSize(_In_ HANDLE, _Out_ PSIZE_T, _Out_ PSIZE_T);
2279 UINT WINAPI GetProfileIntA(_In_ LPCSTR, _In_ LPCSTR, _In_ INT);
2280 UINT WINAPI GetProfileIntW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ INT);
2281 
2282 DWORD
2283 WINAPI
2284 GetProfileSectionA(
2285   _In_ LPCSTR lpAppName,
2286   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2287   _In_ DWORD nSize);
2288 
2289 DWORD
2290 WINAPI
2291 GetProfileSectionW(
2292   _In_ LPCWSTR lpAppName,
2293   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2294   _In_ DWORD nSize);
2295 
2296 DWORD
2297 WINAPI
2298 GetProfileStringA(
2299   _In_opt_ LPCSTR lpAppName,
2300   _In_opt_ LPCSTR lpKeyName,
2301   _In_opt_ LPCSTR lpDefault,
2302   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2303   _In_ DWORD nSize);
2304 
2305 DWORD
2306 WINAPI
2307 GetProfileStringW(
2308   _In_opt_ LPCWSTR lpAppName,
2309   _In_opt_ LPCWSTR lpKeyName,
2310   _In_opt_ LPCWSTR lpDefault,
2311   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2312   _In_ DWORD nSize);
2313 
2314 BOOL WINAPI GetQueuedCompletionStatus(HANDLE,PDWORD,PULONG_PTR,LPOVERLAPPED*,DWORD);
2315 BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,PDWORD);
2316 BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
2317 BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
2318 DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
2319 BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
2320 DWORD WINAPI GetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR,PUCHAR);
2321 BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
2322 
2323 _Success_(return != 0 && return < cchBuffer)
2324 DWORD
2325 WINAPI
2326 GetShortPathNameA(
2327   _In_ LPCSTR lpszLongPath,
2328   _Out_writes_to_opt_(cchBuffer, return + 1) LPSTR  lpszShortPath,
2329   _In_ DWORD cchBuffer);
2330 
2331 DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
2332 PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
2333 DWORD WINAPI GetSidLengthRequired(UCHAR);
2334 PDWORD WINAPI GetSidSubAuthority(PSID,DWORD);
2335 PUCHAR WINAPI GetSidSubAuthorityCount(PSID);
2336 VOID WINAPI GetStartupInfoA(_Out_ LPSTARTUPINFOA);
2337 VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW);
2338 HANDLE WINAPI GetStdHandle(_In_ DWORD);
2339 UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
2340 UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
2341 VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
2342 BOOL WINAPI GetSystemPowerStatus(_Out_ LPSYSTEM_POWER_STATUS);
2343 #if (_WIN32_WINNT >= 0x0502)
2344 BOOL WINAPI GetSystemRegistryQuota(_Out_opt_ PDWORD, _Out_opt_ PDWORD);
2345 #endif
2346 VOID WINAPI GetSystemTime(LPSYSTEMTIME);
2347 #if (_WIN32_WINNT >= 0x0501)
2348 BOOL WINAPI GetSystemTimes(_Out_opt_ LPFILETIME, _Out_opt_ LPFILETIME, _Out_opt_ LPFILETIME);
2349 #endif
2350 BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
2351 void WINAPI GetSystemTimeAsFileTime(LPFILETIME);
2352 #if (_WIN32_WINNT >= 0x0500)
2353 UINT WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT);
2354 UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT);
2355 #endif
2356 
2357 #if (_WIN32_WINNT >= 0x0501)
2358 
2359 _Success_(return != 0 && return < uSize)
2360 UINT
2361 WINAPI
2362 GetSystemWow64DirectoryA(
2363   _Out_writes_to_opt_(uSize, return + 1) LPSTR lpBuffer,
2364   _In_ UINT uSize);
2365 
2366 _Success_(return != 0 && return < uSize)
2367 UINT
2368 WINAPI
2369 GetSystemWow64DirectoryW(
2370   _Out_writes_to_opt_(uSize, return + 1) LPWSTR lpBuffer,
2371   _In_ UINT uSize);
2372 
2373 #endif
2374 
2375 DWORD
2376 WINAPI
2377 GetTapeParameters(
2378   _In_ HANDLE hDevice,
2379   _In_ DWORD dwOperation,
2380   _Inout_ LPDWORD lpdwSize,
2381   _Out_writes_bytes_(*lpdwSize) LPVOID lpTapeInformation);
2382 
2383 DWORD WINAPI GetTapePosition(_In_ HANDLE, _In_ DWORD, _Out_ PDWORD, _Out_ PDWORD, _Out_ PDWORD);
2384 DWORD WINAPI GetTapeStatus(_In_ HANDLE);
2385 
2386 UINT
2387 WINAPI
2388 GetTempFileNameA(
2389   _In_ LPCSTR lpPathName,
2390   _In_ LPCSTR lpPrefixString,
2391   _In_ UINT uUnique,
2392   _Out_writes_(MAX_PATH) LPSTR lpTempFileName);
2393 
2394 UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
2395 
2396 DWORD
2397 WINAPI
2398 GetTempPathA(
2399   _In_ DWORD nBufferLength,
2400   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer);
2401 
2402 DWORD WINAPI GetTempPathW(DWORD,LPWSTR);
2403 BOOL WINAPI GetThreadContext(HANDLE,LPCONTEXT);
2404 #if (_WIN32_WINNT >= 0x0502)
2405 BOOL WINAPI GetThreadIOPendingFlag(_In_ HANDLE, _Out_ PBOOL);
2406 #endif
2407 int WINAPI GetThreadPriority(HANDLE);
2408 BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
2409 BOOL WINAPI GetThreadSelectorEntry(_In_ HANDLE, _In_ DWORD, _Out_ LPLDT_ENTRY);
2410 BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
2411 DWORD WINAPI GetTickCount(VOID);
2412 #if (_WIN32_WINNT >= 0x0600)
2413 ULONGLONG WINAPI GetTickCount64(VOID);
2414 #endif
2415 DWORD WINAPI GetThreadId(HANDLE);
2416 DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
2417 BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD,PDWORD);
2418 
2419 BOOL
2420 WINAPI
2421 GetUserNameA(
2422   _Out_writes_to_opt_(*pcbBuffer, *pcbBuffer) LPSTR lpBuffer,
2423   _Inout_ LPDWORD pcbBuffer);
2424 
2425 BOOL
2426 WINAPI
2427 GetUserNameW(
2428   _Out_writes_to_opt_(*pcbBuffer, *pcbBuffer) LPWSTR lpBuffer,
2429   _Inout_ LPDWORD pcbBuffer);
2430 
2431 DWORD WINAPI GetVersion(void);
2432 BOOL WINAPI GetVersionExA(LPOSVERSIONINFOA);
2433 BOOL WINAPI GetVersionExW(LPOSVERSIONINFOW);
2434 
2435 BOOL
2436 WINAPI
2437 GetVolumeInformationA(
2438   _In_opt_ LPCSTR lpRootPathName,
2439   _Out_writes_opt_(nVolumeNameSize) LPSTR lpVolumeNameBuffer,
2440   _In_ DWORD nVolumeNameSize,
2441   _Out_opt_ LPDWORD lpVolumeSerialNumber,
2442   _Out_opt_ LPDWORD lpMaximumComponentLength,
2443   _Out_opt_ LPDWORD lpFileSystemFlags,
2444   _Out_writes_opt_(nFileSystemNameSize) LPSTR lpFileSystemNameBuffer,
2445   _In_ DWORD nFileSystemNameSize);
2446 
2447 BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
2448 
2449 #if (_WIN32_WINNT >= 0x0500)
2450 
2451 BOOL
2452 WINAPI
2453 GetVolumeNameForVolumeMountPointA(
2454   _In_ LPCSTR lpszVolumeMountPoint,
2455   _Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
2456   _In_ DWORD cchBufferLength);
2457 
2458 BOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR,LPWSTR,DWORD);
2459 
2460 BOOL
2461 WINAPI
2462 GetVolumePathNameA(
2463   _In_ LPCSTR lpszFileName,
2464   _Out_writes_(cchBufferLength) LPSTR lpszVolumePathName,
2465   _In_ DWORD cchBufferLength);
2466 
2467 BOOL WINAPI GetVolumePathNameW(LPCWSTR,LPWSTR,DWORD);
2468 
2469 #endif
2470 
2471 #if (_WIN32_WINNT >= 0x0501)
2472 
2473 BOOL
2474 WINAPI
2475 GetVolumePathNamesForVolumeNameA(
2476   _In_ LPCSTR lpszVolumeName,
2477   _Out_writes_to_opt_(cchBufferLength, *lpcchReturnLength) _Post_ _NullNull_terminated_ LPCH lpszVolumePathNames,
2478   _In_ DWORD cchBufferLength,
2479   _Out_ PDWORD lpcchReturnLength);
2480 
2481 BOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR,LPWSTR,DWORD,PDWORD);
2482 
2483 #endif
2484 
2485 UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
2486 UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
2487 DWORD WINAPI GetWindowThreadProcessId(HWND,PDWORD);
2488 UINT WINAPI GetWriteWatch(DWORD,PVOID,SIZE_T,PVOID*,PULONG_PTR,PULONG);
2489 ATOM WINAPI GlobalAddAtomA(_In_opt_ LPCSTR);
2490 ATOM WINAPI GlobalAddAtomW(_In_opt_ LPCWSTR);
2491 HGLOBAL WINAPI GlobalAlloc(UINT,SIZE_T);
2492 SIZE_T WINAPI GlobalCompact(_In_ DWORD); /* Obsolete: Has no effect. */
2493 ATOM WINAPI GlobalDeleteAtom(_In_ ATOM);
2494 #define GlobalDiscard(m) GlobalReAlloc((m),0,GMEM_MOVEABLE)
2495 ATOM WINAPI GlobalFindAtomA(_In_opt_ LPCSTR);
2496 ATOM WINAPI GlobalFindAtomW(_In_opt_ LPCWSTR);
2497 VOID WINAPI GlobalFix(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2498 UINT WINAPI GlobalFlags(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2499 HGLOBAL WINAPI GlobalFree(HGLOBAL);
2500 
2501 UINT
2502 WINAPI
2503 GlobalGetAtomNameA(
2504   _In_ ATOM nAtom,
2505   _Out_writes_to_(nSize, return + 1) LPSTR lpBuffer,
2506   _In_ int nSize);
2507 
2508 UINT
2509 WINAPI
2510 GlobalGetAtomNameW(
2511   _In_ ATOM nAtom,
2512   _Out_writes_to_(nSize, return + 1) LPWSTR lpBuffer,
2513   _In_ int nSize);
2514 
2515 _Ret_maybenull_ HGLOBAL WINAPI GlobalHandle(_In_ LPCVOID);
2516 _Ret_maybenull_ LPVOID WINAPI GlobalLock(_In_ HGLOBAL);
2517 VOID WINAPI GlobalMemoryStatus(_Out_ LPMEMORYSTATUS);
2518 #if (_WIN32_WINNT >= 0x0500)
2519 BOOL WINAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX);
2520 #endif
2521 HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,SIZE_T,UINT);
2522 SIZE_T WINAPI GlobalSize(_In_ HGLOBAL);
2523 VOID WINAPI GlobalUnfix(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2524 BOOL WINAPI GlobalUnlock(_In_ HGLOBAL);
2525 BOOL WINAPI GlobalUnWire(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2526 PVOID WINAPI GlobalWire(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2527 #define HasOverlappedIoCompleted(lpOverlapped)  ((lpOverlapped)->Internal != STATUS_PENDING)
2528 PVOID WINAPI HeapAlloc(HANDLE,DWORD,SIZE_T);
2529 SIZE_T WINAPI HeapCompact(HANDLE,DWORD);
2530 HANDLE WINAPI HeapCreate(DWORD,SIZE_T,SIZE_T);
2531 BOOL WINAPI HeapDestroy(HANDLE);
2532 BOOL WINAPI HeapFree(HANDLE,DWORD,PVOID);
2533 BOOL WINAPI HeapLock(HANDLE);
2534 #if (_WIN32_WINNT >= 0x0501)
2535 BOOL WINAPI HeapQueryInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T,PSIZE_T);
2536 #endif
2537 PVOID WINAPI HeapReAlloc(HANDLE,DWORD,PVOID,SIZE_T);
2538 #if (_WIN32_WINNT >= 0x0501)
2539 BOOL WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
2540 #endif
2541 SIZE_T WINAPI HeapSize(HANDLE,DWORD,LPCVOID);
2542 BOOL WINAPI HeapUnlock(HANDLE);
2543 BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID);
2544 BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
2545 BOOL WINAPI ImpersonateAnonymousToken(HANDLE);
2546 BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
2547 BOOL WINAPI ImpersonateNamedPipeClient(HANDLE);
2548 BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
2549 BOOL WINAPI InitAtomTable(_In_ DWORD);
2550 BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD);
2551 #if (_WIN32_WINNT >= 0x0600)
2552 VOID WINAPI InitializeConditionVariable(PCONDITION_VARIABLE);
2553 #endif
2554 VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION);
2555 BOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION,DWORD);
2556 DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD);
2557 BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
2558 BOOL WINAPI InitializeSid (PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
2559 
2560 #if (_WIN32_WINNT >= 0x0600)
2561 VOID WINAPI InitializeSRWLock(PSRWLOCK);
2562 #endif
2563 
2564 BOOL WINAPI IsBadCodePtr(_In_opt_ FARPROC);
2565 BOOL WINAPI IsBadHugeReadPtr(_In_opt_ CONST VOID*, _In_ UINT_PTR);
2566 BOOL WINAPI IsBadHugeWritePtr(_In_opt_ PVOID, _In_ UINT_PTR);
2567 BOOL WINAPI IsBadReadPtr(_In_opt_ CONST VOID*, _In_ UINT_PTR);
2568 BOOL WINAPI IsBadStringPtrA(_In_opt_ LPCSTR, _In_ UINT_PTR);
2569 BOOL WINAPI IsBadStringPtrW(_In_opt_ LPCWSTR, _In_ UINT_PTR);
2570 BOOL WINAPI IsBadWritePtr(_In_opt_ PVOID, _In_ UINT_PTR);
2571 BOOL WINAPI IsDebuggerPresent(void);
2572 #if (_WIN32_WINNT >= 0x0501)
2573 BOOL WINAPI IsProcessInJob(HANDLE,HANDLE,PBOOL);
2574 #endif
2575 BOOL WINAPI IsProcessorFeaturePresent(DWORD);
2576 BOOL WINAPI IsSystemResumeAutomatic(void);
2577 
2578 BOOL
2579 WINAPI
2580 IsTextUnicode(
2581   _In_reads_bytes_(iSize) CONST VOID *lpv,
2582   _In_ int iSize,
2583   _Inout_opt_ LPINT lpiResult);
2584 
2585 #if (_WIN32_WINNT >= 0x0600)
2586 BOOL WINAPI IsThreadAFiber(VOID);
2587 #endif
2588 BOOL WINAPI IsValidAcl(PACL);
2589 BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
2590 BOOL WINAPI IsValidSid(PSID);
2591 #if (_WIN32_WINNT >= 0x0501)
2592 BOOL WINAPI IsWellKnownSid(PSID,WELL_KNOWN_SID_TYPE);
2593 BOOL WINAPI IsWow64Process(HANDLE,PBOOL);
2594 #endif
2595 void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION);
2596 #define LimitEmsPages(n)
2597 _Ret_maybenull_ HINSTANCE WINAPI LoadLibraryA(_In_ LPCSTR);
2598 _Ret_maybenull_ HINSTANCE WINAPI LoadLibraryW(_In_ LPCWSTR);
2599 HINSTANCE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
2600 HINSTANCE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
2601 DWORD WINAPI LoadModule(_In_ LPCSTR, _In_ PVOID);
2602 HGLOBAL WINAPI LoadResource(HINSTANCE,HRSRC);
2603 HLOCAL WINAPI LocalAlloc(UINT,SIZE_T);
2604 SIZE_T WINAPI LocalCompact(_In_ UINT); /* Obsolete: Has no effect. */
2605 #define LocalDiscard(m) (LocalReAlloc((m),0,LMEM_MOVEABLE))
2606 BOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *,LPFILETIME);
2607 UINT WINAPI LocalFlags(_In_ HLOCAL); /* Obsolete: Has no effect. */
2608 HLOCAL WINAPI LocalFree(HLOCAL);
2609 _Ret_maybenull_ HLOCAL WINAPI LocalHandle(_In_ LPCVOID);
2610 PVOID WINAPI LocalLock(HLOCAL);
2611 HLOCAL WINAPI LocalReAlloc(HLOCAL,SIZE_T,UINT);
2612 SIZE_T WINAPI LocalShrink(_In_ HLOCAL, _In_ UINT);  /* Obsolete: Has no effect. */
2613 SIZE_T WINAPI LocalSize(_In_ HLOCAL);
2614 BOOL WINAPI LocalUnlock(HLOCAL);
2615 BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
2616 BOOL WINAPI LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED);
2617 PVOID WINAPI LockResource(HGLOBAL);
2618 #define LockSegment(w) GlobalFix((HANDLE)(w)) /* Obsolete: Has no effect. */
2619 BOOL WINAPI LogonUserA(_In_ LPSTR, _In_opt_ LPSTR, _In_opt_ LPSTR, _In_ DWORD, _In_ DWORD, _Outptr_ PHANDLE);
2620 BOOL WINAPI LogonUserW(_In_ LPWSTR, _In_opt_ LPWSTR, _In_opt_ LPWSTR, _In_ DWORD, _In_ DWORD, _Outptr_ PHANDLE);
2621 
2622 _Success_(return != FALSE)
2623 BOOL
2624 WINAPI
2625 LogonUserExA(
2626   _In_ LPSTR lpszUsername,
2627   _In_opt_ LPSTR lpszDomain,
2628   _In_opt_ LPSTR lpszPassword,
2629   _In_ DWORD dwLogonType,
2630   _In_ DWORD dwLogonProvider,
2631   _Out_opt_ PHANDLE phToken,
2632   _Out_opt_ PSID *ppLogonSid,
2633   _Out_opt_ PVOID *ppProfileBuffer,
2634   _Out_opt_ LPDWORD pdwProfileLength,
2635   _Out_opt_ PQUOTA_LIMITS pQuotaLimits);
2636 
2637 _Success_(return != FALSE)
2638 BOOL
2639 WINAPI
2640 LogonUserExW(
2641   _In_ LPWSTR lpszUsername,
2642   _In_opt_ LPWSTR lpszDomain,
2643   _In_opt_ LPWSTR lpszPassword,
2644   _In_ DWORD dwLogonType,
2645   _In_ DWORD dwLogonProvider,
2646   _Out_opt_ PHANDLE phToken,
2647   _Out_opt_ PSID *ppLogonSid,
2648   _Out_opt_ PVOID *ppProfileBuffer,
2649   _Out_opt_ LPDWORD pdwProfileLength,
2650   _Out_opt_ PQUOTA_LIMITS pQuotaLimits);
2651 
2652 _Success_(return != FALSE)
2653 BOOL
2654 WINAPI
2655 LookupAccountNameA(
2656   _In_opt_ LPCSTR lpSystemName,
2657   _In_ LPCSTR lpAccountName,
2658   _Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
2659   _Inout_ LPDWORD cbSid,
2660   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
2661   _Inout_ LPDWORD cchReferencedDomainName,
2662   _Out_ PSID_NAME_USE peUse);
2663 
2664 _Success_(return != FALSE)
2665 BOOL
2666 WINAPI
2667 LookupAccountNameW(
2668   _In_opt_ LPCWSTR lpSystemName,
2669   _In_ LPCWSTR lpAccountName,
2670   _Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
2671   _Inout_ LPDWORD cbSid,
2672   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
2673   _Inout_ LPDWORD cchReferencedDomainName,
2674   _Out_ PSID_NAME_USE peUse);
2675 
2676 _Success_(return != FALSE)
2677 BOOL
2678 WINAPI
2679 LookupAccountSidA(
2680   _In_opt_ LPCSTR lpSystemName,
2681   _In_ PSID Sid,
2682   _Out_writes_to_opt_(*cchName, *cchName + 1) LPSTR Name,
2683   _Inout_ LPDWORD cchName,
2684   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
2685   _Inout_ LPDWORD cchReferencedDomainName,
2686   _Out_ PSID_NAME_USE peUse);
2687 
2688 _Success_(return != FALSE)
2689 BOOL
2690 WINAPI
2691 LookupAccountSidW(
2692   _In_opt_ LPCWSTR lpSystemName,
2693   _In_ PSID Sid,
2694   _Out_writes_to_opt_(*cchName, *cchName + 1) LPWSTR Name,
2695   _Inout_  LPDWORD cchName,
2696   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
2697   _Inout_ LPDWORD cchReferencedDomainName,
2698   _Out_ PSID_NAME_USE peUse);
2699 
2700 _Success_(return != FALSE)
2701 BOOL
2702 WINAPI
2703 LookupPrivilegeDisplayNameA(
2704   _In_opt_ LPCSTR lpSystemName,
2705   _In_ LPCSTR lpName,
2706   _Out_writes_to_opt_(*cchDisplayName, *cchDisplayName + 1) LPSTR lpDisplayName,
2707   _Inout_ LPDWORD cchDisplayName,
2708   _Out_ LPDWORD lpLanguageId);
2709 
2710 _Success_(return != FALSE)
2711 BOOL
2712 WINAPI
2713 LookupPrivilegeDisplayNameW(
2714   _In_opt_ LPCWSTR lpSystemName,
2715   _In_ LPCWSTR lpName,
2716   _Out_writes_to_opt_(*cchDisplayName, *cchDisplayName + 1) LPWSTR lpDisplayName,
2717   _Inout_ LPDWORD cchDisplayName,
2718   _Out_ LPDWORD lpLanguageId);
2719 
2720 _Success_(return != FALSE)
2721 BOOL
2722 WINAPI
2723 LookupPrivilegeNameA(
2724   _In_opt_ LPCSTR lpSystemName,
2725   _In_ PLUID lpLuid,
2726   _Out_writes_to_opt_(*cchName, *cchName + 1) LPSTR lpName,
2727   _Inout_ LPDWORD cchName);
2728 
2729 _Success_(return != FALSE)
2730 BOOL
2731 WINAPI
2732 LookupPrivilegeNameW(
2733   _In_opt_ LPCWSTR lpSystemName,
2734   _In_ PLUID lpLuid,
2735   _Out_writes_to_opt_(*cchName, *cchName + 1) LPWSTR lpName,
2736   _Inout_ LPDWORD cchName);
2737 
2738 BOOL WINAPI LookupPrivilegeValueA(_In_opt_ LPCSTR, _In_ LPCSTR, _Out_ PLUID);
2739 BOOL WINAPI LookupPrivilegeValueW(_In_opt_ LPCWSTR, _In_ LPCWSTR, _Out_ PLUID);
2740 
2741 LPSTR
2742 WINAPI
2743 lstrcatA(
2744   _Inout_updates_z_(_String_length_(lpString1) + _String_length_(lpString2) + 1) LPSTR lpString1,
2745   _In_ LPCSTR lpString2);
2746 
2747 LPWSTR
2748 WINAPI
2749 lstrcatW(
2750   _Inout_updates_z_(_String_length_(lpString1) + _String_length_(lpString2) + 1) LPWSTR lpString1,
2751   _In_ LPCWSTR lpString2);
2752 
2753 int WINAPI lstrcmpA(LPCSTR,LPCSTR);
2754 int WINAPI lstrcmpiA(LPCSTR,LPCSTR);
2755 int WINAPI lstrcmpiW( LPCWSTR,LPCWSTR);
2756 int WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
2757 
2758 LPSTR
2759 WINAPI
2760 lstrcpyA(
2761   _Out_writes_(_String_length_(lpString2) + 1) LPSTR lpString1,
2762   _In_ LPCSTR lpString2);
2763 
2764 LPWSTR
2765 WINAPI
2766 lstrcpyW(
2767   _Out_writes_(_String_length_(lpString2) + 1) LPWSTR lpString1,
2768   _In_ LPCWSTR lpString2);
2769 
2770 LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,int);
2771 LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,int);
2772 int WINAPI lstrlenA(LPCSTR);
2773 int WINAPI lstrlenW(LPCWSTR);
2774 BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD);
2775 #define MakeProcInstance(p,i) (p)
2776 BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD);
2777 VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING);
2778 PVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,SIZE_T);
2779 PVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,SIZE_T,PVOID);
2780 BOOL WINAPI MoveFileA(_In_ LPCSTR, _In_ LPCSTR);
2781 BOOL WINAPI MoveFileW(_In_ LPCWSTR, _In_ LPCWSTR);
2782 BOOL WINAPI MoveFileExA(_In_ LPCSTR, _In_opt_ LPCSTR, _In_ DWORD);
2783 BOOL WINAPI MoveFileExW(_In_ LPCWSTR, _In_opt_ LPCWSTR, _In_ DWORD);
2784 BOOL WINAPI MoveFileWithProgressA(_In_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_ DWORD);
2785 BOOL WINAPI MoveFileWithProgressW(_In_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_ DWORD);
2786 int WINAPI MulDiv(_In_ int, _In_ int, _In_ int);
2787 BOOL WINAPI NotifyChangeEventLog(_In_ HANDLE, _In_ HANDLE);
2788 BOOL WINAPI ObjectCloseAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ BOOL);
2789 BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,PVOID,BOOL);
2790 BOOL WINAPI ObjectDeleteAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ BOOL);
2791 BOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,PVOID,BOOL);
2792 BOOL WINAPI ObjectOpenAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ LPSTR, _In_opt_ LPSTR, _In_ PSECURITY_DESCRIPTOR, _In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_opt_ PPRIVILEGE_SET, _In_ BOOL, _In_ BOOL, _Out_ PBOOL);
2793 BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,PVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
2794 BOOL WINAPI ObjectPrivilegeAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ HANDLE, _In_ DWORD, _In_ PPRIVILEGE_SET, _In_ BOOL);
2795 BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
2796 HANDLE WINAPI OpenBackupEventLogA(_In_opt_ LPCSTR, _In_ LPCSTR);
2797 HANDLE WINAPI OpenBackupEventLogW(_In_opt_ LPCWSTR, _In_ LPCWSTR);
2798 HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
2799 HANDLE WINAPI OpenEventLogA(_In_opt_ LPCSTR, _In_ LPCSTR);
2800 HANDLE WINAPI OpenEventLogW(_In_opt_ LPCWSTR, _In_ LPCWSTR);
2801 HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
2802 HFILE WINAPI OpenFile(_In_ LPCSTR, _Inout_ LPOFSTRUCT, _In_ UINT);
2803 #if (_WIN32_WINNT >= 0x0600)
2804 HANDLE WINAPI OpenFileById(_In_ HANDLE, _In_ LPFILE_ID_DESCRIPTOR, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES, _In_ DWORD);
2805 #endif
2806 HANDLE WINAPI OpenFileMappingA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2807 HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
2808 _Ret_maybenull_ HANDLE WINAPI OpenMutexA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2809 HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
2810 HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD);
2811 BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
2812 _Ret_maybenull_ HANDLE WINAPI OpenSemaphoreA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2813 HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
2814 #if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0490)
2815 HANDLE WINAPI OpenThread(DWORD,BOOL,DWORD);
2816 #endif
2817 BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
2818 _Ret_maybenull_ HANDLE WINAPI OpenWaitableTimerA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2819 HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
2820 WINBASEAPI void WINAPI OutputDebugStringA(LPCSTR);
2821 WINBASEAPI void WINAPI OutputDebugStringW(LPCWSTR);
2822 BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD);
2823 BOOL WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,ULONG_PTR,LPOVERLAPPED);
2824 DWORD WINAPI PrepareTape(_In_ HANDLE, _In_ DWORD, _In_ BOOL);
2825 BOOL WINAPI PrivilegeCheck (HANDLE,PPRIVILEGE_SET,PBOOL);
2826 BOOL WINAPI PrivilegedServiceAuditAlarmA(_In_ LPCSTR, _In_ LPCSTR, _In_ HANDLE, _In_ PPRIVILEGE_SET, _In_ BOOL);
2827 BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL);
2828 #if (_WIN32_WINNT >= 0x0500)
2829 BOOL WINAPI ProcessIdToSessionId(DWORD,DWORD*);
2830 #endif
2831 BOOL WINAPI PulseEvent(HANDLE);
2832 BOOL WINAPI PurgeComm(_In_ HANDLE, _In_ DWORD);
2833 
2834 #if (_WIN32_WINNT >= 0x0501)
2835 BOOL
2836 WINAPI
2837 QueryActCtxW(
2838   _In_ DWORD dwFlags,
2839   _In_ HANDLE hActCtx,
2840   _In_opt_ PVOID pvSubInstance,
2841   _In_ ULONG ulInfoClass,
2842   _Out_writes_bytes_to_opt_(cbBuffer, *pcbWrittenOrRequired) PVOID pvBuffer,
2843   _In_ SIZE_T cbBuffer,
2844   _Out_opt_ SIZE_T *pcbWrittenOrRequired);
2845 #endif
2846 
2847 DWORD
2848 WINAPI
2849 QueryDosDeviceA(
2850   _In_opt_ LPCSTR lpDeviceName,
2851   _Out_writes_to_opt_(ucchMax, return) LPSTR lpTargetPath,
2852   _In_ DWORD ucchMax);
2853 
2854 DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
2855 #if (_WIN32_WINNT >= 0x0501)
2856 BOOL WINAPI QueryMemoryResourceNotification(HANDLE,PBOOL);
2857 #endif
2858 BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER);
2859 BOOL WINAPI QueryPerformanceFrequency(PLARGE_INTEGER);
2860 #if (_WIN32_WINNT >= 0x0600)
2861 VOID WINAPI QuerySecurityAccessMask(SECURITY_INFORMATION,LPDWORD);
2862 #endif
2863 DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
2864 #if (_WIN32_WINNT >= 0x0500)
2865 BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
2866 #endif
2867 void WINAPI RaiseException(DWORD,DWORD,DWORD,const ULONG_PTR*);
2868 
2869 BOOL
2870 WINAPI
2871 QueryInformationJobObject(
2872   _In_opt_ HANDLE hJob,
2873   _In_ JOBOBJECTINFOCLASS JobObjectInformationClass,
2874   _Out_writes_bytes_to_(cbJobObjectInformationLength, *lpReturnLength) LPVOID lpJobObjectInformation,
2875   _In_ DWORD cbJobObjectInformationLength,
2876   _Out_opt_ LPDWORD lpReturnLength);
2877 
2878 BOOL
2879 WINAPI
2880 ReadDirectoryChangesW(
2881   _In_ HANDLE hDirectory,
2882   _Out_writes_bytes_to_(nBufferLength, *lpBytesReturned) LPVOID lpBuffer,
2883   _In_ DWORD nBufferLength,
2884   _In_ BOOL bWatchSubtree,
2885   _In_ DWORD dwNotifyFilter,
2886   _Out_opt_ LPDWORD lpBytesReturned,
2887   _Inout_opt_ LPOVERLAPPED lpOverlapped,
2888   _In_opt_ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
2889 
2890 BOOL
2891 WINAPI
2892 ReadEventLogA(
2893   _In_ HANDLE hEventLog,
2894   _In_ DWORD dwReadFlags,
2895   _In_ DWORD dwRecordOffset,
2896   _Out_writes_bytes_to_(nNumberOfBytesToRead, *pnBytesRead) LPVOID lpBuffer,
2897   _In_ DWORD nNumberOfBytesToRead,
2898   _Out_ DWORD *pnBytesRead,
2899   _Out_ DWORD *pnMinNumberOfBytesNeeded);
2900 
2901 BOOL
2902 WINAPI
2903 ReadEventLogW(
2904   _In_ HANDLE hEventLog,
2905   _In_ DWORD dwReadFlags,
2906   _In_ DWORD dwRecordOffset,
2907   _Out_writes_bytes_to_(nNumberOfBytesToRead, *pnBytesRead) LPVOID lpBuffer,
2908   _In_ DWORD nNumberOfBytesToRead,
2909   _Out_ DWORD *pnBytesRead,
2910   _Out_ DWORD *pnMinNumberOfBytesNeeded);
2911 
2912 BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED);
2913 BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2914 BOOL WINAPI ReadFileScatter(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
2915 BOOL WINAPI ReadProcessMemory(HANDLE,LPCVOID,LPVOID,SIZE_T,PSIZE_T);
2916 #if (_WIN32_WINNT >= 0x0600)
2917 VOID WINAPI RecoveryFinished(BOOL);
2918 HRESULT WINAPI RecoveryInProgress(OUT PBOOL);
2919 HRESULT WINAPI RegisterApplicationRecoveryCallback(_In_ APPLICATION_RECOVERY_CALLBACK, _In_opt_ PVOID, _In_ DWORD, _In_ DWORD);
2920 HRESULT WINAPI RegisterApplicationRestart(_In_opt_ PCWSTR, _In_ DWORD);
2921 #endif
2922 HANDLE WINAPI RegisterEventSourceA(_In_opt_ LPCSTR, _In_ LPCSTR);
2923 HANDLE WINAPI RegisterEventSourceW(_In_opt_ LPCWSTR, _In_ LPCWSTR);
2924 #if (_WIN32_WINNT >= 0x0500)
2925 BOOL WINAPI RegisterWaitForSingleObject(_Outptr_ PHANDLE, _In_ HANDLE, _In_ WAITORTIMERCALLBACK, _In_opt_ PVOID, _In_ ULONG, _In_ ULONG);
2926 HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2927 #endif
2928 #if (_WIN32_WINNT >= 0x0501)
2929 void WINAPI ReleaseActCtx(_Inout_ HANDLE);
2930 #endif
2931 BOOL WINAPI ReleaseMutex(HANDLE);
2932 BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
2933 #if (_WIN32_WINNT >= 0x0600)
2934 VOID WINAPI ReleaseSRWLockExclusive(PSRWLOCK);
2935 VOID WINAPI ReleaseSRWLockShared(PSRWLOCK);
2936 #endif
2937 BOOL WINAPI RemoveDirectoryA(LPCSTR);
2938 BOOL WINAPI RemoveDirectoryW(LPCWSTR);
2939 #if (_WIN32_WINNT >= 0x0500)
2940 ULONG WINAPI RemoveVectoredExceptionHandler(_In_ PVOID);
2941 ULONG WINAPI RemoveVectoredContinueHandler(_In_ PVOID);
2942 #endif
2943 #if (_WIN32_WINNT >= 0x0500)
2944 BOOL WINAPI ReplaceFileA(_In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPCSTR, _In_ DWORD, _Reserved_ LPVOID, _Reserved_ LPVOID);
2945 BOOL WINAPI ReplaceFileW(_In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPCWSTR, _In_ DWORD, _Reserved_ LPVOID, _Reserved_ LPVOID);
2946 #endif
2947 
2948 BOOL
2949 WINAPI
2950 ReportEventA(
2951   _In_ HANDLE hEventLog,
2952   _In_ WORD wType,
2953   _In_ WORD wCategory,
2954   _In_ DWORD dwEventID,
2955   _In_opt_ PSID lpUserSid,
2956   _In_ WORD wNumStrings,
2957   _In_ DWORD dwDataSize,
2958   _In_reads_opt_(wNumStrings) LPCSTR *lpStrings,
2959   _In_reads_bytes_opt_(dwDataSize) LPVOID lpRawData);
2960 
2961 BOOL
2962 WINAPI
2963 ReportEventW(
2964   _In_ HANDLE hEventLog,
2965   _In_ WORD wType,
2966   _In_ WORD wCategory,
2967   _In_ DWORD dwEventID,
2968   _In_opt_ PSID lpUserSid,
2969   _In_ WORD wNumStrings,
2970   _In_ DWORD dwDataSize,
2971   _In_reads_opt_(wNumStrings) LPCWSTR *lpStrings,
2972   _In_reads_bytes_opt_(dwDataSize) LPVOID lpRawData);
2973 
2974 BOOL WINAPI ResetEvent(HANDLE);
2975 UINT WINAPI ResetWriteWatch(LPVOID,SIZE_T);
2976 #if (_WIN32_WINNT >= 0x0510)
2977 VOID WINAPI RestoreLastError(_In_ DWORD);
2978 #endif
2979 DWORD WINAPI ResumeThread(HANDLE);
2980 BOOL WINAPI RevertToSelf(void);
2981 
2982 _Success_(return != 0 && return < nBufferLength)
2983 DWORD
2984 WINAPI
2985 SearchPathA(
2986   _In_opt_ LPCSTR lpPath,
2987   _In_ LPCSTR lpFileName,
2988   _In_opt_ LPCSTR lpExtension,
2989   _In_ DWORD nBufferLength,
2990   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer,
2991   _Out_opt_ LPSTR *lpFilePart);
2992 
2993 DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
2994 BOOL WINAPI SetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
2995 BOOL WINAPI SetCommBreak(_In_ HANDLE);
2996 
2997 BOOL
2998 WINAPI
2999 SetCommConfig(
3000   _In_ HANDLE hCommDev,
3001   _In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
3002   _In_ DWORD dwSize);
3003 
3004 BOOL WINAPI SetCommMask(_In_ HANDLE, _In_ DWORD);
3005 BOOL WINAPI SetCommState(_In_ HANDLE, _In_ LPDCB);
3006 BOOL WINAPI SetCommTimeouts(_In_ HANDLE, _In_ LPCOMMTIMEOUTS);
3007 BOOL WINAPI SetComputerNameA(_In_ LPCSTR);
3008 BOOL WINAPI SetComputerNameW(_In_ LPCWSTR);
3009 #if (_WIN32_WINNT >= 0x0500)
3010 BOOL WINAPI SetComputerNameExA(_In_ COMPUTER_NAME_FORMAT, _In_ LPCSTR);
3011 BOOL WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT,LPCWSTR);
3012 #endif
3013 BOOL WINAPI SetCurrentDirectoryA(LPCSTR);
3014 BOOL WINAPI SetCurrentDirectoryW(LPCWSTR);
3015 
3016 BOOL
3017 WINAPI
3018 SetDefaultCommConfigA(
3019   _In_ LPCSTR lpszName,
3020   _In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
3021   _In_ DWORD dwSize);
3022 
3023 BOOL
3024 WINAPI
3025 SetDefaultCommConfigW(
3026   _In_ LPCWSTR lpszName,
3027   _In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
3028   _In_ DWORD dwSize);
3029 
3030 #if (_WIN32_WINNT >= 0x0502)
3031 BOOL WINAPI SetDllDirectoryA(_In_opt_ LPCSTR);
3032 BOOL WINAPI SetDllDirectoryW(_In_opt_ LPCWSTR);
3033 #endif
3034 BOOL WINAPI SetEndOfFile(HANDLE);
3035 BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
3036 BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
3037 UINT WINAPI SetErrorMode(UINT);
3038 BOOL WINAPI SetEvent(HANDLE);
3039 VOID WINAPI SetFileApisToANSI(void);
3040 VOID WINAPI SetFileApisToOEM(void);
3041 BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
3042 #if (_WIN32_WINNT >= 0x0600)
3043 BOOL WINAPI SetFileAttributesByHandle(HANDLE,DWORD,DWORD);
3044 #endif
3045 BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
3046 #if (_WIN32_WINNT >= 0x0600)
3047 BOOL WINAPI SetFileBandwidthReservation(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ BOOL, _Out_ LPDWORD, _Out_ LPDWORD);
3048 BOOL WINAPI SetFileCompletionNotificationModes(_In_ HANDLE, _In_ UCHAR);
3049 #endif
3050 DWORD WINAPI SetFilePointer(HANDLE,LONG,PLONG,DWORD);
3051 BOOL WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,PLARGE_INTEGER,DWORD);
3052 BOOL WINAPI SetFileSecurityA(_In_ LPCSTR, _In_ SECURITY_INFORMATION, _In_ PSECURITY_DESCRIPTOR);
3053 BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
3054 #if (_WIN32_WINNT >= 0x0501)
3055 BOOL WINAPI SetFileShortNameA(_In_ HANDLE, _In_ LPCSTR);
3056 BOOL WINAPI SetFileShortNameW(_In_ HANDLE, _In_ LPCWSTR);
3057 #endif
3058 BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
3059 #if (_WIN32_WINNT >= 0x0501)
3060 BOOL WINAPI SetFileValidData(HANDLE,LONGLONG);
3061 #endif
3062 
3063 #if (_WIN32_WINNT >= 0x0502)
3064 
3065 BOOL
3066 WINAPI
3067 SetFirmwareEnvironmentVariableA(
3068   _In_ LPCSTR lpName,
3069   _In_ LPCSTR lpGuid,
3070   _In_reads_bytes_opt_(nSize) PVOID pValue,
3071   _In_ DWORD nSize);
3072 
3073 BOOL
3074 WINAPI
3075 SetFirmwareEnvironmentVariableW(
3076   _In_ LPCWSTR lpName,
3077   _In_ LPCWSTR lpGuid,
3078   _In_reads_bytes_opt_(nSize) PVOID pValue,
3079   _In_ DWORD nSize);
3080 
3081 #endif
3082 
3083 UINT WINAPI SetHandleCount(UINT);
3084 BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
3085 
3086 BOOL
3087 WINAPI
3088 SetInformationJobObject(
3089   _In_ HANDLE hJob,
3090   _In_ JOBOBJECTINFOCLASS JobObjectInformationClass,
3091   _In_reads_bytes_(cbJobObjectInformationLength) LPVOID lpJobObjectInformation,
3092   _In_ DWORD cbJobObjectInformationLength);
3093 
3094 BOOL WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
3095 void WINAPI SetLastError(DWORD);
3096 void WINAPI SetLastErrorEx(DWORD,DWORD);
3097 BOOL WINAPI SetLocalTime(const SYSTEMTIME*);
3098 BOOL WINAPI SetMailslotInfo(_In_ HANDLE, _In_ DWORD);
3099 BOOL WINAPI SetNamedPipeHandleState(HANDLE,PDWORD,PDWORD,PDWORD);
3100 BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
3101 BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR *,PGENERIC_MAPPING,HANDLE);
3102 BOOL WINAPI SetProcessAffinityMask(_In_ HANDLE, _In_ DWORD_PTR);
3103 BOOL WINAPI SetProcessPriorityBoost(_In_ HANDLE, _In_ BOOL);
3104 BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD);
3105 BOOL WINAPI SetProcessWorkingSetSize(_In_ HANDLE, _In_ SIZE_T, _In_ SIZE_T);
3106 #if (_WIN32_WINNT >= 0x0600)
3107 VOID WINAPI SetSecurityAccessMask(SECURITY_INFORMATION,LPDWORD);
3108 #endif
3109 BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
3110 BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
3111 BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
3112 BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
3113 DWORD WINAPI SetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR,PUCHAR);
3114 BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
3115 BOOL WINAPI SetStdHandle(_In_ DWORD, _In_ HANDLE);
3116 #define SetSwapAreaSize(w) (w)
3117 BOOL WINAPI SetSystemPowerState(_In_ BOOL, _In_ BOOL);
3118 BOOL WINAPI SetSystemTime(const SYSTEMTIME*);
3119 BOOL WINAPI SetSystemTimeAdjustment(_In_ DWORD, _In_ BOOL);
3120 DWORD WINAPI SetTapeParameters(_In_ HANDLE, _In_ DWORD, _In_ PVOID);
3121 DWORD WINAPI SetTapePosition(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ BOOL);
3122 DWORD_PTR WINAPI SetThreadAffinityMask(_In_ HANDLE, _In_ DWORD_PTR);
3123 BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT*);
3124 DWORD WINAPI SetThreadIdealProcessor(_In_ HANDLE, _In_ DWORD);
3125 BOOL WINAPI SetThreadPriority(HANDLE,int);
3126 BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
3127 BOOL WINAPI SetThreadToken (PHANDLE,HANDLE);
3128 BOOL WINAPI SetTimeZoneInformation(const TIME_ZONE_INFORMATION *);
3129 BOOL WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD);
3130 LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
3131 BOOL WINAPI SetupComm(_In_ HANDLE, _In_ DWORD, _In_ DWORD);
3132 BOOL WINAPI SetVolumeLabelA(_In_opt_ LPCSTR, _In_opt_ LPCSTR);
3133 BOOL WINAPI SetVolumeLabelW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3134 #if (_WIN32_WINNT >= 0x0500)
3135 BOOL WINAPI SetVolumeMountPointA(_In_ LPCSTR, _In_ LPCSTR);
3136 BOOL WINAPI SetVolumeMountPointW(_In_ LPCWSTR, _In_ LPCWSTR);
3137 #endif
3138 BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,PVOID,BOOL);
3139 DWORD WINAPI SignalObjectAndWait(_In_ HANDLE, _In_ HANDLE, _In_ DWORD, _In_ BOOL);
3140 DWORD WINAPI SizeofResource(HINSTANCE,HRSRC);
3141 WINBASEAPI void WINAPI Sleep(DWORD);
3142 #if (_WIN32_WINNT >= 0x0600)
3143 BOOL WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE,PCRITICAL_SECTION,DWORD);
3144 BOOL WINAPI SleepConditionVariableSRW(PCONDITION_VARIABLE,PSRWLOCK,DWORD,ULONG);
3145 #endif
3146 DWORD WINAPI SleepEx(DWORD,BOOL);
3147 DWORD WINAPI SuspendThread(HANDLE);
3148 void WINAPI SwitchToFiber(_In_ PVOID);
3149 BOOL WINAPI SwitchToThread(void);
3150 BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
3151 BOOL WINAPI SystemTimeToTzSpecificLocalTime(CONST TIME_ZONE_INFORMATION*,CONST SYSTEMTIME*,LPSYSTEMTIME);
3152 BOOL WINAPI TerminateProcess(HANDLE,UINT);
3153 BOOL WINAPI TerminateThread(HANDLE,DWORD);
3154 DWORD WINAPI TlsAlloc(VOID);
3155 BOOL WINAPI TlsFree(DWORD);
3156 PVOID WINAPI TlsGetValue(DWORD);
3157 BOOL WINAPI TlsSetValue(DWORD,PVOID);
3158 BOOL WINAPI TransactNamedPipe(HANDLE,PVOID,DWORD,PVOID,DWORD,PDWORD,LPOVERLAPPED);
3159 BOOL WINAPI TransmitCommChar(_In_ HANDLE, _In_ char);
3160 BOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION);
3161 BOOL WINAPI TzSpecificLocalTimeToSystemTime(LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME);
3162 LONG WINAPI UnhandledExceptionFilter(LPEXCEPTION_POINTERS);
3163 BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
3164 BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
3165 #define UnlockResource(h) (h)
3166 #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) /* Obsolete: Has no effect. */
3167 BOOL WINAPI UnmapViewOfFile(LPCVOID);
3168 #if (_WIN32_WINNT >= 0x0500)
3169 _Must_inspect_result_ BOOL WINAPI UnregisterWait(_In_ HANDLE);
3170 BOOL WINAPI UnregisterWaitEx(HANDLE,HANDLE);
3171 #endif
3172 
3173 BOOL
3174 WINAPI
3175 UpdateResourceA(
3176   _In_ HANDLE hUpdate,
3177   _In_ LPCSTR lpType,
3178   _In_ LPCSTR lpName,
3179   _In_ WORD wLanguage,
3180   _In_reads_bytes_opt_(cb) LPVOID lpData,
3181   _In_ DWORD cb);
3182 
3183 BOOL
3184 WINAPI
3185 UpdateResourceW(
3186   _In_ HANDLE hUpdate,
3187   _In_ LPCWSTR lpType,
3188   _In_ LPCWSTR lpName,
3189   _In_ WORD wLanguage,
3190   _In_reads_bytes_opt_(cb) LPVOID lpData,
3191   _In_ DWORD cb);
3192 
3193 BOOL WINAPI VerifyVersionInfoA(_Inout_ LPOSVERSIONINFOEXA, _In_ DWORD, _In_ DWORDLONG);
3194 BOOL WINAPI VerifyVersionInfoW(_Inout_ LPOSVERSIONINFOEXW, _In_ DWORD, _In_ DWORDLONG);
3195 PVOID WINAPI VirtualAlloc(PVOID,SIZE_T,DWORD,DWORD);
3196 PVOID WINAPI VirtualAllocEx(HANDLE,PVOID,SIZE_T,DWORD,DWORD);
3197 BOOL WINAPI VirtualFree(PVOID,SIZE_T,DWORD);
3198 BOOL WINAPI VirtualFreeEx(HANDLE,PVOID,SIZE_T,DWORD);
3199 BOOL WINAPI VirtualLock(PVOID,SIZE_T);
3200 BOOL WINAPI VirtualProtect(PVOID,SIZE_T,DWORD,PDWORD);
3201 BOOL WINAPI VirtualProtectEx(HANDLE,PVOID,SIZE_T,DWORD,PDWORD);
3202 SIZE_T WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
3203 SIZE_T WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
3204 BOOL WINAPI VirtualUnlock(PVOID,SIZE_T);
3205 BOOL WINAPI WaitCommEvent(_In_ HANDLE, _Inout_ PDWORD, _Inout_opt_ LPOVERLAPPED);
3206 BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
3207 
3208 DWORD
3209 WINAPI
3210 WaitForMultipleObjects(
3211   _In_ DWORD nCount,
3212   _In_reads_(nCount) CONST HANDLE *lpHandles,
3213   _In_ BOOL bWaitAll,
3214   _In_ DWORD dwMilliseconds);
3215 
3216 DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
3217 DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
3218 DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
3219 BOOL WINAPI WaitNamedPipeA(_In_ LPCSTR, _In_ DWORD);
3220 BOOL WINAPI WaitNamedPipeW(_In_ LPCWSTR, _In_ DWORD);
3221 #if (_WIN32_WINNT >= 0x0600)
3222 VOID WINAPI WakeConditionVariable(PCONDITION_VARIABLE);
3223 VOID WINAPI WakeAllConditionVariable(PCONDITION_VARIABLE);
3224 #endif
3225 BOOL WINAPI WinLoadTrustProvider(GUID*);
3226 BOOL WINAPI Wow64DisableWow64FsRedirection(PVOID*);
3227 BOOLEAN WINAPI Wow64EnableWow64FsRedirection(_In_ BOOLEAN);
3228 BOOL WINAPI Wow64RevertWow64FsRedirection(PVOID);
3229 DWORD WINAPI WriteEncryptedFileRaw(_In_ PFE_IMPORT_FUNC, _In_opt_ PVOID, _In_ PVOID);
3230 BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
3231 BOOL WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
3232 BOOL WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
3233 BOOL WINAPI WritePrivateProfileSectionA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR);
3234 BOOL WINAPI WritePrivateProfileSectionW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3235 BOOL WINAPI WritePrivateProfileStringA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR);
3236 BOOL WINAPI WritePrivateProfileStringW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3237 
3238 BOOL
3239 WINAPI
3240 WritePrivateProfileStructA(
3241   _In_ LPCSTR lpszSection,
3242   _In_ LPCSTR lpszKey,
3243   _In_reads_bytes_opt_(uSizeStruct) LPVOID lpStruct,
3244   _In_ UINT uSizeStruct,
3245   _In_opt_ LPCSTR szFile);
3246 
3247 BOOL
3248 WINAPI
3249 WritePrivateProfileStructW(
3250   _In_ LPCWSTR lpszSection,
3251   _In_ LPCWSTR lpszKey,
3252   _In_reads_bytes_opt_(uSizeStruct) LPVOID lpStruct,
3253   _In_ UINT uSizeStruct,
3254   _In_opt_ LPCWSTR szFile);
3255 
3256 BOOL WINAPI WriteProcessMemory(HANDLE,LPVOID,LPCVOID,SIZE_T,SIZE_T*);
3257 BOOL WINAPI WriteProfileSectionA(_In_ LPCSTR, _In_ LPCSTR);
3258 BOOL WINAPI WriteProfileSectionW(_In_ LPCWSTR, _In_ LPCWSTR);
3259 BOOL WINAPI WriteProfileStringA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR);
3260 BOOL WINAPI WriteProfileStringW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3261 DWORD WINAPI WriteTapemark(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ BOOL);
3262 #define Yield()
3263 #if (_WIN32_WINNT >= 0x0501)
3264 BOOL WINAPI ZombifyActCtx(_Inout_ HANDLE);
3265 #endif
3266 
3267 #if (_WIN32_WINNT >= 0x0500)
3268 
3269 BOOL
3270 WINAPI
3271 AllocateUserPhysicalPages(
3272   _In_ HANDLE hProcess,
3273   _Inout_ PULONG_PTR NumberOfPages,
3274   _Out_writes_to_(*NumberOfPages, *NumberOfPages) PULONG_PTR PageArray);
3275 
3276 BOOL
3277 WINAPI
3278 FreeUserPhysicalPages(
3279   _In_ HANDLE hProcess,
3280   _Inout_ PULONG_PTR NumberOfPages,
3281   _In_reads_(*NumberOfPages) PULONG_PTR PageArray);
3282 
3283 BOOL
3284 WINAPI
3285 MapUserPhysicalPages(
3286   _In_ PVOID VirtualAddress,
3287   _In_ ULONG_PTR NumberOfPages,
3288   _In_reads_opt_(NumberOfPages) PULONG_PTR PageArray);
3289 
3290 BOOL
3291 WINAPI
3292 MapUserPhysicalPagesScatter(
3293   _In_reads_(NumberOfPages) PVOID *VirtualAddresses,
3294   _In_ ULONG_PTR NumberOfPages,
3295   _In_reads_opt_(NumberOfPages) PULONG_PTR PageArray);
3296 
3297 #endif
3298 
3299 #ifdef UNICODE
3300 typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO;
3301 typedef WIN32_FIND_DATAW WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
3302 typedef HW_PROFILE_INFOW HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
3303 typedef ENUMRESLANGPROCW ENUMRESLANGPROC;
3304 typedef ENUMRESNAMEPROCW ENUMRESNAMEPROC;
3305 typedef ENUMRESTYPEPROCW ENUMRESTYPEPROC;
3306 #if (_WIN32_WINNT >= 0x0501)
3307 typedef ACTCTXW ACTCTX,*PACTCTX;
3308 typedef PCACTCTXW PCACTCTX;
3309 #endif
3310 #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
3311 #define AddAtom AddAtomW
3312 #define BackupEventLog BackupEventLogW
3313 #define BeginUpdateResource BeginUpdateResourceW
3314 #define BuildCommDCB BuildCommDCBW
3315 #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
3316 #define CallNamedPipe CallNamedPipeW
3317 #if (_WIN32_WINNT >= 0x0501)
3318 #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W
3319 #endif
3320 #define ClearEventLog ClearEventLogW
3321 #define CommConfigDialog CommConfigDialogW
3322 #define CopyFile CopyFileW
3323 #define CopyFileEx CopyFileExW
3324 #if (_WIN32_WINNT >= 0x0501)
3325 #define CreateActCtx CreateActCtxW
3326 #endif
3327 #define CreateDirectory CreateDirectoryW
3328 #define CreateDirectoryEx CreateDirectoryExW
3329 #define CreateEvent CreateEventW
3330 #define CreateFile CreateFileW
3331 #define CreateFileMapping CreateFileMappingW
3332 #if (_WIN32_WINNT >= 0x0500)
3333 #define CreateHardLink CreateHardLinkW
3334 #define CreateJobObject CreateJobObjectW
3335 #endif
3336 #define CreateMailslot CreateMailslotW
3337 #define CreateMutex CreateMutexW
3338 #define CreateNamedPipe CreateNamedPipeW
3339 #define CreateProcess CreateProcessW
3340 #define CreateProcessAsUser CreateProcessAsUserW
3341 #define CreateSemaphore CreateSemaphoreW
3342 #define CreateWaitableTimer CreateWaitableTimerW
3343 #define DecryptFile DecryptFileW
3344 #define DefineDosDevice DefineDosDeviceW
3345 #define DeleteFile DeleteFileW
3346 #if (_WIN32_WINNT >= 0x0500)
3347 #define DeleteVolumeMountPoint DeleteVolumeMountPointW
3348 #define DnsHostnameToComputerName DnsHostnameToComputerNameW
3349 #endif
3350 #define EncryptFile EncryptFileW
3351 #define EndUpdateResource EndUpdateResourceW
3352 #define EnumResourceLanguages EnumResourceLanguagesW
3353 #define EnumResourceNames EnumResourceNamesW
3354 #define EnumResourceTypes EnumResourceTypesW
3355 #define ExpandEnvironmentStrings ExpandEnvironmentStringsW
3356 #define FatalAppExit FatalAppExitW
3357 #define FileEncryptionStatus FileEncryptionStatusW
3358 #if (_WIN32_WINNT >= 0x0501)
3359 #define FindActCtxSectionString FindActCtxSectionStringW
3360 #endif
3361 #define FindAtom FindAtomW
3362 #define FindFirstChangeNotification FindFirstChangeNotificationW
3363 #define FindFirstFile FindFirstFileW
3364 #define FindFirstFileEx FindFirstFileExW
3365 #if (_WIN32_WINNT >= 0x0500)
3366 #define FindFirstVolume FindFirstVolumeW
3367 #define FindFirstVolumeMountPoint FindFirstVolumeMountPointW
3368 #endif
3369 #define FindNextFile FindNextFileW
3370 #if (_WIN32_WINNT >= 0x0500)
3371 #define FindNextVolume FindNextVolumeW
3372 #define FindNextVolumeMountPoint  FindNextVolumeMountPointW
3373 #endif
3374 #define FindResource FindResourceW
3375 #define FindResourceEx FindResourceExW
3376 #define FormatMessage FormatMessageW
3377 #define FreeEnvironmentStrings FreeEnvironmentStringsW
3378 #define GetAtomName GetAtomNameW
3379 #define GetBinaryType GetBinaryTypeW
3380 #define GetCommandLine GetCommandLineW
3381 #define GetCompressedFileSize GetCompressedFileSizeW
3382 #define GetComputerName GetComputerNameW
3383 #if (_WIN32_WINNT >= 0x0500)
3384 #define GetComputerNameEx GetComputerNameExW
3385 #endif
3386 #define GetCurrentDirectory GetCurrentDirectoryW
3387 #define GetDefaultCommConfig GetDefaultCommConfigW
3388 #define GetDiskFreeSpace GetDiskFreeSpaceW
3389 #define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
3390 #if (_WIN32_WINNT >= 0x0502)
3391 #define GetDllDirectory GetDllDirectoryW
3392 #endif
3393 #define GetDriveType GetDriveTypeW
3394 #define GetEnvironmentStrings GetEnvironmentStringsW
3395 #define GetEnvironmentVariable GetEnvironmentVariableW
3396 #define GetFileAttributes GetFileAttributesW
3397 #define GetFileAttributesEx GetFileAttributesExW
3398 #define GetFileSecurity GetFileSecurityW
3399 #if (_WIN32_WINNT >= 0x0600)
3400 #define GetFinalPathNameByHandle GetFinalPathNameByHandleW
3401 #endif
3402 #define GetFullPathName GetFullPathNameW
3403 #define GetLogicalDriveStrings GetLogicalDriveStringsW
3404 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
3405 #define GetLongPathName GetLongPathNameW
3406 #endif
3407 #define GetModuleFileName GetModuleFileNameW
3408 #define GetModuleHandle GetModuleHandleW
3409 #if (_WIN32_WINNT >= 0x0500)
3410 #define GetModuleHandleEx GetModuleHandleExW
3411 #endif
3412 #define GetNamedPipeHandleState GetNamedPipeHandleStateW
3413 #define GetPrivateProfileInt GetPrivateProfileIntW
3414 #define GetPrivateProfileSection GetPrivateProfileSectionW
3415 #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
3416 #define GetPrivateProfileString GetPrivateProfileStringW
3417 #define GetPrivateProfileStruct GetPrivateProfileStructW
3418 #define GetProfileInt GetProfileIntW
3419 #define GetProfileSection GetProfileSectionW
3420 #define GetProfileString GetProfileStringW
3421 #define GetShortPathName GetShortPathNameW
3422 #define GetStartupInfo GetStartupInfoW
3423 #define GetSystemDirectory GetSystemDirectoryW
3424 #if (_WIN32_WINNT >= 0x0500)
3425 #define GetSystemWindowsDirectory GetSystemWindowsDirectoryW
3426 #endif
3427 #if (_WIN32_WINNT >= 0x0501)
3428 #define GetSystemWow64Directory GetSystemWow64DirectoryW
3429 #endif
3430 #define GetTempFileName GetTempFileNameW
3431 #define GetTempPath GetTempPathW
3432 #define GetUserName GetUserNameW
3433 #define GetVersionEx GetVersionExW
3434 #define GetVolumeInformation GetVolumeInformationW
3435 #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW
3436 #define GetVolumePathName GetVolumePathNameW
3437 #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW
3438 #define GetWindowsDirectory GetWindowsDirectoryW
3439 #define GlobalAddAtom GlobalAddAtomW
3440 #define GlobalFindAtom GlobalFindAtomW
3441 #define GlobalGetAtomName GlobalGetAtomNameW
3442 #define IsBadStringPtr IsBadStringPtrW
3443 #define LoadLibrary LoadLibraryW
3444 #define LoadLibraryEx LoadLibraryExW
3445 #define LogonUser LogonUserW
3446 #define LogonUserEx LogonUserExW
3447 #define LookupAccountName LookupAccountNameW
3448 #define LookupAccountSid LookupAccountSidW
3449 #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
3450 #define LookupPrivilegeName LookupPrivilegeNameW
3451 #define LookupPrivilegeValue LookupPrivilegeValueW
3452 #define lstrcat lstrcatW
3453 #define lstrcmp lstrcmpW
3454 #define lstrcmpi lstrcmpiW
3455 #define lstrcpy lstrcpyW
3456 #define lstrcpyn lstrcpynW
3457 #define lstrlen lstrlenW
3458 #define MoveFile MoveFileW
3459 #define MoveFileEx MoveFileExW
3460 #define MoveFileWithProgress MoveFileWithProgressW
3461 #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
3462 #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
3463 #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
3464 #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
3465 #define OpenBackupEventLog OpenBackupEventLogW
3466 #define OpenEvent OpenEventW
3467 #define OpenEventLog OpenEventLogW
3468 #define OpenFileMapping OpenFileMappingW
3469 #define OpenMutex OpenMutexW
3470 #define OpenSemaphore OpenSemaphoreW
3471 #define OutputDebugString OutputDebugStringW
3472 #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
3473 #define QueryDosDevice QueryDosDeviceW
3474 #define ReadEventLog ReadEventLogW
3475 #define RegisterEventSource RegisterEventSourceW
3476 #define RemoveDirectory RemoveDirectoryW
3477 #if (_WIN32_WINNT >= 0x0500)
3478 #define ReplaceFile ReplaceFileW
3479 #endif
3480 #define ReportEvent ReportEventW
3481 #define SearchPath SearchPathW
3482 #define SetComputerName SetComputerNameW
3483 #define SetComputerNameEx SetComputerNameExW
3484 #define SetCurrentDirectory SetCurrentDirectoryW
3485 #define SetDefaultCommConfig SetDefaultCommConfigW
3486 #if (_WIN32_WINNT >= 0x0502)
3487 #define SetDllDirectory SetDllDirectoryW
3488 #endif
3489 #define SetEnvironmentVariable SetEnvironmentVariableW
3490 #define SetFileAttributes SetFileAttributesW
3491 #define SetFileSecurity SetFileSecurityW
3492 #if (_WIN32_WINNT >= 0x0501)
3493 #define SetFileShortName SetFileShortNameW
3494 #endif
3495 #if (_WIN32_WINNT >= 0x0502)
3496 #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableW
3497 #endif
3498 #define SetVolumeLabel SetVolumeLabelW
3499 #define SetVolumeMountPoint SetVolumeMountPointW
3500 #define UpdateResource UpdateResourceW
3501 #define VerifyVersionInfo VerifyVersionInfoW
3502 #define WaitNamedPipe WaitNamedPipeW
3503 #define WritePrivateProfileSection WritePrivateProfileSectionW
3504 #define WritePrivateProfileString WritePrivateProfileStringW
3505 #define WritePrivateProfileStruct WritePrivateProfileStructW
3506 #define WriteProfileSection WriteProfileSectionW
3507 #define WriteProfileString WriteProfileStringW
3508 #else
3509 typedef STARTUPINFOA STARTUPINFO,*LPSTARTUPINFO;
3510 typedef WIN32_FIND_DATAA WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
3511 typedef HW_PROFILE_INFOA HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
3512 #if (_WIN32_WINNT >= 0x0501)
3513 typedef ACTCTXA ACTCTX,*PACTCTX;
3514 typedef PCACTCTXA PCACTCTX;
3515 #endif
3516 typedef ENUMRESLANGPROCA ENUMRESLANGPROC;
3517 typedef ENUMRESNAMEPROCA ENUMRESNAMEPROC;
3518 typedef ENUMRESTYPEPROCA ENUMRESTYPEPROC;
3519 #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
3520 #define AddAtom AddAtomA
3521 #define BackupEventLog BackupEventLogA
3522 #define BeginUpdateResource BeginUpdateResourceA
3523 #define BuildCommDCB BuildCommDCBA
3524 #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
3525 #define CallNamedPipe CallNamedPipeA
3526 #if (_WIN32_WINNT >= 0x0501)
3527 #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A
3528 #endif
3529 #define ClearEventLog ClearEventLogA
3530 #define CommConfigDialog CommConfigDialogA
3531 #define CopyFile CopyFileA
3532 #define CopyFileEx CopyFileExA
3533 #if (_WIN32_WINNT >= 0x0501)
3534 #define CreateActCtx CreateActCtxA
3535 #endif
3536 #define CreateDirectory CreateDirectoryA
3537 #define CreateDirectoryEx CreateDirectoryExA
3538 #define CreateEvent CreateEventA
3539 #define CreateFile CreateFileA
3540 #define CreateFileMapping CreateFileMappingA
3541 #if (_WIN32_WINNT >= 0x0500)
3542 #define CreateHardLink CreateHardLinkA
3543 #define CreateJobObject CreateJobObjectA
3544 #endif
3545 #define CreateMailslot CreateMailslotA
3546 #define CreateMutex CreateMutexA
3547 #define CreateNamedPipe CreateNamedPipeA
3548 #define CreateProcess CreateProcessA
3549 #define CreateProcessAsUser CreateProcessAsUserA
3550 #define CreateSemaphore CreateSemaphoreA
3551 #define CreateWaitableTimer CreateWaitableTimerA
3552 #define DecryptFile DecryptFileA
3553 #define DefineDosDevice DefineDosDeviceA
3554 #define DeleteFile DeleteFileA
3555 #if (_WIN32_WINNT >= 0x0500)
3556 #define DeleteVolumeMountPoint DeleteVolumeMountPointA
3557 #define DnsHostnameToComputerName DnsHostnameToComputerNameA
3558 #endif
3559 #define EncryptFile EncryptFileA
3560 #define EndUpdateResource EndUpdateResourceA
3561 #define EnumResourceLanguages EnumResourceLanguagesA
3562 #define EnumResourceNames EnumResourceNamesA
3563 #define EnumResourceTypes EnumResourceTypesA
3564 #define ExpandEnvironmentStrings ExpandEnvironmentStringsA
3565 #define FatalAppExit FatalAppExitA
3566 #define FileEncryptionStatus FileEncryptionStatusA
3567 #if (_WIN32_WINNT >= 0x0501)
3568 #define FindActCtxSectionString FindActCtxSectionStringA
3569 #endif
3570 #define FindAtom FindAtomA
3571 #define FindFirstChangeNotification FindFirstChangeNotificationA
3572 #define FindFirstFile FindFirstFileA
3573 #define FindFirstFileEx FindFirstFileExA
3574 #if (_WIN32_WINNT >= 0x0500)
3575 #define FindFirstVolume FindFirstVolumeA
3576 #define FindFirstVolumeMountPoint FindFirstVolumeMountPointA
3577 #endif
3578 #define FindNextFile FindNextFileA
3579 #if (_WIN32_WINNT >= 0x0500)
3580 #define FindNextVolume FindNextVolumeA
3581 #define FindNextVolumeMountPoint FindNextVolumeMountPointA
3582 #endif
3583 #define FindResource FindResourceA
3584 #define FindResourceEx FindResourceExA
3585 #define FormatMessage FormatMessageA
3586 #define FreeEnvironmentStrings FreeEnvironmentStringsA
3587 #define GetAtomName GetAtomNameA
3588 #define GetBinaryType GetBinaryTypeA
3589 #define GetCommandLine GetCommandLineA
3590 #define GetComputerName GetComputerNameA
3591 #if (_WIN32_WINNT >= 0x0500)
3592 #define GetComputerNameEx GetComputerNameExA
3593 #endif
3594 #define GetCompressedFileSize GetCompressedFileSizeA
3595 #define GetCurrentDirectory GetCurrentDirectoryA
3596 #define GetDefaultCommConfig GetDefaultCommConfigA
3597 #define GetDiskFreeSpace GetDiskFreeSpaceA
3598 #define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
3599 #if (_WIN32_WINNT >= 0x0502)
3600 #define GetDllDirectory GetDllDirectoryA
3601 #endif
3602 #define GetDriveType GetDriveTypeA
3603 #define GetEnvironmentStringsA GetEnvironmentStrings
3604 #define GetEnvironmentVariable GetEnvironmentVariableA
3605 #define GetFileAttributes GetFileAttributesA
3606 #define GetFileAttributesEx GetFileAttributesExA
3607 #define GetFileSecurity GetFileSecurityA
3608 #if (_WIN32_WINNT >= 0x0600)
3609 #define GetFinalPathNameByHandle GetFinalPathNameByHandleA
3610 #endif
3611 #define GetFullPathName GetFullPathNameA
3612 #define GetLogicalDriveStrings GetLogicalDriveStringsA
3613 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
3614 #define GetLongPathName GetLongPathNameA
3615 #endif
3616 #define GetNamedPipeHandleState GetNamedPipeHandleStateA
3617 #define GetModuleHandle GetModuleHandleA
3618 #if (_WIN32_WINNT >= 0x0500)
3619 #define GetModuleHandleEx GetModuleHandleExA
3620 #endif
3621 #define GetModuleFileName GetModuleFileNameA
3622 #define GetPrivateProfileInt GetPrivateProfileIntA
3623 #define GetPrivateProfileSection GetPrivateProfileSectionA
3624 #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
3625 #define GetPrivateProfileString GetPrivateProfileStringA
3626 #define GetPrivateProfileStruct GetPrivateProfileStructA
3627 #define GetProfileInt GetProfileIntA
3628 #define GetProfileSection GetProfileSectionA
3629 #define GetProfileString GetProfileStringA
3630 #define GetShortPathName GetShortPathNameA
3631 #define GetStartupInfo GetStartupInfoA
3632 #define GetSystemDirectory GetSystemDirectoryA
3633 #if (_WIN32_WINNT >= 0x0500)
3634 #define GetSystemWindowsDirectory GetSystemWindowsDirectoryA
3635 #endif
3636 #if (_WIN32_WINNT >= 0x0501)
3637 #define GetSystemWow64Directory GetSystemWow64DirectoryA
3638 #endif
3639 #define GetTempFileName GetTempFileNameA
3640 #define GetTempPath GetTempPathA
3641 #define GetUserName GetUserNameA
3642 #define GetVersionEx GetVersionExA
3643 #define GetVolumeInformation GetVolumeInformationA
3644 #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointA
3645 #define GetVolumePathName GetVolumePathNameA
3646 #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameA
3647 #define GetWindowsDirectory GetWindowsDirectoryA
3648 #define GlobalAddAtom GlobalAddAtomA
3649 #define GlobalFindAtom GlobalFindAtomA
3650 #define GlobalGetAtomName GlobalGetAtomNameA
3651 #define IsBadStringPtr IsBadStringPtrA
3652 #define LoadLibrary LoadLibraryA
3653 #define LoadLibraryEx LoadLibraryExA
3654 #define LogonUser LogonUserA
3655 #define LogonUserEx LogonUserExA
3656 #define LookupAccountName LookupAccountNameA
3657 #define LookupAccountSid LookupAccountSidA
3658 #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
3659 #define LookupPrivilegeName LookupPrivilegeNameA
3660 #define LookupPrivilegeValue LookupPrivilegeValueA
3661 #define lstrcat lstrcatA
3662 #define lstrcmp lstrcmpA
3663 #define lstrcmpi lstrcmpiA
3664 #define lstrcpy lstrcpyA
3665 #define lstrcpyn lstrcpynA
3666 #define lstrlen lstrlenA
3667 #define MoveFile MoveFileA
3668 #define MoveFileEx MoveFileExA
3669 #define MoveFileWithProgress MoveFileWithProgressA
3670 #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
3671 #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
3672 #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
3673 #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
3674 #define OpenBackupEventLog OpenBackupEventLogA
3675 #define OpenEvent OpenEventA
3676 #define OpenEventLog OpenEventLogA
3677 #define OpenFileMapping OpenFileMappingA
3678 #define OpenMutex OpenMutexA
3679 #define OpenSemaphore OpenSemaphoreA
3680 #define OutputDebugString OutputDebugStringA
3681 #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
3682 #define QueryDosDevice QueryDosDeviceA
3683 #define ReadEventLog ReadEventLogA
3684 #define RegisterEventSource RegisterEventSourceA
3685 #define RemoveDirectory RemoveDirectoryA
3686 #if (_WIN32_WINNT >= 0x0500)
3687 #define ReplaceFile ReplaceFileA
3688 #endif
3689 #define ReportEvent ReportEventA
3690 #define SearchPath SearchPathA
3691 #define SetComputerName SetComputerNameA
3692 #define SetComputerNameEx SetComputerNameExA
3693 #define SetCurrentDirectory SetCurrentDirectoryA
3694 #define SetDefaultCommConfig SetDefaultCommConfigA
3695 #if (_WIN32_WINNT >= 0x0502)
3696 #define SetDllDirectory SetDllDirectoryA
3697 #endif
3698 #define SetEnvironmentVariable SetEnvironmentVariableA
3699 #define SetFileAttributes SetFileAttributesA
3700 #define SetFileSecurity SetFileSecurityA
3701 #if (_WIN32_WINNT >= 0x0501)
3702 #define SetFileShortName SetFileShortNameA
3703 #endif
3704 #if (_WIN32_WINNT >= 0x0502)
3705 #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableA
3706 #endif
3707 #define SetVolumeLabel SetVolumeLabelA
3708 #define SetVolumeMountPoint SetVolumeMountPointA
3709 #define UpdateResource UpdateResourceA
3710 #define VerifyVersionInfo VerifyVersionInfoA
3711 #define WaitNamedPipe WaitNamedPipeA
3712 #define WritePrivateProfileSection WritePrivateProfileSectionA
3713 #define WritePrivateProfileString WritePrivateProfileStringA
3714 #define WritePrivateProfileStruct WritePrivateProfileStructA
3715 #define WriteProfileSection WriteProfileSectionA
3716 #define WriteProfileString WriteProfileStringA
3717 #endif
3718 #endif
3719 
3720 /* one-time initialisation API */
3721 typedef RTL_RUN_ONCE INIT_ONCE;
3722 typedef PRTL_RUN_ONCE PINIT_ONCE;
3723 typedef PRTL_RUN_ONCE LPINIT_ONCE;
3724 
3725 #define INIT_ONCE_CHECK_ONLY RTL_RUN_ONCE_CHECK_ONLY
3726 #define INIT_ONCE_ASYNC RTL_RUN_ONCE_ASYNC
3727 #define INIT_ONCE_INIT_FAILED RTL_RUN_ONCE_INIT_FAILED
3728 
3729 typedef BOOL
3730 (WINAPI *PINIT_ONCE_FN)(
3731   _Inout_ PINIT_ONCE InitOnce,
3732   _Inout_opt_ PVOID Parameter,
3733   _Outptr_opt_result_maybenull_ PVOID *Context);
3734 
3735 #if _WIN32_WINNT >= 0x0601
3736 
3737 #define COPYFILE2_MESSAGE_COPY_OFFLOAD 0x00000001L
3738 
3739 typedef enum _COPYFILE2_MESSAGE_TYPE {
3740   COPYFILE2_CALLBACK_NONE = 0,
3741   COPYFILE2_CALLBACK_CHUNK_STARTED,
3742   COPYFILE2_CALLBACK_CHUNK_FINISHED,
3743   COPYFILE2_CALLBACK_STREAM_STARTED,
3744   COPYFILE2_CALLBACK_STREAM_FINISHED,
3745   COPYFILE2_CALLBACK_POLL_CONTINUE,
3746   COPYFILE2_CALLBACK_ERROR,
3747   COPYFILE2_CALLBACK_MAX,
3748 } COPYFILE2_MESSAGE_TYPE;
3749 
3750 typedef enum _COPYFILE2_MESSAGE_ACTION {
3751   COPYFILE2_PROGRESS_CONTINUE = 0,
3752   COPYFILE2_PROGRESS_CANCEL,
3753   COPYFILE2_PROGRESS_STOP,
3754   COPYFILE2_PROGRESS_QUIET,
3755   COPYFILE2_PROGRESS_PAUSE,
3756 } COPYFILE2_MESSAGE_ACTION;
3757 
3758 typedef enum _COPYFILE2_COPY_PHASE {
3759   COPYFILE2_PHASE_NONE = 0,
3760   COPYFILE2_PHASE_PREPARE_SOURCE,
3761   COPYFILE2_PHASE_PREPARE_DEST,
3762   COPYFILE2_PHASE_READ_SOURCE,
3763   COPYFILE2_PHASE_WRITE_DESTINATION,
3764   COPYFILE2_PHASE_SERVER_COPY,
3765   COPYFILE2_PHASE_NAMEGRAFT_COPY,
3766   COPYFILE2_PHASE_MAX,
3767 } COPYFILE2_COPY_PHASE;
3768 
3769 typedef struct COPYFILE2_MESSAGE {
3770   COPYFILE2_MESSAGE_TYPE Type;
3771   DWORD dwPadding;
3772   union {
3773     struct {
3774       DWORD dwStreamNumber;
3775       DWORD dwReserved;
3776       HANDLE hSourceFile;
3777       HANDLE hDestinationFile;
3778       ULARGE_INTEGER uliChunkNumber;
3779       ULARGE_INTEGER uliChunkSize;
3780       ULARGE_INTEGER uliStreamSize;
3781       ULARGE_INTEGER uliTotalFileSize;
3782     } ChunkStarted;
3783     struct {
3784       DWORD dwStreamNumber;
3785       DWORD dwFlags;
3786       HANDLE hSourceFile;
3787       HANDLE hDestinationFile;
3788       ULARGE_INTEGER uliChunkNumber;
3789       ULARGE_INTEGER uliChunkSize;
3790       ULARGE_INTEGER uliStreamSize;
3791       ULARGE_INTEGER uliStreamBytesTransferred;
3792       ULARGE_INTEGER uliTotalFileSize;
3793       ULARGE_INTEGER uliTotalBytesTransferred;
3794     } ChunkFinished;
3795     struct {
3796       DWORD dwStreamNumber;
3797       DWORD dwReserved;
3798       HANDLE hSourceFile;
3799       HANDLE hDestinationFile;
3800       ULARGE_INTEGER uliStreamSize;
3801       ULARGE_INTEGER uliTotalFileSize;
3802     } StreamStarted;
3803     struct {
3804       DWORD dwStreamNumber;
3805       DWORD dwReserved;
3806       HANDLE hSourceFile;
3807       HANDLE hDestinationFile;
3808       ULARGE_INTEGER uliStreamSize;
3809       ULARGE_INTEGER uliStreamBytesTransferred;
3810       ULARGE_INTEGER uliTotalFileSize;
3811       ULARGE_INTEGER uliTotalBytesTransferred;
3812     } StreamFinished;
3813     struct {
3814       DWORD dwReserved;
3815     } PollContinue;
3816     struct {
3817       COPYFILE2_COPY_PHASE CopyPhase;
3818       DWORD dwStreamNumber;
3819       HRESULT hrFailure;
3820       DWORD dwReserved;
3821       ULARGE_INTEGER uliChunkNumber;
3822       ULARGE_INTEGER uliStreamSize;
3823       ULARGE_INTEGER uliStreamBytesTransferred;
3824       ULARGE_INTEGER uliTotalFileSize;
3825       ULARGE_INTEGER uliTotalBytesTransferred;
3826     } Error;
3827   } Info;
3828 } COPYFILE2_MESSAGE;
3829 
3830 typedef COPYFILE2_MESSAGE_ACTION
3831 (CALLBACK *PCOPYFILE2_PROGRESS_ROUTINE)(
3832   _In_ const COPYFILE2_MESSAGE *pMessage,
3833   _In_opt_ PVOID pvCallbackContext);
3834 
3835 typedef struct COPYFILE2_EXTENDED_PARAMETERS {
3836   DWORD dwSize;
3837   DWORD dwCopyFlags;
3838   BOOL *pfCancel;
3839   PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine;
3840   PVOID pvCallbackContext;
3841 } COPYFILE2_EXTENDED_PARAMETERS;
3842 
3843 WINBASEAPI
3844 HRESULT
3845 WINAPI
3846 CopyFile2(
3847   _In_ PCWSTR pwszExistingFileName,
3848   _In_ PCWSTR pwszNewFileName,
3849   _In_opt_ COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters);
3850 
3851 #endif /* _WIN32_WINNT >= 0x0601 */
3852 
3853 WINBASEAPI
3854 BOOL
3855 WINAPI
3856 InitOnceExecuteOnce(
3857   _Inout_ PINIT_ONCE InitOnce,
3858   _In_ __callback PINIT_ONCE_FN InitFn,
3859   _Inout_opt_ PVOID Parameter,
3860   _Outptr_opt_result_maybenull_ LPVOID *Context);
3861 
3862 WINBASEAPI
3863 VOID
3864 WINAPI
3865 InitializeSListHead(
3866     _Out_ PSLIST_HEADER ListHead);
3867 
3868 #ifdef _MSC_VER
3869 #pragma warning(pop)
3870 #endif
3871 
3872 #ifdef __cplusplus
3873 }
3874 #endif
3875 #endif /* _WINBASE_H */
3876