xref: /reactos/sdk/include/psdk/winbase.h (revision 3435c3b5)
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 _OVERLAPPED_ENTRY {
796     ULONG_PTR lpCompletionKey;
797     LPOVERLAPPED lpOverlapped;
798     ULONG_PTR Internal;
799     DWORD dwNumberOfBytesTransferred;
800 } OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
801 
802 typedef struct _STARTUPINFOA {
803 	DWORD	cb;
804 	LPSTR	lpReserved;
805 	LPSTR	lpDesktop;
806 	LPSTR	lpTitle;
807 	DWORD	dwX;
808 	DWORD	dwY;
809 	DWORD	dwXSize;
810 	DWORD	dwYSize;
811 	DWORD	dwXCountChars;
812 	DWORD	dwYCountChars;
813 	DWORD	dwFillAttribute;
814 	DWORD	dwFlags;
815 	WORD	wShowWindow;
816 	WORD	cbReserved2;
817 	PBYTE	lpReserved2;
818 	HANDLE	hStdInput;
819 	HANDLE	hStdOutput;
820 	HANDLE	hStdError;
821 } STARTUPINFOA,*LPSTARTUPINFOA;
822 
823 typedef struct _STARTUPINFOW {
824 	DWORD	cb;
825 	LPWSTR	lpReserved;
826 	LPWSTR	lpDesktop;
827 	LPWSTR	lpTitle;
828 	DWORD	dwX;
829 	DWORD	dwY;
830 	DWORD	dwXSize;
831 	DWORD	dwYSize;
832 	DWORD	dwXCountChars;
833 	DWORD	dwYCountChars;
834 	DWORD	dwFillAttribute;
835 	DWORD	dwFlags;
836 	WORD	wShowWindow;
837 	WORD	cbReserved2;
838 	PBYTE	lpReserved2;
839 	HANDLE	hStdInput;
840 	HANDLE	hStdOutput;
841 	HANDLE	hStdError;
842 } STARTUPINFOW,*LPSTARTUPINFOW;
843 
844 typedef struct _PROCESS_INFORMATION {
845 	HANDLE hProcess;
846 	HANDLE hThread;
847 	DWORD dwProcessId;
848 	DWORD dwThreadId;
849 } PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
850 
851 typedef struct _CRITICAL_SECTION_DEBUG {
852 	WORD Type;
853 	WORD CreatorBackTraceIndex;
854 	struct _CRITICAL_SECTION *CriticalSection;
855 	LIST_ENTRY ProcessLocksList;
856 	DWORD EntryCount;
857 	DWORD ContentionCount;
858 //#ifdef __WINESRC__ //not all wine code is marked so
859 	DWORD_PTR Spare[8/sizeof(DWORD_PTR)];/* in Wine they store a string here */
860 //#else
861 	//WORD SpareWORD;
862 //#endif
863 } CRITICAL_SECTION_DEBUG,*PCRITICAL_SECTION_DEBUG,*LPCRITICAL_SECTION_DEBUG;
864 
865 typedef struct _CRITICAL_SECTION {
866 	PCRITICAL_SECTION_DEBUG DebugInfo;
867 	LONG LockCount;
868 	LONG RecursionCount;
869 	HANDLE OwningThread;
870 	HANDLE LockSemaphore;
871 	ULONG_PTR SpinCount;
872 } CRITICAL_SECTION,*PCRITICAL_SECTION,*LPCRITICAL_SECTION;
873 
874 #ifndef _SYSTEMTIME_
875 #define _SYSTEMTIME_
876 typedef struct _SYSTEMTIME {
877 	WORD wYear;
878 	WORD wMonth;
879 	WORD wDayOfWeek;
880 	WORD wDay;
881 	WORD wHour;
882 	WORD wMinute;
883 	WORD wSecond;
884 	WORD wMilliseconds;
885 } SYSTEMTIME,*LPSYSTEMTIME,*PSYSTEMTIME;
886 #endif /* _SYSTEMTIME_ */
887 #if (_WIN32_WINNT >= 0x0500)
888 typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK ;
889 #endif
890 typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
891 	DWORD	dwFileAttributes;
892 	FILETIME	ftCreationTime;
893 	FILETIME	ftLastAccessTime;
894 	FILETIME	ftLastWriteTime;
895 	DWORD	nFileSizeHigh;
896 	DWORD	nFileSizeLow;
897 } WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA;
898 typedef struct _WIN32_FIND_DATAA {
899 	DWORD dwFileAttributes;
900 	FILETIME ftCreationTime;
901 	FILETIME ftLastAccessTime;
902 	FILETIME ftLastWriteTime;
903 	DWORD nFileSizeHigh;
904 	DWORD nFileSizeLow;
905 	DWORD dwReserved0;
906 	DWORD dwReserved1;
907 	CHAR cFileName[MAX_PATH];
908 	CHAR cAlternateFileName[14];
909 } WIN32_FIND_DATAA,*PWIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
910 typedef struct _WIN32_FIND_DATAW {
911 	DWORD dwFileAttributes;
912 	FILETIME ftCreationTime;
913 	FILETIME ftLastAccessTime;
914 	FILETIME ftLastWriteTime;
915 	DWORD nFileSizeHigh;
916 	DWORD nFileSizeLow;
917 	DWORD dwReserved0;
918 	DWORD dwReserved1;
919 	WCHAR cFileName[MAX_PATH];
920 	WCHAR cAlternateFileName[14];
921 } WIN32_FIND_DATAW,*PWIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
922 
923 #if (_WIN32_WINNT >= 0x0501)
924 typedef enum _STREAM_INFO_LEVELS {
925 	FindStreamInfoStandard
926 } STREAM_INFO_LEVELS;
927 
928 typedef struct _WIN32_FIND_STREAM_DATA {
929 	LARGE_INTEGER StreamSize;
930 	WCHAR cStreamName[MAX_PATH + 36];
931 } WIN32_FIND_STREAM_DATA, *PWIN32_FIND_STREAM_DATA;
932 #endif
933 
934 typedef struct _WIN32_STREAM_ID {
935 	DWORD dwStreamId;
936 	DWORD dwStreamAttributes;
937 	LARGE_INTEGER Size;
938 	DWORD dwStreamNameSize;
939 	WCHAR cStreamName[ANYSIZE_ARRAY];
940 } WIN32_STREAM_ID, *LPWIN32_STREAM_ID;
941 
942 #if (_WIN32_WINNT >= 0x0600)
943 
944 typedef enum _FILE_ID_TYPE {
945     FileIdType,
946     ObjectIdType,
947     ExtendedFileIdType,
948     MaximumFileIdType
949 } FILE_ID_TYPE, *PFILE_ID_TYPE;
950 
951 typedef struct _FILE_ID_DESCRIPTOR {
952     DWORD        dwSize;
953     FILE_ID_TYPE Type;
954     union {
955         LARGE_INTEGER FileId;
956         GUID          ObjectId;
957     } DUMMYUNIONNAME;
958 } FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
959 
960 typedef enum _FILE_INFO_BY_HANDLE_CLASS {
961     FileBasicInfo,
962     FileStandardInfo,
963     FileNameInfo,
964     FileRenameInfo,
965     FileDispositionInfo,
966     FileAllocationInfo,
967     FileEndOfFileInfo,
968     FileStreamInfo,
969     FileCompressionInfo,
970     FileAttributeTagInfo,
971     FileIdBothDirectoryInfo,
972     FileIdBothDirectoryRestartInfo,
973     FileIoPriorityHintInfo,
974     FileRemoteProtocolInfo,
975     FileFullDirectoryInfo,
976     FileFullDirectoryRestartInfo,
977     FileStorageInfo,
978     FileAlignmentInfo,
979     FileIdInfo,
980     FileIdExtdDirectoryInfo,
981     FileIdExtdDirectoryRestartInfo,
982     MaximumFileInfoByHandlesClass
983 } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
984 
985 typedef struct _FILE_ID_BOTH_DIR_INFO {
986     DWORD         NextEntryOffset;
987     DWORD         FileIndex;
988     LARGE_INTEGER CreationTime;
989     LARGE_INTEGER LastAccessTime;
990     LARGE_INTEGER LastWriteTime;
991     LARGE_INTEGER ChangeTime;
992     LARGE_INTEGER EndOfFile;
993     LARGE_INTEGER AllocationSize;
994     DWORD         FileAttributes;
995     DWORD         FileNameLength;
996     DWORD         EaSize;
997     CCHAR         ShortNameLength;
998     WCHAR         ShortName[12];
999     LARGE_INTEGER FileId;
1000     WCHAR         FileName[1];
1001 } FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
1002 
1003 typedef struct _FILE_BASIC_INFO {
1004     LARGE_INTEGER CreationTime;
1005     LARGE_INTEGER LastAccessTime;
1006     LARGE_INTEGER LastWriteTime;
1007     LARGE_INTEGER ChangeTime;
1008     DWORD FileAttributes;
1009 } FILE_BASIC_INFO, *PFILE_BASIC_INFO;
1010 
1011 typedef struct _FILE_STANDARD_INFO {
1012     LARGE_INTEGER AllocationSize;
1013     LARGE_INTEGER EndOfFile;
1014     DWORD NumberOfLinks;
1015     BOOLEAN DeletePending;
1016     BOOLEAN Directory;
1017 } FILE_STANDARD_INFO, *PFILE_STANDARD_INFO;
1018 
1019 typedef struct _FILE_NAME_INFO {
1020     DWORD FileNameLength;
1021     WCHAR FileName[1];
1022 } FILE_NAME_INFO, *PFILE_NAME_INFO;
1023 
1024 typedef enum _PRIORITY_HINT {
1025     IoPriorityHintVeryLow,
1026     IoPriorityHintLow,
1027     IoPriorityHintNormal,
1028     MaximumIoPriorityHintType
1029 } PRIORITY_HINT;
1030 
1031 typedef struct _FILE_IO_PRIORITY_HINT_INFO {
1032     PRIORITY_HINT PriorityHint;
1033 } FILE_IO_PRIORITY_HINT_INFO;
1034 
1035 typedef struct _FILE_ALLOCATION_INFO {
1036     LARGE_INTEGER AllocationSize;
1037 } FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO;
1038 
1039 typedef struct _FILE_DISPOSITION_INFO {
1040     BOOLEAN DeleteFile;
1041 } FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO;
1042 
1043 typedef struct _FILE_END_OF_FILE_INFO {
1044     LARGE_INTEGER EndOfFile;
1045 } FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO;
1046 
1047 typedef struct _FILE_RENAME_INFO {
1048     BOOLEAN ReplaceIfExists;
1049     HANDLE RootDirectory;
1050     DWORD FileNameLength;
1051     WCHAR FileName[1];
1052 } FILE_RENAME_INFO, *PFILE_RENAME_INFO;
1053 
1054 typedef struct _FILE_ATTRIBUTE_TAG_INFO {
1055     DWORD FileAttributes;
1056     DWORD ReparseTag;
1057 } FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
1058 
1059 typedef struct _FILE_COMPRESSION_INFO {
1060     LARGE_INTEGER CompressedFileSize;
1061     WORD CompressionFormat;
1062     UCHAR CompressionUnitShift;
1063     UCHAR ChunkShift;
1064     UCHAR ClusterShift;
1065     UCHAR Reserved[3];
1066 } FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO;
1067 
1068 typedef struct _FILE_REMOTE_PROTOCOL_INFO {
1069     USHORT StructureVersion;
1070     USHORT StructureSize;
1071     ULONG Protocol;
1072     USHORT ProtocolMajorVersion;
1073     USHORT ProtocolMinorVersion;
1074     USHORT ProtocolRevision;
1075     USHORT Reserved;
1076     ULONG Flags;
1077     struct {
1078         ULONG Reserved[8];
1079     } GenericReserved;
1080     struct {
1081         ULONG Reserved[16];
1082     } ProtocolSpecificReserved;
1083 } FILE_REMOTE_PROTOCOL_INFO, *PFILE_REMOTE_PROTOCOL_INFO;
1084 
1085 #endif
1086 
1087 typedef enum _FINDEX_INFO_LEVELS {
1088 	FindExInfoStandard,
1089 	FindExInfoBasic,
1090 	FindExInfoMaxInfoLevel
1091 } FINDEX_INFO_LEVELS;
1092 
1093 typedef enum _FINDEX_SEARCH_OPS {
1094 	FindExSearchNameMatch,
1095 	FindExSearchLimitToDirectories,
1096 	FindExSearchLimitToDevices,
1097 	FindExSearchMaxSearchOp
1098 } FINDEX_SEARCH_OPS;
1099 
1100 typedef struct tagHW_PROFILE_INFOA {
1101 	DWORD dwDockInfo;
1102 	CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
1103 	CHAR szHwProfileName[MAX_PROFILE_LEN];
1104 } HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA;
1105 
1106 typedef struct tagHW_PROFILE_INFOW {
1107 	DWORD dwDockInfo;
1108 	WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
1109 	WCHAR szHwProfileName[MAX_PROFILE_LEN];
1110 } HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW;
1111 
1112 /* Event Logging */
1113 
1114 #define EVENTLOG_FULL_INFO          0
1115 
1116 typedef struct _EVENTLOG_FULL_INFORMATION {
1117     DWORD dwFull;
1118 } EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION;
1119 
1120 typedef enum _GET_FILEEX_INFO_LEVELS {
1121 	GetFileExInfoStandard,
1122 	GetFileExMaxInfoLevel
1123 } GET_FILEEX_INFO_LEVELS;
1124 
1125 typedef struct _SYSTEM_INFO {
1126 	_ANONYMOUS_UNION union {
1127 		DWORD dwOemId;
1128 		_ANONYMOUS_STRUCT struct {
1129 			WORD wProcessorArchitecture;
1130 			WORD wReserved;
1131 		} DUMMYSTRUCTNAME;
1132 	} DUMMYUNIONNAME;
1133 	DWORD dwPageSize;
1134 	PVOID lpMinimumApplicationAddress;
1135 	PVOID lpMaximumApplicationAddress;
1136 	DWORD_PTR dwActiveProcessorMask;
1137 	DWORD dwNumberOfProcessors;
1138 	DWORD dwProcessorType;
1139 	DWORD dwAllocationGranularity;
1140 	WORD wProcessorLevel;
1141 	WORD wProcessorRevision;
1142 } SYSTEM_INFO,*LPSYSTEM_INFO;
1143 
1144 typedef struct _SYSTEM_POWER_STATUS {
1145 	BYTE ACLineStatus;
1146 	BYTE BatteryFlag;
1147 	BYTE BatteryLifePercent;
1148 	BYTE Reserved1;
1149 	DWORD BatteryLifeTime;
1150 	DWORD BatteryFullLifeTime;
1151 } SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
1152 
1153 typedef struct _TIME_DYNAMIC_ZONE_INFORMATION {
1154   LONG Bias;
1155   WCHAR StandardName[32];
1156   SYSTEMTIME StandardDate;
1157   LONG StandardBias;
1158   WCHAR DaylightName[32];
1159   SYSTEMTIME DaylightDate;
1160   LONG DaylightBias;
1161   WCHAR TimeZoneKeyName[128];
1162   BOOLEAN DynamicDaylightTimeDisabled;
1163 } DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION;
1164 
1165 typedef struct _TIME_ZONE_INFORMATION {
1166 	LONG Bias;
1167 	WCHAR StandardName[32];
1168 	SYSTEMTIME StandardDate;
1169 	LONG StandardBias;
1170 	WCHAR DaylightName[32];
1171 	SYSTEMTIME DaylightDate;
1172 	LONG DaylightBias;
1173 } TIME_ZONE_INFORMATION,*PTIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION;
1174 
1175 typedef struct _MEMORYSTATUS {
1176 	DWORD dwLength;
1177 	DWORD dwMemoryLoad;
1178 	SIZE_T dwTotalPhys;
1179 	SIZE_T dwAvailPhys;
1180 	SIZE_T dwTotalPageFile;
1181 	SIZE_T dwAvailPageFile;
1182 	SIZE_T dwTotalVirtual;
1183 	SIZE_T dwAvailVirtual;
1184 } MEMORYSTATUS,*LPMEMORYSTATUS;
1185 
1186 #if (_WIN32_WINNT >= 0x0500)
1187 typedef struct _MEMORYSTATUSEX {
1188 	DWORD dwLength;
1189 	DWORD dwMemoryLoad;
1190 	DWORDLONG ullTotalPhys;
1191 	DWORDLONG ullAvailPhys;
1192 	DWORDLONG ullTotalPageFile;
1193 	DWORDLONG ullAvailPageFile;
1194 	DWORDLONG ullTotalVirtual;
1195 	DWORDLONG ullAvailVirtual;
1196 	DWORDLONG ullAvailExtendedVirtual;
1197 } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
1198 #endif
1199 
1200 #ifndef _LDT_ENTRY_DEFINED
1201 #define _LDT_ENTRY_DEFINED
1202 typedef struct _LDT_ENTRY {
1203 	WORD LimitLow;
1204 	WORD BaseLow;
1205 	union {
1206 		struct {
1207 			BYTE BaseMid;
1208 			BYTE Flags1;
1209 			BYTE Flags2;
1210 			BYTE BaseHi;
1211 		} Bytes;
1212 		struct {
1213 			DWORD BaseMid:8;
1214 			DWORD Type:5;
1215 			DWORD Dpl:2;
1216 			DWORD Pres:1;
1217 			DWORD LimitHi:4;
1218 			DWORD Sys:1;
1219 			DWORD Reserved_0:1;
1220 			DWORD Default_Big:1;
1221 			DWORD Granularity:1;
1222 			DWORD BaseHi:8;
1223 		} Bits;
1224 	} HighWord;
1225 } LDT_ENTRY,*PLDT_ENTRY,*LPLDT_ENTRY;
1226 #endif
1227 
1228 typedef struct _PROCESS_HEAP_ENTRY {
1229 	PVOID lpData;
1230 	DWORD cbData;
1231 	BYTE cbOverhead;
1232 	BYTE iRegionIndex;
1233 	WORD wFlags;
1234 	_ANONYMOUS_UNION union {
1235 		struct {
1236 			HANDLE hMem;
1237 			DWORD dwReserved[3];
1238 		} Block;
1239 		struct {
1240 			DWORD dwCommittedSize;
1241 			DWORD dwUnCommittedSize;
1242 			LPVOID lpFirstBlock;
1243 			LPVOID lpLastBlock;
1244 		} Region;
1245 	} DUMMYUNIONNAME;
1246 } PROCESS_HEAP_ENTRY,*PPROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY;
1247 
1248 typedef struct _OFSTRUCT {
1249 	BYTE cBytes;
1250 	BYTE fFixedDisk;
1251 	WORD nErrCode;
1252 	WORD Reserved1;
1253 	WORD Reserved2;
1254 	CHAR szPathName[OFS_MAXPATHNAME];
1255 } OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
1256 
1257 #if (_WIN32_WINNT >= 0x0501)
1258 typedef struct tagACTCTXA {
1259 	ULONG cbSize;
1260 	DWORD dwFlags;
1261 	LPCSTR lpSource;
1262 	USHORT wProcessorArchitecture;
1263 	LANGID wLangId;
1264 	LPCSTR lpAssemblyDirectory;
1265 	LPCSTR lpResourceName;
1266 	LPCSTR lpApplicationName;
1267 	HMODULE hModule;
1268 } ACTCTXA,*PACTCTXA;
1269 typedef const ACTCTXA *PCACTCTXA;
1270 
1271 typedef struct tagACTCTXW {
1272 	ULONG cbSize;
1273 	DWORD dwFlags;
1274 	LPCWSTR lpSource;
1275 	USHORT wProcessorArchitecture;
1276 	LANGID wLangId;
1277 	LPCWSTR lpAssemblyDirectory;
1278 	LPCWSTR lpResourceName;
1279 	LPCWSTR lpApplicationName;
1280 	HMODULE hModule;
1281 } ACTCTXW,*PACTCTXW;
1282 typedef const ACTCTXW *PCACTCTXW;
1283 
1284 typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
1285 	ULONG  cbSize;
1286 	ULONG  ulDataFormatVersion;
1287 	PVOID  lpData;
1288 	ULONG  ulLength;
1289 	PVOID  lpSectionGlobalData;
1290 	ULONG  ulSectionGlobalDataLength;
1291 	PVOID  lpSectionBase;
1292 	ULONG  ulSectionTotalLength;
1293 	HANDLE hActCtx;
1294 	ULONG  ulAssemblyRosterIndex;
1295 } ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600;
1296 typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
1297 
1298 typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
1299 	PVOID lpInformation;
1300 	PVOID lpSectionBase;
1301 	ULONG ulSectionLength;
1302 	PVOID lpSectionGlobalDataBase;
1303 	ULONG ulSectionGlobalDataLength;
1304 } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1305 typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1306 
1307 typedef struct tagACTCTX_SECTION_KEYED_DATA {
1308 	ULONG cbSize;
1309 	ULONG ulDataFormatVersion;
1310 	PVOID lpData;
1311 	ULONG ulLength;
1312 	PVOID lpSectionGlobalData;
1313 	ULONG ulSectionGlobalDataLength;
1314 	PVOID lpSectionBase;
1315 	ULONG ulSectionTotalLength;
1316 	HANDLE hActCtx;
1317 	ULONG ulAssemblyRosterIndex;
1318 	/* Non 2600 extra fields */
1319 	ULONG ulFlags;
1320 	ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
1321 } ACTCTX_SECTION_KEYED_DATA,*PACTCTX_SECTION_KEYED_DATA;
1322 
1323 typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
1324 
1325 typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
1326 	HANDLE hActCtx;
1327 	DWORD  dwFlags;
1328 } ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION;
1329 typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
1330 
1331 typedef BOOL
1332 (WINAPI *PQUERYACTCTXW_FUNC)(
1333   _In_ DWORD dwFlags,
1334   _In_ HANDLE hActCtx,
1335   _In_opt_ PVOID pvSubInstance,
1336   _In_ ULONG ulInfoClass,
1337   _Out_writes_bytes_to_opt_(cbBuffer, *pcbWrittenOrRequired) PVOID pvBuffer,
1338   _In_ SIZE_T cbBuffer,
1339   _Out_opt_ SIZE_T *pcbWrittenOrRequired);
1340 
1341 typedef enum {
1342 	LowMemoryResourceNotification ,
1343 	HighMemoryResourceNotification
1344 } MEMORY_RESOURCE_NOTIFICATION_TYPE;
1345 #endif /* (_WIN32_WINNT >= 0x0501) */
1346 
1347 #if (_WIN32_WINNT >= 0x0500)
1348 typedef enum _COMPUTER_NAME_FORMAT {
1349 	ComputerNameNetBIOS,
1350 	ComputerNameDnsHostname,
1351 	ComputerNameDnsDomain,
1352 	ComputerNameDnsFullyQualified,
1353 	ComputerNamePhysicalNetBIOS,
1354 	ComputerNamePhysicalDnsHostname,
1355 	ComputerNamePhysicalDnsDomain,
1356 	ComputerNamePhysicalDnsFullyQualified,
1357 	ComputerNameMax
1358 } COMPUTER_NAME_FORMAT;
1359 #endif /* (_WIN32_WINNT >= 0x0500) */
1360 
1361 #if (_WIN32_WINNT >= 0x0600)
1362 typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK;
1363 typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE;
1364 #endif
1365 
1366 typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST;
1367 
1368 #define PROC_THREAD_ATTRIBUTE_NUMBER 0x0000ffff
1369 #define PROC_THREAD_ATTRIBUTE_THREAD 0x00010000
1370 #define PROC_THREAD_ATTRIBUTE_INPUT 0x00020000
1371 #define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x00040000
1372 
1373 typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
1374   ProcThreadAttributeParentProcess = 0,
1375   ProcThreadAttributeHandleList = 2,
1376   ProcThreadAttributeGroupAffinity = 3,
1377   ProcThreadAttributeIdealProcessor = 5,
1378   ProcThreadAttributeUmsThread = 6,
1379   ProcThreadAttributeMitigationPolicy = 7,
1380   ProcThreadAttributeSecurityCapabilities = 9,
1381   ProcThreadAttributeProtectionLevel = 11,
1382   ProcThreadAttributeJobList = 13,
1383   ProcThreadAttributeChildProcessPolicy = 14,
1384   ProcThreadAttributeAllApplicationPackagesPolicy = 15,
1385   ProcThreadAttributeWin32kFilter = 16,
1386   ProcThreadAttributeSafeOpenPromptOriginClaim = 17,
1387 } PROC_THREAD_ATTRIBUTE_NUM;
1388 
1389 #define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1390 #define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
1391 #define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS (ProcThreadAttributeParentProcess | PROC_THREAD_ATTRIBUTE_INPUT)
1392 
1393 typedef DWORD
1394 (WINAPI *PFE_EXPORT_FUNC)(
1395   _In_reads_bytes_(ulLength) PBYTE pbData,
1396   _In_opt_ PVOID pvCallbackContext,
1397   _In_ ULONG ulLength);
1398 
1399 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);
1400 
1401 typedef VOID (WINAPI *PFIBER_START_ROUTINE)( LPVOID lpFiberParameter );
1402 typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
1403 
1404 typedef VOID (WINAPI *PFLS_CALLBACK_FUNCTION)(PVOID);
1405 typedef BOOL(CALLBACK *ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG_PTR);
1406 typedef BOOL(CALLBACK *ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG_PTR);
1407 typedef BOOL(CALLBACK *ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG_PTR);
1408 typedef BOOL(CALLBACK *ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG_PTR);
1409 typedef BOOL(CALLBACK *ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG_PTR);
1410 typedef BOOL(CALLBACK *ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG_PTR);
1411 typedef void(CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
1412 typedef LONG(CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS);
1413 typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1414 typedef void(APIENTRY *PAPCFUNC)(ULONG_PTR);
1415 typedef void(CALLBACK *PTIMERAPCROUTINE)(PVOID,DWORD,DWORD);
1416 #if (_WIN32_WINNT >= 0x0600)
1417 typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)(PVOID);
1418 #endif
1419 
1420 #ifdef WINE_NO_UNICODE_MACROS /* force using a cast */
1421 #define MAKEINTATOM(atom)   ((ULONG_PTR)((WORD)(atom)))
1422 #else
1423 #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
1424 #endif
1425 
1426 typedef DWORD
1427 (WINAPI *PFE_IMPORT_FUNC)(
1428   _Out_writes_bytes_to_(*ulLength, *ulLength) PBYTE pbData,
1429   _In_opt_ PVOID pvCallbackContext,
1430   _Inout_ PULONG ulLength);
1431 
1432 /* Functions */
1433 #ifndef UNDER_CE
1434 int APIENTRY WinMain(_In_ HINSTANCE, _In_opt_ HINSTANCE, _In_ LPSTR, _In_ int);
1435 #else
1436 int APIENTRY WinMain(_In_ HINSTANCE, _In_opt_ HINSTANCE, _In_ LPWSTR, _In_ int);
1437 #endif
1438 int APIENTRY wWinMain(_In_ HINSTANCE, _In_opt_ HINSTANCE, _In_ LPWSTR, _In_ int);
1439 
1440 long
1441 WINAPI
1442 _hread(
1443   _In_ HFILE hFile,
1444   _Out_writes_bytes_to_(lBytes, return) LPVOID lpBuffer,
1445   _In_ long lBytes);
1446 
1447 long
1448 WINAPI
1449 _hwrite(
1450   _In_ HFILE hFile,
1451   _In_reads_bytes_(lBytes) LPCCH lpBuffer,
1452   _In_ long lBytes);
1453 
1454 HFILE WINAPI _lclose(_In_ HFILE);
1455 HFILE WINAPI _lcreat(_In_ LPCSTR, _In_ int);
1456 LONG WINAPI _llseek(_In_ HFILE, _In_ LONG, _In_ int);
1457 HFILE WINAPI _lopen(_In_ LPCSTR, _In_ int);
1458 
1459 UINT
1460 WINAPI
1461 _lread(
1462   _In_ HFILE hFile,
1463   _Out_writes_bytes_to_(uBytes, return) LPVOID lpBuffer,
1464   _In_ UINT uBytes);
1465 
1466 UINT
1467 WINAPI
1468 _lwrite(
1469   _In_ HFILE hFile,
1470   _In_reads_bytes_(uBytes) LPCCH lpBuffer,
1471   _In_ UINT uBytes);
1472 
1473 BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,PDWORD,PDWORD,PBOOL);
1474 
1475 BOOL
1476 WINAPI
1477 AccessCheckAndAuditAlarmA(
1478   _In_ LPCSTR SubsystemName,
1479   _In_opt_ LPVOID HandleId,
1480   _In_ LPSTR ObjectTypeName,
1481   _In_opt_ LPSTR ObjectName,
1482   _In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
1483   _In_ DWORD DesiredAccess,
1484   _In_ PGENERIC_MAPPING GenericMapping,
1485   _In_ BOOL ObjectCreation,
1486   _Out_ LPDWORD GrantedAccess,
1487   _Out_ LPBOOL AccessStatus,
1488   _Out_ LPBOOL pfGenerateOnClose);
1489 
1490 BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
1491 #if (_WIN32_WINNT >= 0x0600)
1492 VOID WINAPI AcquireSRWLockExclusive(PSRWLOCK);
1493 VOID WINAPI AcquireSRWLockShared(PSRWLOCK);
1494 #endif
1495 #if (_WIN32_WINNT >= 0x0501)
1496 BOOL WINAPI ActivateActCtx(_Inout_opt_ HANDLE, _Out_ ULONG_PTR*);
1497 #endif
1498 BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
1499 BOOL WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
1500 #if (_WIN32_WINNT >= 0x0500)
1501 BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1502 BOOL WINAPI AddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1503 BOOL WINAPI AddAccessAllowedObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID);
1504 BOOL WINAPI AddAccessDeniedObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID);
1505 #endif
1506 BOOL WINAPI AddAce(PACL,DWORD,DWORD,PVOID,DWORD);
1507 ATOM WINAPI AddAtomA(_In_opt_ LPCSTR);
1508 ATOM WINAPI AddAtomW(_In_opt_ LPCWSTR);
1509 BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
1510 #if (_WIN32_WINNT >= 0x0500)
1511 BOOL WINAPI AddAuditAccessObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID,BOOL,BOOL);
1512 #endif
1513 #if (_WIN32_WINNT >= 0x0501)
1514 void WINAPI AddRefActCtx(_Inout_ HANDLE);
1515 #endif
1516 #if (_WIN32_WINNT >= 0x0500)
1517 _Ret_maybenull_ PVOID WINAPI AddVectoredExceptionHandler(_In_ ULONG, _In_ PVECTORED_EXCEPTION_HANDLER);
1518 _Ret_maybenull_ PVOID WINAPI AddVectoredContinueHandler(_In_ ULONG, _In_ PVECTORED_EXCEPTION_HANDLER);
1519 #endif
1520 BOOL WINAPI AccessCheckByType(PSECURITY_DESCRIPTOR,PSID,HANDLE,DWORD,POBJECT_TYPE_LIST,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
1521 BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
1522 BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
1523 BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID*);
1524 BOOL WINAPI CheckTokenMembership(HANDLE,PSID,PBOOL);
1525 BOOL WINAPI AllocateLocallyUniqueId(PLUID);
1526 BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD);
1527 BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD);
1528 BOOL WINAPI AreFileApisANSI(void);
1529 BOOL WINAPI BackupEventLogA(_In_ HANDLE, _In_ LPCSTR);
1530 BOOL WINAPI BackupEventLogW(_In_ HANDLE, _In_ LPCWSTR);
1531 
1532 BOOL
1533 WINAPI
1534 BackupRead(
1535   _In_ HANDLE hFile,
1536   _Out_writes_bytes_to_(nNumberOfBytesToRead, *lpNumberOfBytesRead) LPBYTE lpBuffer,
1537   _In_ DWORD nNumberOfBytesToRead,
1538   _Out_ LPDWORD lpNumberOfBytesRead,
1539   _In_ BOOL bAbort,
1540   _In_ BOOL bProcessSecurity,
1541   _Inout_ LPVOID *lpContext);
1542 
1543 BOOL WINAPI BackupSeek(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _Out_ LPDWORD, _Out_ LPDWORD, _Inout_ LPVOID*);
1544 
1545 BOOL
1546 WINAPI
1547 BackupWrite(
1548   _In_ HANDLE hFile,
1549   _In_reads_bytes_(nNumberOfBytesToWrite) LPBYTE lpBuffer,
1550   _In_ DWORD nNumberOfBytesToWrite,
1551   _Out_ LPDWORD lpNumberOfBytesWritten,
1552   _In_ BOOL bAbort,
1553   _In_ BOOL bProcessSecurity,
1554   _Inout_ LPVOID *lpContext);
1555 
1556 BOOL WINAPI Beep(DWORD,DWORD);
1557 HANDLE WINAPI BeginUpdateResourceA(_In_ LPCSTR, _In_ BOOL);
1558 HANDLE WINAPI BeginUpdateResourceW(_In_ LPCWSTR, _In_ BOOL);
1559 #if (_WIN32_WINNT >= 0x0500)
1560 BOOL WINAPI BindIoCompletionCallback(_In_ HANDLE, _In_ LPOVERLAPPED_COMPLETION_ROUTINE, _In_ ULONG);
1561 #endif
1562 BOOL WINAPI BuildCommDCBA(_In_ LPCSTR, _Out_ LPDCB);
1563 BOOL WINAPI BuildCommDCBW(_In_ LPCWSTR, _Out_ LPDCB);
1564 BOOL WINAPI BuildCommDCBAndTimeoutsA(_In_ LPCSTR, _Out_ LPDCB, _Out_ LPCOMMTIMEOUTS);
1565 BOOL WINAPI BuildCommDCBAndTimeoutsW(_In_ LPCWSTR, _Out_ LPDCB, _Out_ LPCOMMTIMEOUTS);
1566 
1567 BOOL
1568 WINAPI
1569 CallNamedPipeA(
1570   _In_ LPCSTR lpNamedPipeName,
1571   _In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
1572   _In_ DWORD nInBufferSize,
1573   _Out_writes_bytes_to_opt_(nOutBufferSize, *lpBytesRead) LPVOID lpOutBuffer,
1574   _In_ DWORD nOutBufferSize,
1575   _Out_ LPDWORD lpBytesRead,
1576   _In_ DWORD nTimeOut);
1577 
1578 BOOL
1579 WINAPI
1580 CallNamedPipeW(
1581   _In_ LPCWSTR lpNamedPipeName,
1582   _In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
1583   _In_ DWORD nInBufferSize,
1584   _Out_writes_bytes_to_opt_(nOutBufferSize, *lpBytesRead) LPVOID lpOutBuffer,
1585   _In_ DWORD nOutBufferSize,
1586   _Out_ LPDWORD lpBytesRead,
1587   _In_ DWORD nTimeOut);
1588 
1589 BOOL WINAPI CancelDeviceWakeupRequest(_In_ HANDLE);
1590 BOOL WINAPI CancelIo(HANDLE);
1591 #if (_WIN32_WINNT >= 0x0600)
1592 BOOL WINAPI CancelIoEx(HANDLE,LPOVERLAPPED);
1593 BOOL WINAPI CancelSynchronousIo(HANDLE);
1594 #endif
1595 BOOL WINAPI CancelWaitableTimer(HANDLE);
1596 
1597 #if (_WIN32_WINNT >= 0x0501)
1598 
1599 BOOL
1600 WINAPI
1601 CheckNameLegalDOS8Dot3A(
1602   _In_ LPCSTR lpName,
1603   _Out_writes_opt_(OemNameSize) LPSTR lpOemName,
1604   _In_ DWORD OemNameSize,
1605   _Out_opt_ PBOOL pbNameContainsSpaces,
1606   _Out_ PBOOL pbNameLegal);
1607 
1608 BOOL
1609 WINAPI
1610 CheckNameLegalDOS8Dot3W(
1611   _In_ LPCWSTR lpName,
1612   _Out_writes_opt_(OemNameSize) LPSTR lpOemName,
1613   _In_ DWORD OemNameSize,
1614   _Out_opt_ PBOOL pbNameContainsSpaces,
1615   _Out_ PBOOL pbNameLegal);
1616 
1617 BOOL WINAPI CheckRemoteDebuggerPresent(_In_ HANDLE, _Out_ PBOOL);
1618 #endif
1619 
1620 BOOL WINAPI ClearCommBreak(_In_ HANDLE);
1621 BOOL WINAPI ClearCommError(_In_ HANDLE, _Out_opt_ PDWORD, _Out_opt_ LPCOMSTAT);
1622 BOOL WINAPI ClearEventLogA(_In_ HANDLE, _In_opt_ LPCSTR);
1623 BOOL WINAPI ClearEventLogW(_In_ HANDLE, _In_opt_ LPCWSTR);
1624 BOOL WINAPI CloseEventLog(_In_ HANDLE);
1625 BOOL WINAPI CloseHandle(HANDLE);
1626 BOOL WINAPI CommConfigDialogA(_In_ LPCSTR, _In_opt_ HWND, _Inout_ LPCOMMCONFIG);
1627 BOOL WINAPI CommConfigDialogW(_In_ LPCWSTR, _In_opt_ HWND, _Inout_ LPCOMMCONFIG);
1628 LONG WINAPI CompareFileTime(CONST FILETIME*,CONST FILETIME*);
1629 BOOL WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED);
1630 BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
1631 #if (_WIN32_WINNT >= 0x0400)
1632 BOOL WINAPI ConvertFiberToThread(void);
1633 #endif
1634 _Ret_maybenull_ PVOID WINAPI ConvertThreadToFiber(_In_opt_ PVOID);
1635 BOOL WINAPI CopyFileA(_In_ LPCSTR, _In_ LPCSTR, _In_ BOOL);
1636 BOOL WINAPI CopyFileW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ BOOL);
1637 BOOL WINAPI CopyFileExA(_In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_opt_ LPBOOL, _In_ DWORD);
1638 BOOL WINAPI CopyFileExW(_In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_opt_ LPBOOL, _In_ DWORD);
1639 #define MoveMemory RtlMoveMemory
1640 #define CopyMemory RtlCopyMemory
1641 #define FillMemory RtlFillMemory
1642 #define ZeroMemory RtlZeroMemory
1643 #define SecureZeroMemory RtlSecureZeroMemory
1644 BOOL WINAPI CopySid(DWORD,PSID,PSID);
1645 #if (_WIN32_WINNT >= 0x0501)
1646 HANDLE WINAPI CreateActCtxA(_In_ PCACTCTXA);
1647 HANDLE WINAPI CreateActCtxW(_In_ PCACTCTXW);
1648 #endif
1649 BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
1650 BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
1651 BOOL WINAPI CreateDirectoryExA(_In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPSECURITY_ATTRIBUTES);
1652 BOOL WINAPI CreateDirectoryExW(_In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPSECURITY_ATTRIBUTES);
1653 HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1654 HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1655 #if (_WIN32_WINNT >= 0x0600)
1656 HANDLE WINAPI CreateEventExA(LPSECURITY_ATTRIBUTES,LPCSTR,DWORD,DWORD);
1657 HANDLE WINAPI CreateEventExW(LPSECURITY_ATTRIBUTES,LPCWSTR,DWORD,DWORD);
1658 #endif
1659 _Ret_maybenull_ LPVOID WINAPI CreateFiber(_In_ SIZE_T, _In_ LPFIBER_START_ROUTINE, _In_opt_ LPVOID);
1660 #if (_WIN32_WINNT >= 0x0400)
1661 _Ret_maybenull_ LPVOID WINAPI CreateFiberEx(_In_ SIZE_T, _In_ SIZE_T, _In_ DWORD, _In_ LPFIBER_START_ROUTINE, _In_opt_ LPVOID);
1662 #endif
1663 HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1664 HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1665 _Ret_maybenull_ HANDLE WINAPI CreateFileMappingA(_In_ HANDLE, _In_opt_ LPSECURITY_ATTRIBUTES, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCSTR);
1666 HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR);
1667 #if (_WIN32_WINNT >= 0x0500)
1668 BOOL WINAPI CreateHardLinkA(_In_ LPCSTR, _In_ LPCSTR, _Reserved_ LPSECURITY_ATTRIBUTES);
1669 BOOL WINAPI CreateHardLinkW(_In_ LPCWSTR, _In_ LPCWSTR, _Reserved_ LPSECURITY_ATTRIBUTES);
1670 #endif
1671 HANDLE WINAPI CreateIoCompletionPort(HANDLE,HANDLE,ULONG_PTR,DWORD);
1672 #if (_WIN32_WINNT >= 0x0500)
1673 _Ret_maybenull_ HANDLE WINAPI CreateJobObjectA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_opt_ LPCSTR);
1674 _Ret_maybenull_ HANDLE WINAPI CreateJobObjectW(_In_opt_ LPSECURITY_ATTRIBUTES, _In_opt_ LPCWSTR);
1675 BOOL WINAPI TerminateJobObject(_In_ HANDLE, _In_ UINT);
1676 BOOL WINAPI AssignProcessToJobObject(_In_ HANDLE, _In_ HANDLE);
1677 #endif
1678 HANDLE WINAPI CreateMailslotA(_In_ LPCSTR, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1679 HANDLE WINAPI CreateMailslotW(_In_ LPCWSTR, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1680 #if (_WIN32_WINNT >= 0x0501)
1681 HANDLE WINAPI CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE);
1682 #endif
1683 HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1684 HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1685 #if (_WIN32_WINNT >= 0x0600)
1686 HANDLE WINAPI CreateMutexExA(LPSECURITY_ATTRIBUTES,LPCSTR,DWORD,DWORD);
1687 HANDLE WINAPI CreateMutexExW(LPSECURITY_ATTRIBUTES,LPCWSTR,DWORD,DWORD);
1688 #endif
1689 HANDLE WINAPI CreateNamedPipeA(_In_ LPCSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1690 HANDLE WINAPI CreateNamedPipeW(_In_ LPCWSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES);
1691 BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1692 BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
1693 BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1694 BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1695 
1696 BOOL
1697 WINAPI
1698 CreateProcessAsUserA(
1699   _In_opt_ HANDLE,
1700   _In_opt_ LPCSTR,
1701   _Inout_opt_ LPSTR,
1702   _In_opt_ LPSECURITY_ATTRIBUTES,
1703   _In_opt_ LPSECURITY_ATTRIBUTES,
1704   _In_ BOOL,
1705   _In_ DWORD,
1706   _In_opt_ PVOID,
1707   _In_opt_ LPCSTR,
1708   _In_ LPSTARTUPINFOA,
1709   _Out_ LPPROCESS_INFORMATION);
1710 
1711 BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1712 HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1713 
1714 BOOL
1715 WINAPI
1716 CreateRestrictedToken(
1717   _In_ HANDLE ExistingTokenHandle,
1718   _In_ DWORD Flags,
1719   _In_ DWORD DisableSidCount,
1720   _In_reads_opt_(DisableSidCount) PSID_AND_ATTRIBUTES SidsToDisable,
1721   _In_ DWORD DeletePrivilegeCount,
1722   _In_reads_opt_(DeletePrivilegeCount) PLUID_AND_ATTRIBUTES PrivilegesToDelete,
1723   _In_ DWORD RestrictedSidCount,
1724   _In_reads_opt_(RestrictedSidCount) PSID_AND_ATTRIBUTES SidsToRestrict,
1725   _Outptr_ PHANDLE NewTokenHandle);
1726 
1727 _Ret_maybenull_ HANDLE WINAPI CreateSemaphoreA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ LONG, _In_ LONG, _In_opt_ LPCSTR);
1728 _Ret_maybenull_ HANDLE WINAPI CreateSemaphoreW(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ LONG, _In_ LONG, _In_opt_ LPCWSTR);
1729 #if (_WIN32_WINNT >= 0x0600)
1730 _Ret_maybenull_ HANDLE WINAPI CreateSemaphoreExA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ LONG, _In_ LONG, _In_opt_ LPCSTR, _Reserved_ DWORD, _In_ DWORD);
1731 HANDLE WINAPI CreateSemaphoreExW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR,DWORD,DWORD);
1732 #endif
1733 DWORD WINAPI CreateTapePartition(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ DWORD);
1734 
1735 #if (_WIN32_WINNT >= 0x0500)
1736 
1737 HANDLE WINAPI CreateTimerQueue(void);
1738 
1739 BOOL
1740 WINAPI
1741 CreateTimerQueueTimer(
1742   _Outptr_ PHANDLE,
1743   _In_opt_ HANDLE,
1744   _In_ WAITORTIMERCALLBACK,
1745   _In_opt_ PVOID,
1746   _In_ DWORD,
1747   _In_ DWORD,
1748   _In_ ULONG);
1749 
1750 _Must_inspect_result_
1751 BOOL
1752 WINAPI
1753 ChangeTimerQueueTimer(
1754   _In_opt_ HANDLE TimerQueue,
1755   _Inout_ HANDLE Timer,
1756   _In_ ULONG DueTime,
1757   _In_ ULONG Period);
1758 
1759 #endif /* (_WIN32_WINNT >= 0x0500) */
1760 
1761 HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,PVOID,DWORD,PDWORD);
1762 _Ret_maybenull_ HANDLE WINAPI CreateWaitableTimerA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ BOOL, _In_opt_ LPCSTR);
1763 _Ret_maybenull_ HANDLE WINAPI CreateWaitableTimerW(_In_opt_ LPSECURITY_ATTRIBUTES, _In_ BOOL, _In_opt_ LPCWSTR);
1764 #if (_WIN32_WINNT >= 0x0600)
1765 _Ret_maybenull_ HANDLE WINAPI CreateWaitableTimerExA(_In_opt_ LPSECURITY_ATTRIBUTES, _In_opt_ LPCSTR, _In_ DWORD, _In_ DWORD);
1766 HANDLE WINAPI CreateWaitableTimerExW(LPSECURITY_ATTRIBUTES,LPCWSTR,DWORD,DWORD);
1767 #endif
1768 #if (_WIN32_WINNT >= 0x0501)
1769 BOOL WINAPI CreateWellKnownSid(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*);
1770 BOOL WINAPI DeactivateActCtx(_In_ DWORD, _In_ ULONG_PTR);
1771 #endif
1772 BOOL WINAPI DebugActiveProcess(DWORD);
1773 #if (_WIN32_WINNT >= 0x0501)
1774 BOOL WINAPI DebugActiveProcessStop(DWORD);
1775 #endif
1776 void WINAPI DebugBreak(void);
1777 #if (_WIN32_WINNT >= 0x0501)
1778 BOOL WINAPI DebugBreakProcess(_In_ HANDLE);
1779 BOOL WINAPI DebugSetProcessKillOnExit(_In_ BOOL);
1780 #endif
1781 PVOID WINAPI DecodePointer(PVOID);
1782 PVOID WINAPI DecodeSystemPointer(PVOID);
1783 BOOL WINAPI DecryptFileA(_In_ LPCSTR, _Reserved_ DWORD);
1784 BOOL WINAPI DecryptFileW(_In_ LPCWSTR, _Reserved_ DWORD);
1785 BOOL WINAPI DefineDosDeviceA(_In_ DWORD, _In_ LPCSTR, _In_opt_ LPCSTR);
1786 BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1787 #define DefineHandleTable(w) ((w),TRUE)
1788 BOOL WINAPI DeleteAce(PACL,DWORD);
1789 ATOM WINAPI DeleteAtom(_In_ ATOM);
1790 void WINAPI DeleteCriticalSection(PCRITICAL_SECTION);
1791 void WINAPI DeleteFiber(_In_ PVOID);
1792 BOOL WINAPI DeleteFileA(LPCSTR);
1793 BOOL WINAPI DeleteFileW(LPCWSTR);
1794 #if (_WIN32_WINNT >= 0x0500)
1795 _Must_inspect_result_ BOOL WINAPI DeleteTimerQueue(_In_ HANDLE);
1796 BOOL WINAPI DeleteTimerQueueEx(HANDLE,HANDLE);
1797 BOOL WINAPI DeleteTimerQueueTimer(HANDLE,HANDLE,HANDLE);
1798 BOOL WINAPI DeleteVolumeMountPointA(_In_ LPCSTR);
1799 BOOL WINAPI DeleteVolumeMountPointW(LPCWSTR);
1800 #endif
1801 BOOL WINAPI DeregisterEventSource(_In_ HANDLE);
1802 BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
1803 BOOL WINAPI DeviceIoControl(HANDLE,DWORD,PVOID,DWORD,PVOID,DWORD,PDWORD,POVERLAPPED);
1804 BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
1805 
1806 #if (_WIN32_WINNT >= 0x0500)
1807 
1808 _Success_(return != FALSE)
1809 BOOL
1810 WINAPI
1811 DnsHostnameToComputerNameA(
1812   _In_ LPCSTR Hostname,
1813   _Out_writes_to_opt_(*nSize, *nSize + 1) LPSTR ComputerName,
1814   _Inout_ LPDWORD nSize);
1815 
1816 _Success_(return != FALSE)
1817 BOOL
1818 WINAPI
1819 DnsHostnameToComputerNameW(
1820   _In_ LPCWSTR Hostname,
1821   _Out_writes_to_opt_(*nSize, *nSize + 1) LPWSTR ComputerName,
1822   _Inout_ LPDWORD nSize);
1823 
1824 #endif
1825 
1826 BOOL WINAPI DisconnectNamedPipe(HANDLE);
1827 BOOL WINAPI DosDateTimeToFileTime(_In_ WORD, _In_ WORD, _Out_ LPFILETIME);
1828 BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,PHANDLE,DWORD,BOOL,DWORD);
1829 BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
1830 BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
1831 PVOID WINAPI EncodePointer(PVOID);
1832 PVOID WINAPI EncodeSystemPointer(PVOID);
1833 BOOL WINAPI EncryptFileA(_In_ LPCSTR);
1834 BOOL WINAPI EncryptFileW(_In_ LPCWSTR);
1835 BOOL WINAPI EndUpdateResourceA(_In_ HANDLE, _In_ BOOL);
1836 BOOL WINAPI EndUpdateResourceW(_In_ HANDLE, _In_ BOOL);
1837 void WINAPI EnterCriticalSection(LPCRITICAL_SECTION);
1838 BOOL WINAPI EnumResourceLanguagesA(_In_opt_ HMODULE, _In_ LPCSTR, _In_ LPCSTR, _In_ ENUMRESLANGPROCA, _In_ LONG_PTR);
1839 BOOL WINAPI EnumResourceLanguagesW(_In_opt_ HMODULE, _In_ LPCWSTR, _In_ LPCWSTR, _In_ ENUMRESLANGPROCW, _In_ LONG_PTR);
1840 BOOL WINAPI EnumResourceNamesA(_In_opt_ HMODULE, _In_ LPCSTR, _In_ ENUMRESNAMEPROCA, _In_ LONG_PTR);
1841 BOOL WINAPI EnumResourceNamesW(_In_opt_ HMODULE, _In_ LPCWSTR, _In_ ENUMRESNAMEPROCW, _In_ LONG_PTR);
1842 BOOL WINAPI EnumResourceTypesA(_In_opt_ HMODULE, _In_ ENUMRESTYPEPROCA, _In_ LONG_PTR);
1843 BOOL WINAPI EnumResourceTypesW(_In_opt_ HMODULE, _In_ ENUMRESTYPEPROCW, _In_ LONG_PTR);
1844 BOOL WINAPI EqualPrefixSid(PSID,PSID);
1845 BOOL WINAPI EqualSid(PSID,PSID);
1846 DWORD WINAPI EraseTape(_In_ HANDLE, _In_ DWORD, _In_ BOOL);
1847 BOOL WINAPI EscapeCommFunction(_In_ HANDLE, _In_ DWORD);
1848 DECLSPEC_NORETURN void WINAPI ExitProcess(UINT);
1849 DECLSPEC_NORETURN void WINAPI ExitThread(DWORD);
1850 DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
1851 DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
1852 void WINAPI FatalAppExitA(UINT,LPCSTR);
1853 void WINAPI FatalAppExitW(UINT,LPCWSTR);
1854 __analysis_noreturn void WINAPI FatalExit(_In_ int);
1855 BOOL WINAPI FileEncryptionStatusA(_In_ LPCSTR, _Out_ LPDWORD);
1856 BOOL WINAPI FileEncryptionStatusW(_In_ LPCWSTR, _Out_ LPDWORD);
1857 BOOL WINAPI FileTimeToDosDateTime(_In_ CONST FILETIME *, _Out_ LPWORD, _Out_ LPWORD);
1858 BOOL WINAPI FileTimeToLocalFileTime(CONST FILETIME *,LPFILETIME);
1859 BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *,LPSYSTEMTIME);
1860 #if (_WIN32_WINNT >= 0x0501)
1861 BOOL WINAPI FindActCtxSectionGuid(_In_ DWORD, _Reserved_ const GUID*, _In_ ULONG, _In_opt_ const GUID*, _Out_ PACTCTX_SECTION_KEYED_DATA);
1862 BOOL WINAPI FindActCtxSectionStringA(_In_ DWORD, _Reserved_ const GUID*, _In_ ULONG, _In_ LPCSTR, _Out_ PACTCTX_SECTION_KEYED_DATA);
1863 BOOL WINAPI FindActCtxSectionStringW(_In_ DWORD, _Reserved_ const GUID*, _In_ ULONG, _In_ LPCWSTR, _Out_ PACTCTX_SECTION_KEYED_DATA);
1864 #endif
1865 ATOM WINAPI FindAtomA(_In_opt_ LPCSTR);
1866 ATOM WINAPI FindAtomW(_In_opt_ LPCWSTR);
1867 BOOL WINAPI FindClose(HANDLE);
1868 BOOL WINAPI FindCloseChangeNotification(HANDLE);
1869 HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
1870 HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
1871 HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
1872 HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
1873 HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1874 HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1875 #if (_WIN32_WINNT >= 0x0501)
1876 HANDLE WINAPI FindFirstStreamW(_In_ LPCWSTR, _In_ STREAM_INFO_LEVELS, _Out_ LPVOID, _Reserved_ DWORD);
1877 #endif
1878 BOOL WINAPI FindFirstFreeAce(PACL,PVOID*);
1879 
1880 #if (_WIN32_WINNT >= 0x0500)
1881 
1882 HANDLE
1883 WINAPI
1884 FindFirstVolumeA(
1885   _Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
1886   _In_ DWORD cchBufferLength);
1887 
1888 HANDLE WINAPI FindFirstVolumeW(LPWSTR,DWORD);
1889 
1890 HANDLE
1891 WINAPI
1892 FindFirstVolumeMountPointA(
1893   _In_ LPCSTR lpszRootPathName,
1894   _Out_writes_(cchBufferLength) LPSTR lpszVolumeMountPoint,
1895   _In_ DWORD cchBufferLength);
1896 
1897 HANDLE
1898 WINAPI
1899 FindFirstVolumeMountPointW(
1900   _In_ LPCWSTR lpszRootPathName,
1901   _Out_writes_(cchBufferLength) LPWSTR lpszVolumeMountPoint,
1902   _In_ DWORD cchBufferLength);
1903 
1904 #endif
1905 
1906 BOOL WINAPI FindNextChangeNotification(HANDLE);
1907 BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
1908 BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
1909 #if (_WIN32_WINNT >= 0x0501)
1910 BOOL WINAPI FindNextStreamW(_In_ HANDLE, _Out_ LPVOID);
1911 #endif
1912 
1913 #if (_WIN32_WINNT >= 0x0500)
1914 
1915 BOOL
1916 WINAPI
1917 FindNextVolumeA(
1918   _Inout_ HANDLE hFindVolume,
1919   _Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
1920   _In_ DWORD cchBufferLength);
1921 
1922 BOOL WINAPI FindNextVolumeW(HANDLE,LPWSTR,DWORD);
1923 
1924 BOOL
1925 WINAPI
1926 FindNextVolumeMountPointA(
1927   _In_ HANDLE hFindVolumeMountPoint,
1928   _Out_writes_(cchBufferLength) LPSTR lpszVolumeMountPoint,
1929   _In_ DWORD cchBufferLength);
1930 
1931 BOOL
1932 WINAPI
1933 FindNextVolumeMountPointW(
1934   _In_ HANDLE hFindVolumeMountPoint,
1935   _Out_writes_(cchBufferLength) LPWSTR lpszVolumeMountPoint,
1936   _In_ DWORD cchBufferLength);
1937 
1938 BOOL WINAPI FindVolumeClose(HANDLE);
1939 BOOL WINAPI FindVolumeMountPointClose(_In_ HANDLE);
1940 
1941 #endif
1942 
1943 _Ret_maybenull_ HRSRC WINAPI FindResourceA(_In_opt_ HMODULE,_In_ LPCSTR, _In_ LPCSTR);
1944 _Ret_maybenull_ HRSRC WINAPI FindResourceW(_In_opt_ HMODULE,_In_ LPCWSTR, _In_ LPCWSTR);
1945 _Ret_maybenull_ HRSRC WINAPI FindResourceExA(_In_opt_ HMODULE, _In_ LPCSTR, _In_ LPCSTR, _In_ WORD);
1946 HRSRC WINAPI FindResourceExW(HINSTANCE,LPCWSTR,LPCWSTR,WORD);
1947 #if (_WIN32_WINNT >= 0x0502)
1948 
1949 DWORD
1950 WINAPI
1951 GetFirmwareEnvironmentVariableA(
1952   _In_ LPCSTR lpName,
1953   _In_ LPCSTR lpGuid,
1954   _Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
1955   _In_ DWORD nSize);
1956 
1957 DWORD
1958 WINAPI
1959 GetFirmwareEnvironmentVariableW(
1960   _In_ LPCWSTR lpName,
1961   _In_ LPCWSTR lpGuid,
1962   _Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
1963   _In_ DWORD nSize);
1964 
1965 #endif
1966 BOOL WINAPI FlushFileBuffers(HANDLE);
1967 BOOL WINAPI FlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
1968 BOOL WINAPI FlushViewOfFile(LPCVOID,SIZE_T);
1969 DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION);
1970 PVOID WINAPI FlsGetValue(DWORD);
1971 BOOL WINAPI FlsSetValue(DWORD,PVOID);
1972 BOOL WINAPI FlsFree(DWORD);
1973 DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
1974 DWORD WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
1975 BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
1976 BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
1977 BOOL WINAPI FreeLibrary(HMODULE);
1978 DECLSPEC_NORETURN void WINAPI FreeLibraryAndExitThread(HMODULE,DWORD);
1979 #define FreeModule(m) FreeLibrary(m)
1980 #define FreeProcInstance(p) (void)(p)
1981 #ifndef XFree86Server
1982 BOOL WINAPI FreeResource(HGLOBAL);
1983 #endif /* ndef XFree86Server */
1984 PVOID WINAPI FreeSid(PSID);
1985 BOOL WINAPI GetAce(PACL,DWORD,LPVOID*);
1986 BOOL WINAPI GetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1987 #if (_WIN32_WINNT >= 0x0600)
1988 HRESULT WINAPI GetApplicationRecoveryCallback(_In_ HANDLE, _Out_ APPLICATION_RECOVERY_CALLBACK*, _Outptr_opt_result_maybenull_ PVOID*, _Out_opt_ DWORD*, _Out_opt_ DWORD*);
1989 HRESULT WINAPI GetApplicationRestart(HANDLE,PWSTR,PDWORD,PDWORD);
1990 #endif
1991 
1992 UINT
1993 WINAPI
1994 GetAtomNameA(
1995   _In_ ATOM nAtom,
1996   _Out_writes_to_(nSize, return + 1) LPSTR lpBuffer,
1997   _In_ int nSize);
1998 
1999 UINT
2000 WINAPI
2001 GetAtomNameW(
2002   _In_ ATOM nAtom,
2003   _Out_writes_to_(nSize, return + 1) LPWSTR lpBuffer,
2004   _In_ int nSize);
2005 
2006 BOOL WINAPI GetBinaryTypeA(_In_ LPCSTR, _Out_ PDWORD);
2007 BOOL WINAPI GetBinaryTypeW(_In_ LPCWSTR, _Out_ PDWORD);
2008 LPSTR WINAPI GetCommandLineA(VOID);
2009 LPWSTR WINAPI GetCommandLineW(VOID);
2010 
2011 _Success_(return != FALSE)
2012 BOOL
2013 WINAPI
2014 GetCommConfig(
2015   _In_ HANDLE hCommDev,
2016   _Out_writes_bytes_opt_(*lpdwSize) LPCOMMCONFIG lpCC,
2017   _Inout_ LPDWORD lpdwSize);
2018 
2019 BOOL WINAPI GetCommMask(_In_ HANDLE, _Out_ PDWORD);
2020 BOOL WINAPI GetCommModemStatus(_In_ HANDLE, _Out_ PDWORD);
2021 BOOL WINAPI GetCommProperties(_In_ HANDLE, _Inout_ LPCOMMPROP);
2022 BOOL WINAPI GetCommState(_In_ HANDLE, _Out_ LPDCB);
2023 BOOL WINAPI GetCommTimeouts(_In_ HANDLE, _Out_ LPCOMMTIMEOUTS);
2024 DWORD WINAPI GetCompressedFileSizeA(_In_ LPCSTR, _Out_opt_ PDWORD);
2025 DWORD WINAPI GetCompressedFileSizeW(_In_ LPCWSTR, _Out_opt_ PDWORD);
2026 
2027 _Success_(return != 0)
2028 BOOL
2029 WINAPI
2030 GetComputerNameA(
2031   _Out_writes_to_opt_(*nSize, *nSize + 1) LPSTR lpBuffer,
2032   _Inout_ LPDWORD nSize);
2033 
2034 _Success_(return != 0)
2035 BOOL
2036 WINAPI
2037 GetComputerNameW(
2038   _Out_writes_to_opt_(*nSize, *nSize + 1) LPWSTR lpBuffer,
2039   _Inout_ LPDWORD nSize);
2040 
2041 #if (_WIN32_WINNT >= 0x0500)
2042 BOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT,LPSTR,LPDWORD);
2043 BOOL WINAPI GetComputerNameExW(COMPUTER_NAME_FORMAT,LPWSTR,LPDWORD);
2044 #endif
2045 #if (_WIN32_WINNT >= 0x0501)
2046 BOOL WINAPI GetCurrentActCtx( _Outptr_ HANDLE*);
2047 #endif
2048 DWORD WINAPI GetCurrentDirectoryA(DWORD,LPSTR);
2049 DWORD WINAPI GetCurrentDirectoryW(DWORD,LPWSTR);
2050 BOOL WINAPI GetCurrentHwProfileA(_Out_ LPHW_PROFILE_INFOA);
2051 BOOL WINAPI GetCurrentHwProfileW(_Out_ LPHW_PROFILE_INFOW);
2052 HANDLE WINAPI GetCurrentProcess(void);
2053 DWORD WINAPI GetCurrentProcessId(void);
2054 HANDLE WINAPI GetCurrentThread(void);
2055 DWORD WINAPI GetCurrentThreadId(void);
2056 #define GetCurrentTime GetTickCount
2057 
2058 BOOL
2059 WINAPI
2060 GetDefaultCommConfigA(
2061   _In_ LPCSTR lpszName,
2062   _Out_writes_bytes_to_(*lpdwSize, *lpdwSize) LPCOMMCONFIG lpCC,
2063   _Inout_ LPDWORD lpdwSize);
2064 
2065 BOOL
2066 WINAPI
2067 GetDefaultCommConfigW(
2068   _In_ LPCWSTR lpszName,
2069   _Out_writes_bytes_to_(*lpdwSize, *lpdwSize) LPCOMMCONFIG lpCC,
2070   _Inout_ LPDWORD lpdwSize);
2071 
2072 BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,PDWORD,PDWORD,PDWORD,PDWORD);
2073 BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,PDWORD,PDWORD,PDWORD,PDWORD);
2074 BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2075 BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2076 
2077 #if (_WIN32_WINNT >= 0x0502)
2078 
2079 _Success_(return != 0 && return < nBufferLength)
2080 DWORD
2081 WINAPI
2082 GetDllDirectoryA(
2083   _In_ DWORD nBufferLength,
2084   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer);
2085 
2086 _Success_(return != 0 && return < nBufferLength)
2087 DWORD
2088 WINAPI
2089 GetDllDirectoryW(
2090   _In_ DWORD nBufferLength,
2091   _Out_writes_to_opt_(nBufferLength, return + 1) LPWSTR lpBuffer);
2092 
2093 #endif
2094 
2095 UINT WINAPI GetDriveTypeA(LPCSTR);
2096 UINT WINAPI GetDriveTypeW(LPCWSTR);
2097 LPSTR WINAPI GetEnvironmentStrings(void);
2098 LPWSTR WINAPI GetEnvironmentStringsW(void);
2099 DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
2100 DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
2101 BOOL WINAPI GetExitCodeProcess(HANDLE,PDWORD);
2102 BOOL WINAPI GetExitCodeThread(HANDLE,PDWORD);
2103 DWORD WINAPI GetFileAttributesA(LPCSTR);
2104 #if (_WIN32_WINNT >= 0x0600)
2105 BOOL WINAPI GetFileAttributesByHandle(HANDLE,LPDWORD,DWORD);
2106 DWORD WINAPI GetFinalPathNameByHandleA(HANDLE,LPSTR,DWORD,DWORD);
2107 DWORD WINAPI GetFinalPathNameByHandleW(HANDLE,LPWSTR,DWORD,DWORD);
2108 #endif
2109 DWORD WINAPI GetFileAttributesW(LPCWSTR);
2110 BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,PVOID);
2111 BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,PVOID);
2112 #if (_WIN32_WINNT >= 0x0600)
2113 BOOL WINAPI GetFileBandwidthReservation(_In_ HANDLE, _Out_ LPDWORD, _Out_ LPDWORD, _Out_ LPBOOL, _Out_ LPDWORD, _Out_ LPDWORD);
2114 #endif
2115 BOOL WINAPI GetFileInformationByHandle(HANDLE,LPBY_HANDLE_FILE_INFORMATION);
2116 
2117 #if (_WIN32_WINNT >= 0x0600)
2118 BOOL
2119 WINAPI
2120 GetFileInformationByHandleEx(
2121   _In_ HANDLE hFile,
2122   _In_ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
2123   _Out_writes_bytes_(dwBufferSize) LPVOID lpFileInformation,
2124   _In_ DWORD dwBufferSize);
2125 #endif
2126 
2127 BOOL
2128 WINAPI
2129 GetFileSecurityA(
2130   _In_ LPCSTR lpFileName,
2131   _In_ SECURITY_INFORMATION RequestedInformation,
2132   _Out_writes_bytes_to_opt_(nLength, *lpnLengthNeeded) PSECURITY_DESCRIPTOR pSecurityDescriptor,
2133   _In_ DWORD nLength,
2134   _Out_ LPDWORD lpnLengthNeeded);
2135 
2136 BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
2137 DWORD WINAPI GetFileSize(HANDLE,PDWORD);
2138 BOOL WINAPI GetFileSizeEx(HANDLE,PLARGE_INTEGER);
2139 BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
2140 DWORD WINAPI GetFileType(HANDLE);
2141 #define GetFreeSpace(w) (0x100000L)
2142 DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
2143 DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
2144 BOOL WINAPI GetHandleInformation(HANDLE,PDWORD);
2145 BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
2146 DWORD WINAPI GetLastError(void);
2147 DWORD WINAPI GetLengthSid(PSID);
2148 void WINAPI GetLocalTime(LPSYSTEMTIME);
2149 DWORD WINAPI GetLogicalDrives(void);
2150 
2151 _Success_(return != 0 && return <= nBufferLength)
2152 DWORD
2153 WINAPI
2154 GetLogicalDriveStringsA(
2155   _In_ DWORD nBufferLength,
2156   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer);
2157 
2158 DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR);
2159 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
2160 DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
2161 DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
2162 #endif
2163 BOOL WINAPI GetMailslotInfo(_In_ HANDLE, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD);
2164 DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
2165 DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD);
2166 HMODULE WINAPI GetModuleHandleA(LPCSTR);
2167 HMODULE WINAPI GetModuleHandleW(LPCWSTR);
2168 #if (_WIN32_WINNT >= 0x0500)
2169 BOOL WINAPI GetModuleHandleExA(DWORD,LPCSTR,HMODULE*);
2170 BOOL WINAPI GetModuleHandleExW(DWORD,LPCWSTR,HMODULE*);
2171 #endif
2172 
2173 #if _WIN32_WINNT >= 0x0502
2174 WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathA(LPCSTR ExeName);
2175 WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathW(LPCWSTR ExeName);
2176 #endif
2177 
2178 BOOL
2179 WINAPI
2180 GetNamedPipeHandleStateA(
2181   _In_ HANDLE hNamedPipe,
2182   _Out_opt_ LPDWORD lpState,
2183   _Out_opt_ LPDWORD lpCurInstances,
2184   _Out_opt_ LPDWORD lpMaxCollectionCount,
2185   _Out_opt_ LPDWORD lpCollectDataTimeout,
2186   _Out_writes_opt_(nMaxUserNameSize) LPSTR lpUserName,
2187   _In_ DWORD nMaxUserNameSize);
2188 
2189 BOOL
2190 WINAPI
2191 GetNamedPipeHandleStateW(
2192   _In_ HANDLE hNamedPipe,
2193   _Out_opt_ LPDWORD lpState,
2194   _Out_opt_ LPDWORD lpCurInstances,
2195   _Out_opt_ LPDWORD lpMaxCollectionCount,
2196   _Out_opt_ LPDWORD lpCollectDataTimeout,
2197   _Out_writes_opt_(nMaxUserNameSize) LPWSTR lpUserName,
2198   _In_ DWORD nMaxUserNameSize);
2199 
2200 BOOL WINAPI GetNamedPipeInfo(_In_ HANDLE, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD, _Out_opt_ PDWORD);
2201 #if (_WIN32_WINNT >= 0x0501)
2202 VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
2203 #endif
2204 
2205 BOOL
2206 WINAPI
2207 GetEventLogInformation(
2208   _In_ HANDLE hEventLog,
2209   _In_ DWORD dwInfoLevel,
2210   _Out_writes_bytes_to_(cbBufSize, *pcbBytesNeeded) LPVOID lpBuffer,
2211   _In_ DWORD cbBufSize,
2212   _Out_ LPDWORD pcbBytesNeeded);
2213 
2214 BOOL WINAPI GetNumberOfEventLogRecords(_In_ HANDLE, _Out_ PDWORD);
2215 BOOL WINAPI GetOldestEventLogRecord(_In_ HANDLE, _Out_ PDWORD);
2216 BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,PDWORD,BOOL);
2217 DWORD WINAPI GetPriorityClass(HANDLE);
2218 BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
2219 UINT WINAPI GetPrivateProfileIntA(_In_ LPCSTR, _In_ LPCSTR, _In_ INT, _In_opt_ LPCSTR);
2220 UINT WINAPI GetPrivateProfileIntW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ INT, _In_opt_ LPCWSTR);
2221 
2222 DWORD
2223 WINAPI
2224 GetPrivateProfileSectionA(
2225   _In_ LPCSTR lpAppName,
2226   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2227   _In_ DWORD nSize,
2228   _In_opt_ LPCSTR lpFileName);
2229 
2230 DWORD
2231 WINAPI
2232 GetPrivateProfileSectionW(
2233   _In_ LPCWSTR lpAppName,
2234   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2235   _In_ DWORD nSize,
2236   _In_opt_ LPCWSTR lpFileName);
2237 
2238 DWORD
2239 WINAPI
2240 GetPrivateProfileSectionNamesA(
2241   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpszReturnBuffer,
2242   _In_ DWORD nSize,
2243   _In_opt_ LPCSTR lpFileName);
2244 
2245 DWORD
2246 WINAPI
2247 GetPrivateProfileSectionNamesW(
2248   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpszReturnBuffer,
2249   _In_ DWORD nSize,
2250   _In_opt_ LPCWSTR lpFileName);
2251 
2252 DWORD
2253 WINAPI
2254 GetPrivateProfileStringA(
2255   _In_opt_ LPCSTR lpAppName,
2256   _In_opt_ LPCSTR lpKeyName,
2257   _In_opt_ LPCSTR lpDefault,
2258   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2259   _In_ DWORD nSize,
2260   _In_opt_ LPCSTR lpFileName);
2261 
2262 DWORD
2263 WINAPI
2264 GetPrivateProfileStringW(
2265   _In_opt_ LPCWSTR lpAppName,
2266   _In_opt_ LPCWSTR lpKeyName,
2267   _In_opt_ LPCWSTR lpDefault,
2268   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2269   _In_ DWORD nSize,
2270   _In_opt_ LPCWSTR lpFileName);
2271 
2272 BOOL
2273 WINAPI
2274 GetPrivateProfileStructA(
2275   _In_ LPCSTR lpszSection,
2276   _In_ LPCSTR lpszKey,
2277   _Out_writes_bytes_opt_(uSizeStruct) LPVOID lpStruct,
2278   _In_ UINT uSizeStruct,
2279   _In_opt_ LPCSTR szFile);
2280 
2281 BOOL
2282 WINAPI
2283 GetPrivateProfileStructW(
2284   _In_ LPCWSTR lpszSection,
2285   _In_ LPCWSTR lpszKey,
2286   _Out_writes_bytes_opt_(uSizeStruct) LPVOID lpStruct,
2287   _In_ UINT uSizeStruct,
2288   _In_opt_ LPCWSTR szFile);
2289 
2290 FARPROC WINAPI GetProcAddress(HINSTANCE,LPCSTR);
2291 BOOL WINAPI GetProcessAffinityMask(_In_ HANDLE, _Out_ PDWORD_PTR, _Out_ PDWORD_PTR);
2292 #if (_WIN32_WINNT >= 0x0502)
2293 BOOL WINAPI GetProcessHandleCount(_In_ HANDLE, _Out_ PDWORD);
2294 #endif
2295 HANDLE WINAPI GetProcessHeap(VOID);
2296 DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
2297 #if (_WIN32_WINNT >= 0x0502)
2298 DWORD WINAPI GetProcessId(HANDLE);
2299 DWORD WINAPI GetProcessIdOfThread(HANDLE);
2300 #endif
2301 #if (_WIN32_WINNT >= 0x0500)
2302 BOOL WINAPI GetProcessIoCounters(_In_ HANDLE, _Out_ PIO_COUNTERS);
2303 #endif
2304 BOOL WINAPI GetProcessPriorityBoost(_In_ HANDLE, _Out_ PBOOL);
2305 BOOL WINAPI GetProcessShutdownParameters(_Out_ PDWORD, _Out_ PDWORD);
2306 BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
2307 DWORD WINAPI GetProcessVersion(DWORD);
2308 HWINSTA WINAPI GetProcessWindowStation(void);
2309 BOOL WINAPI GetProcessWorkingSetSize(_In_ HANDLE, _Out_ PSIZE_T, _Out_ PSIZE_T);
2310 UINT WINAPI GetProfileIntA(_In_ LPCSTR, _In_ LPCSTR, _In_ INT);
2311 UINT WINAPI GetProfileIntW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ INT);
2312 
2313 DWORD
2314 WINAPI
2315 GetProfileSectionA(
2316   _In_ LPCSTR lpAppName,
2317   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2318   _In_ DWORD nSize);
2319 
2320 DWORD
2321 WINAPI
2322 GetProfileSectionW(
2323   _In_ LPCWSTR lpAppName,
2324   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2325   _In_ DWORD nSize);
2326 
2327 DWORD
2328 WINAPI
2329 GetProfileStringA(
2330   _In_opt_ LPCSTR lpAppName,
2331   _In_opt_ LPCSTR lpKeyName,
2332   _In_opt_ LPCSTR lpDefault,
2333   _Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
2334   _In_ DWORD nSize);
2335 
2336 DWORD
2337 WINAPI
2338 GetProfileStringW(
2339   _In_opt_ LPCWSTR lpAppName,
2340   _In_opt_ LPCWSTR lpKeyName,
2341   _In_opt_ LPCWSTR lpDefault,
2342   _Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
2343   _In_ DWORD nSize);
2344 
2345 BOOL WINAPI GetQueuedCompletionStatus(HANDLE,PDWORD,PULONG_PTR,LPOVERLAPPED*,DWORD);
2346 BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,PDWORD);
2347 BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
2348 BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
2349 DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
2350 BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
2351 DWORD WINAPI GetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR,PUCHAR);
2352 BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
2353 
2354 _Success_(return != 0 && return < cchBuffer)
2355 DWORD
2356 WINAPI
2357 GetShortPathNameA(
2358   _In_ LPCSTR lpszLongPath,
2359   _Out_writes_to_opt_(cchBuffer, return + 1) LPSTR  lpszShortPath,
2360   _In_ DWORD cchBuffer);
2361 
2362 DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
2363 PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
2364 DWORD WINAPI GetSidLengthRequired(UCHAR);
2365 PDWORD WINAPI GetSidSubAuthority(PSID,DWORD);
2366 PUCHAR WINAPI GetSidSubAuthorityCount(PSID);
2367 VOID WINAPI GetStartupInfoA(_Out_ LPSTARTUPINFOA);
2368 VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW);
2369 HANDLE WINAPI GetStdHandle(_In_ DWORD);
2370 UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
2371 UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
2372 
2373 WINBASEAPI
2374 UINT
2375 WINAPI
2376 GetSystemFirmwareTable(
2377   _In_ DWORD FirmwareTableProviderSignature,
2378   _In_ DWORD FirmwareTableID,
2379   _Out_writes_bytes_to_opt_(BufferSize,return) PVOID pFirmwareTableBuffer,
2380   _In_ DWORD BufferSize);
2381 
2382 VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
2383 BOOL WINAPI GetSystemPowerStatus(_Out_ LPSYSTEM_POWER_STATUS);
2384 #if (_WIN32_WINNT >= 0x0502)
2385 BOOL WINAPI GetSystemRegistryQuota(_Out_opt_ PDWORD, _Out_opt_ PDWORD);
2386 #endif
2387 VOID WINAPI GetSystemTime(LPSYSTEMTIME);
2388 #if (_WIN32_WINNT >= 0x0501)
2389 BOOL WINAPI GetSystemTimes(_Out_opt_ LPFILETIME, _Out_opt_ LPFILETIME, _Out_opt_ LPFILETIME);
2390 #endif
2391 BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
2392 void WINAPI GetSystemTimeAsFileTime(LPFILETIME);
2393 #if (_WIN32_WINNT >= 0x0500)
2394 UINT WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT);
2395 UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT);
2396 #endif
2397 
2398 #if (_WIN32_WINNT >= 0x0501)
2399 
2400 _Success_(return != 0 && return < uSize)
2401 UINT
2402 WINAPI
2403 GetSystemWow64DirectoryA(
2404   _Out_writes_to_opt_(uSize, return + 1) LPSTR lpBuffer,
2405   _In_ UINT uSize);
2406 
2407 _Success_(return != 0 && return < uSize)
2408 UINT
2409 WINAPI
2410 GetSystemWow64DirectoryW(
2411   _Out_writes_to_opt_(uSize, return + 1) LPWSTR lpBuffer,
2412   _In_ UINT uSize);
2413 
2414 #endif
2415 
2416 DWORD
2417 WINAPI
2418 GetTapeParameters(
2419   _In_ HANDLE hDevice,
2420   _In_ DWORD dwOperation,
2421   _Inout_ LPDWORD lpdwSize,
2422   _Out_writes_bytes_(*lpdwSize) LPVOID lpTapeInformation);
2423 
2424 DWORD WINAPI GetTapePosition(_In_ HANDLE, _In_ DWORD, _Out_ PDWORD, _Out_ PDWORD, _Out_ PDWORD);
2425 DWORD WINAPI GetTapeStatus(_In_ HANDLE);
2426 
2427 UINT
2428 WINAPI
2429 GetTempFileNameA(
2430   _In_ LPCSTR lpPathName,
2431   _In_ LPCSTR lpPrefixString,
2432   _In_ UINT uUnique,
2433   _Out_writes_(MAX_PATH) LPSTR lpTempFileName);
2434 
2435 UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
2436 
2437 DWORD
2438 WINAPI
2439 GetTempPathA(
2440   _In_ DWORD nBufferLength,
2441   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer);
2442 
2443 DWORD WINAPI GetTempPathW(DWORD,LPWSTR);
2444 BOOL WINAPI GetThreadContext(HANDLE,LPCONTEXT);
2445 #if (_WIN32_WINNT >= 0x0502)
2446 BOOL WINAPI GetThreadIOPendingFlag(_In_ HANDLE, _Out_ PBOOL);
2447 #endif
2448 int WINAPI GetThreadPriority(HANDLE);
2449 BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
2450 BOOL WINAPI GetThreadSelectorEntry(_In_ HANDLE, _In_ DWORD, _Out_ LPLDT_ENTRY);
2451 BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
2452 DWORD WINAPI GetTickCount(VOID);
2453 #if (_WIN32_WINNT >= 0x0600)
2454 ULONGLONG WINAPI GetTickCount64(VOID);
2455 #endif
2456 DWORD WINAPI GetThreadId(HANDLE);
2457 DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
2458 BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD,PDWORD);
2459 
2460 BOOL
2461 WINAPI
2462 GetUserNameA(
2463   _Out_writes_to_opt_(*pcbBuffer, *pcbBuffer) LPSTR lpBuffer,
2464   _Inout_ LPDWORD pcbBuffer);
2465 
2466 BOOL
2467 WINAPI
2468 GetUserNameW(
2469   _Out_writes_to_opt_(*pcbBuffer, *pcbBuffer) LPWSTR lpBuffer,
2470   _Inout_ LPDWORD pcbBuffer);
2471 
2472 DWORD WINAPI GetVersion(void);
2473 BOOL WINAPI GetVersionExA(LPOSVERSIONINFOA);
2474 BOOL WINAPI GetVersionExW(LPOSVERSIONINFOW);
2475 
2476 BOOL
2477 WINAPI
2478 GetVolumeInformationA(
2479   _In_opt_ LPCSTR lpRootPathName,
2480   _Out_writes_opt_(nVolumeNameSize) LPSTR lpVolumeNameBuffer,
2481   _In_ DWORD nVolumeNameSize,
2482   _Out_opt_ LPDWORD lpVolumeSerialNumber,
2483   _Out_opt_ LPDWORD lpMaximumComponentLength,
2484   _Out_opt_ LPDWORD lpFileSystemFlags,
2485   _Out_writes_opt_(nFileSystemNameSize) LPSTR lpFileSystemNameBuffer,
2486   _In_ DWORD nFileSystemNameSize);
2487 
2488 BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
2489 
2490 #if (_WIN32_WINNT >= 0x0500)
2491 
2492 BOOL
2493 WINAPI
2494 GetVolumeNameForVolumeMountPointA(
2495   _In_ LPCSTR lpszVolumeMountPoint,
2496   _Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
2497   _In_ DWORD cchBufferLength);
2498 
2499 BOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR,LPWSTR,DWORD);
2500 
2501 BOOL
2502 WINAPI
2503 GetVolumePathNameA(
2504   _In_ LPCSTR lpszFileName,
2505   _Out_writes_(cchBufferLength) LPSTR lpszVolumePathName,
2506   _In_ DWORD cchBufferLength);
2507 
2508 BOOL WINAPI GetVolumePathNameW(LPCWSTR,LPWSTR,DWORD);
2509 
2510 #endif
2511 
2512 #if (_WIN32_WINNT >= 0x0501)
2513 
2514 BOOL
2515 WINAPI
2516 GetVolumePathNamesForVolumeNameA(
2517   _In_ LPCSTR lpszVolumeName,
2518   _Out_writes_to_opt_(cchBufferLength, *lpcchReturnLength) _Post_ _NullNull_terminated_ LPCH lpszVolumePathNames,
2519   _In_ DWORD cchBufferLength,
2520   _Out_ PDWORD lpcchReturnLength);
2521 
2522 BOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR,LPWSTR,DWORD,PDWORD);
2523 
2524 #endif
2525 
2526 UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
2527 UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
2528 DWORD WINAPI GetWindowThreadProcessId(HWND,PDWORD);
2529 UINT WINAPI GetWriteWatch(DWORD,PVOID,SIZE_T,PVOID*,PULONG_PTR,PULONG);
2530 ATOM WINAPI GlobalAddAtomA(_In_opt_ LPCSTR);
2531 ATOM WINAPI GlobalAddAtomW(_In_opt_ LPCWSTR);
2532 HGLOBAL WINAPI GlobalAlloc(UINT,SIZE_T);
2533 SIZE_T WINAPI GlobalCompact(_In_ DWORD); /* Obsolete: Has no effect. */
2534 ATOM WINAPI GlobalDeleteAtom(_In_ ATOM);
2535 #define GlobalDiscard(m) GlobalReAlloc((m),0,GMEM_MOVEABLE)
2536 ATOM WINAPI GlobalFindAtomA(_In_opt_ LPCSTR);
2537 ATOM WINAPI GlobalFindAtomW(_In_opt_ LPCWSTR);
2538 VOID WINAPI GlobalFix(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2539 UINT WINAPI GlobalFlags(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2540 HGLOBAL WINAPI GlobalFree(HGLOBAL);
2541 
2542 UINT
2543 WINAPI
2544 GlobalGetAtomNameA(
2545   _In_ ATOM nAtom,
2546   _Out_writes_to_(nSize, return + 1) LPSTR lpBuffer,
2547   _In_ int nSize);
2548 
2549 UINT
2550 WINAPI
2551 GlobalGetAtomNameW(
2552   _In_ ATOM nAtom,
2553   _Out_writes_to_(nSize, return + 1) LPWSTR lpBuffer,
2554   _In_ int nSize);
2555 
2556 _Ret_maybenull_ HGLOBAL WINAPI GlobalHandle(_In_ LPCVOID);
2557 _Ret_maybenull_ LPVOID WINAPI GlobalLock(_In_ HGLOBAL);
2558 VOID WINAPI GlobalMemoryStatus(_Out_ LPMEMORYSTATUS);
2559 #if (_WIN32_WINNT >= 0x0500)
2560 BOOL WINAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX);
2561 #endif
2562 HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,SIZE_T,UINT);
2563 SIZE_T WINAPI GlobalSize(_In_ HGLOBAL);
2564 VOID WINAPI GlobalUnfix(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2565 BOOL WINAPI GlobalUnlock(_In_ HGLOBAL);
2566 BOOL WINAPI GlobalUnWire(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2567 PVOID WINAPI GlobalWire(_In_ HGLOBAL); /* Obsolete: Has no effect. */
2568 #define HasOverlappedIoCompleted(lpOverlapped)  ((lpOverlapped)->Internal != STATUS_PENDING)
2569 PVOID WINAPI HeapAlloc(HANDLE,DWORD,SIZE_T);
2570 SIZE_T WINAPI HeapCompact(HANDLE,DWORD);
2571 HANDLE WINAPI HeapCreate(DWORD,SIZE_T,SIZE_T);
2572 BOOL WINAPI HeapDestroy(HANDLE);
2573 BOOL WINAPI HeapFree(HANDLE,DWORD,PVOID);
2574 BOOL WINAPI HeapLock(HANDLE);
2575 #if (_WIN32_WINNT >= 0x0501)
2576 BOOL WINAPI HeapQueryInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T,PSIZE_T);
2577 #endif
2578 PVOID WINAPI HeapReAlloc(HANDLE,DWORD,PVOID,SIZE_T);
2579 #if (_WIN32_WINNT >= 0x0501)
2580 BOOL WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
2581 #endif
2582 SIZE_T WINAPI HeapSize(HANDLE,DWORD,LPCVOID);
2583 BOOL WINAPI HeapUnlock(HANDLE);
2584 BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID);
2585 BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
2586 BOOL WINAPI ImpersonateAnonymousToken(HANDLE);
2587 BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
2588 BOOL WINAPI ImpersonateNamedPipeClient(HANDLE);
2589 BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
2590 BOOL WINAPI InitAtomTable(_In_ DWORD);
2591 BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD);
2592 #if (_WIN32_WINNT >= 0x0600)
2593 VOID WINAPI InitializeConditionVariable(PCONDITION_VARIABLE);
2594 #endif
2595 VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION);
2596 BOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION,DWORD);
2597 DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD);
2598 BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
2599 BOOL WINAPI InitializeSid (PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
2600 
2601 #if (_WIN32_WINNT >= 0x0600)
2602 VOID WINAPI InitializeSRWLock(PSRWLOCK);
2603 #endif
2604 
2605 BOOL WINAPI IsBadCodePtr(_In_opt_ FARPROC);
2606 BOOL WINAPI IsBadHugeReadPtr(_In_opt_ CONST VOID*, _In_ UINT_PTR);
2607 BOOL WINAPI IsBadHugeWritePtr(_In_opt_ PVOID, _In_ UINT_PTR);
2608 BOOL WINAPI IsBadReadPtr(_In_opt_ CONST VOID*, _In_ UINT_PTR);
2609 BOOL WINAPI IsBadStringPtrA(_In_opt_ LPCSTR, _In_ UINT_PTR);
2610 BOOL WINAPI IsBadStringPtrW(_In_opt_ LPCWSTR, _In_ UINT_PTR);
2611 BOOL WINAPI IsBadWritePtr(_In_opt_ PVOID, _In_ UINT_PTR);
2612 BOOL WINAPI IsDebuggerPresent(void);
2613 #if (_WIN32_WINNT >= 0x0501)
2614 BOOL WINAPI IsProcessInJob(HANDLE,HANDLE,PBOOL);
2615 #endif
2616 BOOL WINAPI IsProcessorFeaturePresent(DWORD);
2617 BOOL WINAPI IsSystemResumeAutomatic(void);
2618 
2619 BOOL
2620 WINAPI
2621 IsTextUnicode(
2622   _In_reads_bytes_(iSize) CONST VOID *lpv,
2623   _In_ int iSize,
2624   _Inout_opt_ LPINT lpiResult);
2625 
2626 #if (_WIN32_WINNT >= 0x0600)
2627 BOOL WINAPI IsThreadAFiber(VOID);
2628 #endif
2629 BOOL WINAPI IsValidAcl(PACL);
2630 BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
2631 BOOL WINAPI IsValidSid(PSID);
2632 #if (_WIN32_WINNT >= 0x0501)
2633 BOOL WINAPI IsWellKnownSid(PSID,WELL_KNOWN_SID_TYPE);
2634 BOOL WINAPI IsWow64Process(HANDLE,PBOOL);
2635 #endif
2636 void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION);
2637 #define LimitEmsPages(n)
2638 _Ret_maybenull_ HINSTANCE WINAPI LoadLibraryA(_In_ LPCSTR);
2639 _Ret_maybenull_ HINSTANCE WINAPI LoadLibraryW(_In_ LPCWSTR);
2640 HINSTANCE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
2641 HINSTANCE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
2642 DWORD WINAPI LoadModule(_In_ LPCSTR, _In_ PVOID);
2643 HGLOBAL WINAPI LoadResource(HINSTANCE,HRSRC);
2644 HLOCAL WINAPI LocalAlloc(UINT,SIZE_T);
2645 SIZE_T WINAPI LocalCompact(_In_ UINT); /* Obsolete: Has no effect. */
2646 #define LocalDiscard(m) (LocalReAlloc((m),0,LMEM_MOVEABLE))
2647 BOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *,LPFILETIME);
2648 UINT WINAPI LocalFlags(_In_ HLOCAL); /* Obsolete: Has no effect. */
2649 HLOCAL WINAPI LocalFree(HLOCAL);
2650 _Ret_maybenull_ HLOCAL WINAPI LocalHandle(_In_ LPCVOID);
2651 PVOID WINAPI LocalLock(HLOCAL);
2652 HLOCAL WINAPI LocalReAlloc(HLOCAL,SIZE_T,UINT);
2653 SIZE_T WINAPI LocalShrink(_In_ HLOCAL, _In_ UINT);  /* Obsolete: Has no effect. */
2654 SIZE_T WINAPI LocalSize(_In_ HLOCAL);
2655 BOOL WINAPI LocalUnlock(HLOCAL);
2656 BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
2657 BOOL WINAPI LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED);
2658 PVOID WINAPI LockResource(HGLOBAL);
2659 #define LockSegment(w) GlobalFix((HANDLE)(w)) /* Obsolete: Has no effect. */
2660 BOOL WINAPI LogonUserA(_In_ LPSTR, _In_opt_ LPSTR, _In_opt_ LPSTR, _In_ DWORD, _In_ DWORD, _Outptr_ PHANDLE);
2661 BOOL WINAPI LogonUserW(_In_ LPWSTR, _In_opt_ LPWSTR, _In_opt_ LPWSTR, _In_ DWORD, _In_ DWORD, _Outptr_ PHANDLE);
2662 
2663 _Success_(return != FALSE)
2664 BOOL
2665 WINAPI
2666 LogonUserExA(
2667   _In_ LPSTR lpszUsername,
2668   _In_opt_ LPSTR lpszDomain,
2669   _In_opt_ LPSTR lpszPassword,
2670   _In_ DWORD dwLogonType,
2671   _In_ DWORD dwLogonProvider,
2672   _Out_opt_ PHANDLE phToken,
2673   _Out_opt_ PSID *ppLogonSid,
2674   _Out_opt_ PVOID *ppProfileBuffer,
2675   _Out_opt_ LPDWORD pdwProfileLength,
2676   _Out_opt_ PQUOTA_LIMITS pQuotaLimits);
2677 
2678 _Success_(return != FALSE)
2679 BOOL
2680 WINAPI
2681 LogonUserExW(
2682   _In_ LPWSTR lpszUsername,
2683   _In_opt_ LPWSTR lpszDomain,
2684   _In_opt_ LPWSTR lpszPassword,
2685   _In_ DWORD dwLogonType,
2686   _In_ DWORD dwLogonProvider,
2687   _Out_opt_ PHANDLE phToken,
2688   _Out_opt_ PSID *ppLogonSid,
2689   _Out_opt_ PVOID *ppProfileBuffer,
2690   _Out_opt_ LPDWORD pdwProfileLength,
2691   _Out_opt_ PQUOTA_LIMITS pQuotaLimits);
2692 
2693 _Success_(return != FALSE)
2694 BOOL
2695 WINAPI
2696 LookupAccountNameA(
2697   _In_opt_ LPCSTR lpSystemName,
2698   _In_ LPCSTR lpAccountName,
2699   _Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
2700   _Inout_ LPDWORD cbSid,
2701   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
2702   _Inout_ LPDWORD cchReferencedDomainName,
2703   _Out_ PSID_NAME_USE peUse);
2704 
2705 _Success_(return != FALSE)
2706 BOOL
2707 WINAPI
2708 LookupAccountNameW(
2709   _In_opt_ LPCWSTR lpSystemName,
2710   _In_ LPCWSTR lpAccountName,
2711   _Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
2712   _Inout_ LPDWORD cbSid,
2713   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
2714   _Inout_ LPDWORD cchReferencedDomainName,
2715   _Out_ PSID_NAME_USE peUse);
2716 
2717 _Success_(return != FALSE)
2718 BOOL
2719 WINAPI
2720 LookupAccountSidA(
2721   _In_opt_ LPCSTR lpSystemName,
2722   _In_ PSID Sid,
2723   _Out_writes_to_opt_(*cchName, *cchName + 1) LPSTR Name,
2724   _Inout_ LPDWORD cchName,
2725   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
2726   _Inout_ LPDWORD cchReferencedDomainName,
2727   _Out_ PSID_NAME_USE peUse);
2728 
2729 _Success_(return != FALSE)
2730 BOOL
2731 WINAPI
2732 LookupAccountSidW(
2733   _In_opt_ LPCWSTR lpSystemName,
2734   _In_ PSID Sid,
2735   _Out_writes_to_opt_(*cchName, *cchName + 1) LPWSTR Name,
2736   _Inout_  LPDWORD cchName,
2737   _Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
2738   _Inout_ LPDWORD cchReferencedDomainName,
2739   _Out_ PSID_NAME_USE peUse);
2740 
2741 _Success_(return != FALSE)
2742 BOOL
2743 WINAPI
2744 LookupPrivilegeDisplayNameA(
2745   _In_opt_ LPCSTR lpSystemName,
2746   _In_ LPCSTR lpName,
2747   _Out_writes_to_opt_(*cchDisplayName, *cchDisplayName + 1) LPSTR lpDisplayName,
2748   _Inout_ LPDWORD cchDisplayName,
2749   _Out_ LPDWORD lpLanguageId);
2750 
2751 _Success_(return != FALSE)
2752 BOOL
2753 WINAPI
2754 LookupPrivilegeDisplayNameW(
2755   _In_opt_ LPCWSTR lpSystemName,
2756   _In_ LPCWSTR lpName,
2757   _Out_writes_to_opt_(*cchDisplayName, *cchDisplayName + 1) LPWSTR lpDisplayName,
2758   _Inout_ LPDWORD cchDisplayName,
2759   _Out_ LPDWORD lpLanguageId);
2760 
2761 _Success_(return != FALSE)
2762 BOOL
2763 WINAPI
2764 LookupPrivilegeNameA(
2765   _In_opt_ LPCSTR lpSystemName,
2766   _In_ PLUID lpLuid,
2767   _Out_writes_to_opt_(*cchName, *cchName + 1) LPSTR lpName,
2768   _Inout_ LPDWORD cchName);
2769 
2770 _Success_(return != FALSE)
2771 BOOL
2772 WINAPI
2773 LookupPrivilegeNameW(
2774   _In_opt_ LPCWSTR lpSystemName,
2775   _In_ PLUID lpLuid,
2776   _Out_writes_to_opt_(*cchName, *cchName + 1) LPWSTR lpName,
2777   _Inout_ LPDWORD cchName);
2778 
2779 BOOL WINAPI LookupPrivilegeValueA(_In_opt_ LPCSTR, _In_ LPCSTR, _Out_ PLUID);
2780 BOOL WINAPI LookupPrivilegeValueW(_In_opt_ LPCWSTR, _In_ LPCWSTR, _Out_ PLUID);
2781 
2782 LPSTR
2783 WINAPI
2784 lstrcatA(
2785   _Inout_updates_z_(_String_length_(lpString1) + _String_length_(lpString2) + 1) LPSTR lpString1,
2786   _In_ LPCSTR lpString2);
2787 
2788 LPWSTR
2789 WINAPI
2790 lstrcatW(
2791   _Inout_updates_z_(_String_length_(lpString1) + _String_length_(lpString2) + 1) LPWSTR lpString1,
2792   _In_ LPCWSTR lpString2);
2793 
2794 int WINAPI lstrcmpA(LPCSTR,LPCSTR);
2795 int WINAPI lstrcmpiA(LPCSTR,LPCSTR);
2796 int WINAPI lstrcmpiW( LPCWSTR,LPCWSTR);
2797 int WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
2798 
2799 LPSTR
2800 WINAPI
2801 lstrcpyA(
2802   _Out_writes_(_String_length_(lpString2) + 1) LPSTR lpString1,
2803   _In_ LPCSTR lpString2);
2804 
2805 LPWSTR
2806 WINAPI
2807 lstrcpyW(
2808   _Out_writes_(_String_length_(lpString2) + 1) LPWSTR lpString1,
2809   _In_ LPCWSTR lpString2);
2810 
2811 LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,int);
2812 LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,int);
2813 int WINAPI lstrlenA(LPCSTR);
2814 int WINAPI lstrlenW(LPCWSTR);
2815 BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD);
2816 #define MakeProcInstance(p,i) (p)
2817 BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD);
2818 VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING);
2819 PVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,SIZE_T);
2820 PVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,SIZE_T,PVOID);
2821 BOOL WINAPI MoveFileA(_In_ LPCSTR, _In_ LPCSTR);
2822 BOOL WINAPI MoveFileW(_In_ LPCWSTR, _In_ LPCWSTR);
2823 BOOL WINAPI MoveFileExA(_In_ LPCSTR, _In_opt_ LPCSTR, _In_ DWORD);
2824 BOOL WINAPI MoveFileExW(_In_ LPCWSTR, _In_opt_ LPCWSTR, _In_ DWORD);
2825 BOOL WINAPI MoveFileWithProgressA(_In_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_ DWORD);
2826 BOOL WINAPI MoveFileWithProgressW(_In_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPPROGRESS_ROUTINE, _In_opt_ LPVOID, _In_ DWORD);
2827 int WINAPI MulDiv(_In_ int, _In_ int, _In_ int);
2828 BOOL WINAPI NotifyChangeEventLog(_In_ HANDLE, _In_ HANDLE);
2829 BOOL WINAPI ObjectCloseAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ BOOL);
2830 BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,PVOID,BOOL);
2831 BOOL WINAPI ObjectDeleteAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ BOOL);
2832 BOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,PVOID,BOOL);
2833 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);
2834 BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,PVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
2835 BOOL WINAPI ObjectPrivilegeAuditAlarmA(_In_ LPCSTR, _In_ PVOID, _In_ HANDLE, _In_ DWORD, _In_ PPRIVILEGE_SET, _In_ BOOL);
2836 BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
2837 HANDLE WINAPI OpenBackupEventLogA(_In_opt_ LPCSTR, _In_ LPCSTR);
2838 HANDLE WINAPI OpenBackupEventLogW(_In_opt_ LPCWSTR, _In_ LPCWSTR);
2839 HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
2840 HANDLE WINAPI OpenEventLogA(_In_opt_ LPCSTR, _In_ LPCSTR);
2841 HANDLE WINAPI OpenEventLogW(_In_opt_ LPCWSTR, _In_ LPCWSTR);
2842 HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
2843 HFILE WINAPI OpenFile(_In_ LPCSTR, _Inout_ LPOFSTRUCT, _In_ UINT);
2844 #if (_WIN32_WINNT >= 0x0600)
2845 HANDLE WINAPI OpenFileById(_In_ HANDLE, _In_ LPFILE_ID_DESCRIPTOR, _In_ DWORD, _In_ DWORD, _In_opt_ LPSECURITY_ATTRIBUTES, _In_ DWORD);
2846 #endif
2847 HANDLE WINAPI OpenFileMappingA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2848 HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
2849 _Ret_maybenull_ HANDLE WINAPI OpenMutexA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2850 HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
2851 HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD);
2852 BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
2853 _Ret_maybenull_ HANDLE WINAPI OpenSemaphoreA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2854 HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
2855 #if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0490)
2856 HANDLE WINAPI OpenThread(DWORD,BOOL,DWORD);
2857 #endif
2858 BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
2859 _Ret_maybenull_ HANDLE WINAPI OpenWaitableTimerA(_In_ DWORD, _In_ BOOL, _In_ LPCSTR);
2860 HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
2861 WINBASEAPI void WINAPI OutputDebugStringA(LPCSTR);
2862 WINBASEAPI void WINAPI OutputDebugStringW(LPCWSTR);
2863 BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD);
2864 BOOL WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,ULONG_PTR,LPOVERLAPPED);
2865 DWORD WINAPI PrepareTape(_In_ HANDLE, _In_ DWORD, _In_ BOOL);
2866 BOOL WINAPI PrivilegeCheck (HANDLE,PPRIVILEGE_SET,PBOOL);
2867 BOOL WINAPI PrivilegedServiceAuditAlarmA(_In_ LPCSTR, _In_ LPCSTR, _In_ HANDLE, _In_ PPRIVILEGE_SET, _In_ BOOL);
2868 BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL);
2869 #if (_WIN32_WINNT >= 0x0500)
2870 BOOL WINAPI ProcessIdToSessionId(DWORD,DWORD*);
2871 #endif
2872 BOOL WINAPI PulseEvent(HANDLE);
2873 BOOL WINAPI PurgeComm(_In_ HANDLE, _In_ DWORD);
2874 
2875 #if (_WIN32_WINNT >= 0x0501)
2876 BOOL
2877 WINAPI
2878 QueryActCtxW(
2879   _In_ DWORD dwFlags,
2880   _In_ HANDLE hActCtx,
2881   _In_opt_ PVOID pvSubInstance,
2882   _In_ ULONG ulInfoClass,
2883   _Out_writes_bytes_to_opt_(cbBuffer, *pcbWrittenOrRequired) PVOID pvBuffer,
2884   _In_ SIZE_T cbBuffer,
2885   _Out_opt_ SIZE_T *pcbWrittenOrRequired);
2886 #endif
2887 
2888 DWORD
2889 WINAPI
2890 QueryDosDeviceA(
2891   _In_opt_ LPCSTR lpDeviceName,
2892   _Out_writes_to_opt_(ucchMax, return) LPSTR lpTargetPath,
2893   _In_ DWORD ucchMax);
2894 
2895 DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
2896 #if (_WIN32_WINNT >= 0x0501)
2897 BOOL WINAPI QueryMemoryResourceNotification(HANDLE,PBOOL);
2898 #endif
2899 BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER);
2900 BOOL WINAPI QueryPerformanceFrequency(PLARGE_INTEGER);
2901 #if (_WIN32_WINNT >= 0x0600)
2902 VOID WINAPI QuerySecurityAccessMask(SECURITY_INFORMATION,LPDWORD);
2903 #endif
2904 DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
2905 #if (_WIN32_WINNT >= 0x0500)
2906 BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
2907 #endif
2908 void WINAPI RaiseException(DWORD,DWORD,DWORD,const ULONG_PTR*);
2909 
2910 BOOL
2911 WINAPI
2912 QueryInformationJobObject(
2913   _In_opt_ HANDLE hJob,
2914   _In_ JOBOBJECTINFOCLASS JobObjectInformationClass,
2915   _Out_writes_bytes_to_(cbJobObjectInformationLength, *lpReturnLength) LPVOID lpJobObjectInformation,
2916   _In_ DWORD cbJobObjectInformationLength,
2917   _Out_opt_ LPDWORD lpReturnLength);
2918 
2919 BOOL
2920 WINAPI
2921 ReadDirectoryChangesW(
2922   _In_ HANDLE hDirectory,
2923   _Out_writes_bytes_to_(nBufferLength, *lpBytesReturned) LPVOID lpBuffer,
2924   _In_ DWORD nBufferLength,
2925   _In_ BOOL bWatchSubtree,
2926   _In_ DWORD dwNotifyFilter,
2927   _Out_opt_ LPDWORD lpBytesReturned,
2928   _Inout_opt_ LPOVERLAPPED lpOverlapped,
2929   _In_opt_ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
2930 
2931 BOOL
2932 WINAPI
2933 ReadEventLogA(
2934   _In_ HANDLE hEventLog,
2935   _In_ DWORD dwReadFlags,
2936   _In_ DWORD dwRecordOffset,
2937   _Out_writes_bytes_to_(nNumberOfBytesToRead, *pnBytesRead) LPVOID lpBuffer,
2938   _In_ DWORD nNumberOfBytesToRead,
2939   _Out_ DWORD *pnBytesRead,
2940   _Out_ DWORD *pnMinNumberOfBytesNeeded);
2941 
2942 BOOL
2943 WINAPI
2944 ReadEventLogW(
2945   _In_ HANDLE hEventLog,
2946   _In_ DWORD dwReadFlags,
2947   _In_ DWORD dwRecordOffset,
2948   _Out_writes_bytes_to_(nNumberOfBytesToRead, *pnBytesRead) LPVOID lpBuffer,
2949   _In_ DWORD nNumberOfBytesToRead,
2950   _Out_ DWORD *pnBytesRead,
2951   _Out_ DWORD *pnMinNumberOfBytesNeeded);
2952 
2953 BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED);
2954 BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2955 BOOL WINAPI ReadFileScatter(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
2956 BOOL WINAPI ReadProcessMemory(HANDLE,LPCVOID,LPVOID,SIZE_T,PSIZE_T);
2957 #if (_WIN32_WINNT >= 0x0600)
2958 VOID WINAPI RecoveryFinished(BOOL);
2959 HRESULT WINAPI RecoveryInProgress(OUT PBOOL);
2960 HRESULT WINAPI RegisterApplicationRecoveryCallback(_In_ APPLICATION_RECOVERY_CALLBACK, _In_opt_ PVOID, _In_ DWORD, _In_ DWORD);
2961 HRESULT WINAPI RegisterApplicationRestart(_In_opt_ PCWSTR, _In_ DWORD);
2962 #endif
2963 HANDLE WINAPI RegisterEventSourceA(_In_opt_ LPCSTR, _In_ LPCSTR);
2964 HANDLE WINAPI RegisterEventSourceW(_In_opt_ LPCWSTR, _In_ LPCWSTR);
2965 #if (_WIN32_WINNT >= 0x0500)
2966 BOOL WINAPI RegisterWaitForSingleObject(_Outptr_ PHANDLE, _In_ HANDLE, _In_ WAITORTIMERCALLBACK, _In_opt_ PVOID, _In_ ULONG, _In_ ULONG);
2967 HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2968 #endif
2969 #if (_WIN32_WINNT >= 0x0501)
2970 void WINAPI ReleaseActCtx(_Inout_ HANDLE);
2971 #endif
2972 BOOL WINAPI ReleaseMutex(HANDLE);
2973 BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
2974 #if (_WIN32_WINNT >= 0x0600)
2975 VOID WINAPI ReleaseSRWLockExclusive(PSRWLOCK);
2976 VOID WINAPI ReleaseSRWLockShared(PSRWLOCK);
2977 #endif
2978 BOOL WINAPI RemoveDirectoryA(LPCSTR);
2979 BOOL WINAPI RemoveDirectoryW(LPCWSTR);
2980 #if (_WIN32_WINNT >= 0x0500)
2981 ULONG WINAPI RemoveVectoredExceptionHandler(_In_ PVOID);
2982 ULONG WINAPI RemoveVectoredContinueHandler(_In_ PVOID);
2983 #endif
2984 #if (_WIN32_WINNT >= 0x0500)
2985 BOOL WINAPI ReplaceFileA(_In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPCSTR, _In_ DWORD, _Reserved_ LPVOID, _Reserved_ LPVOID);
2986 BOOL WINAPI ReplaceFileW(_In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPCWSTR, _In_ DWORD, _Reserved_ LPVOID, _Reserved_ LPVOID);
2987 #endif
2988 
2989 BOOL
2990 WINAPI
2991 ReportEventA(
2992   _In_ HANDLE hEventLog,
2993   _In_ WORD wType,
2994   _In_ WORD wCategory,
2995   _In_ DWORD dwEventID,
2996   _In_opt_ PSID lpUserSid,
2997   _In_ WORD wNumStrings,
2998   _In_ DWORD dwDataSize,
2999   _In_reads_opt_(wNumStrings) LPCSTR *lpStrings,
3000   _In_reads_bytes_opt_(dwDataSize) LPVOID lpRawData);
3001 
3002 BOOL
3003 WINAPI
3004 ReportEventW(
3005   _In_ HANDLE hEventLog,
3006   _In_ WORD wType,
3007   _In_ WORD wCategory,
3008   _In_ DWORD dwEventID,
3009   _In_opt_ PSID lpUserSid,
3010   _In_ WORD wNumStrings,
3011   _In_ DWORD dwDataSize,
3012   _In_reads_opt_(wNumStrings) LPCWSTR *lpStrings,
3013   _In_reads_bytes_opt_(dwDataSize) LPVOID lpRawData);
3014 
3015 BOOL WINAPI ResetEvent(HANDLE);
3016 UINT WINAPI ResetWriteWatch(LPVOID,SIZE_T);
3017 #if (_WIN32_WINNT >= 0x0510)
3018 VOID WINAPI RestoreLastError(_In_ DWORD);
3019 #endif
3020 DWORD WINAPI ResumeThread(HANDLE);
3021 BOOL WINAPI RevertToSelf(void);
3022 
3023 _Success_(return != 0 && return < nBufferLength)
3024 DWORD
3025 WINAPI
3026 SearchPathA(
3027   _In_opt_ LPCSTR lpPath,
3028   _In_ LPCSTR lpFileName,
3029   _In_opt_ LPCSTR lpExtension,
3030   _In_ DWORD nBufferLength,
3031   _Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer,
3032   _Out_opt_ LPSTR *lpFilePart);
3033 
3034 DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
3035 BOOL WINAPI SetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
3036 BOOL WINAPI SetCommBreak(_In_ HANDLE);
3037 
3038 BOOL
3039 WINAPI
3040 SetCommConfig(
3041   _In_ HANDLE hCommDev,
3042   _In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
3043   _In_ DWORD dwSize);
3044 
3045 BOOL WINAPI SetCommMask(_In_ HANDLE, _In_ DWORD);
3046 BOOL WINAPI SetCommState(_In_ HANDLE, _In_ LPDCB);
3047 BOOL WINAPI SetCommTimeouts(_In_ HANDLE, _In_ LPCOMMTIMEOUTS);
3048 BOOL WINAPI SetComputerNameA(_In_ LPCSTR);
3049 BOOL WINAPI SetComputerNameW(_In_ LPCWSTR);
3050 #if (_WIN32_WINNT >= 0x0500)
3051 BOOL WINAPI SetComputerNameExA(_In_ COMPUTER_NAME_FORMAT, _In_ LPCSTR);
3052 BOOL WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT,LPCWSTR);
3053 #endif
3054 BOOL WINAPI SetCurrentDirectoryA(LPCSTR);
3055 BOOL WINAPI SetCurrentDirectoryW(LPCWSTR);
3056 
3057 BOOL
3058 WINAPI
3059 SetDefaultCommConfigA(
3060   _In_ LPCSTR lpszName,
3061   _In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
3062   _In_ DWORD dwSize);
3063 
3064 BOOL
3065 WINAPI
3066 SetDefaultCommConfigW(
3067   _In_ LPCWSTR lpszName,
3068   _In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
3069   _In_ DWORD dwSize);
3070 
3071 #if (_WIN32_WINNT >= 0x0502)
3072 BOOL WINAPI SetDllDirectoryA(_In_opt_ LPCSTR);
3073 BOOL WINAPI SetDllDirectoryW(_In_opt_ LPCWSTR);
3074 #endif
3075 BOOL WINAPI SetEndOfFile(HANDLE);
3076 BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
3077 BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
3078 UINT WINAPI SetErrorMode(UINT);
3079 BOOL WINAPI SetEvent(HANDLE);
3080 VOID WINAPI SetFileApisToANSI(void);
3081 VOID WINAPI SetFileApisToOEM(void);
3082 BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
3083 #if (_WIN32_WINNT >= 0x0600)
3084 BOOL WINAPI SetFileAttributesByHandle(HANDLE,DWORD,DWORD);
3085 #endif
3086 BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
3087 #if (_WIN32_WINNT >= 0x0600)
3088 BOOL WINAPI SetFileBandwidthReservation(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ BOOL, _Out_ LPDWORD, _Out_ LPDWORD);
3089 BOOL WINAPI SetFileCompletionNotificationModes(_In_ HANDLE, _In_ UCHAR);
3090 #endif
3091 DWORD WINAPI SetFilePointer(HANDLE,LONG,PLONG,DWORD);
3092 BOOL WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,PLARGE_INTEGER,DWORD);
3093 BOOL WINAPI SetFileSecurityA(_In_ LPCSTR, _In_ SECURITY_INFORMATION, _In_ PSECURITY_DESCRIPTOR);
3094 BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
3095 #if (_WIN32_WINNT >= 0x0501)
3096 BOOL WINAPI SetFileShortNameA(_In_ HANDLE, _In_ LPCSTR);
3097 BOOL WINAPI SetFileShortNameW(_In_ HANDLE, _In_ LPCWSTR);
3098 #endif
3099 BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
3100 #if (_WIN32_WINNT >= 0x0501)
3101 BOOL WINAPI SetFileValidData(HANDLE,LONGLONG);
3102 #endif
3103 
3104 #if (_WIN32_WINNT >= 0x0502)
3105 
3106 BOOL
3107 WINAPI
3108 SetFirmwareEnvironmentVariableA(
3109   _In_ LPCSTR lpName,
3110   _In_ LPCSTR lpGuid,
3111   _In_reads_bytes_opt_(nSize) PVOID pValue,
3112   _In_ DWORD nSize);
3113 
3114 BOOL
3115 WINAPI
3116 SetFirmwareEnvironmentVariableW(
3117   _In_ LPCWSTR lpName,
3118   _In_ LPCWSTR lpGuid,
3119   _In_reads_bytes_opt_(nSize) PVOID pValue,
3120   _In_ DWORD nSize);
3121 
3122 #endif
3123 
3124 UINT WINAPI SetHandleCount(UINT);
3125 BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
3126 
3127 BOOL
3128 WINAPI
3129 SetInformationJobObject(
3130   _In_ HANDLE hJob,
3131   _In_ JOBOBJECTINFOCLASS JobObjectInformationClass,
3132   _In_reads_bytes_(cbJobObjectInformationLength) LPVOID lpJobObjectInformation,
3133   _In_ DWORD cbJobObjectInformationLength);
3134 
3135 BOOL WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
3136 void WINAPI SetLastError(DWORD);
3137 void WINAPI SetLastErrorEx(DWORD,DWORD);
3138 BOOL WINAPI SetLocalTime(const SYSTEMTIME*);
3139 BOOL WINAPI SetMailslotInfo(_In_ HANDLE, _In_ DWORD);
3140 BOOL WINAPI SetNamedPipeHandleState(HANDLE,PDWORD,PDWORD,PDWORD);
3141 BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
3142 BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR *,PGENERIC_MAPPING,HANDLE);
3143 BOOL WINAPI SetProcessAffinityMask(_In_ HANDLE, _In_ DWORD_PTR);
3144 BOOL WINAPI SetProcessPriorityBoost(_In_ HANDLE, _In_ BOOL);
3145 BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD);
3146 BOOL WINAPI SetProcessWorkingSetSize(_In_ HANDLE, _In_ SIZE_T, _In_ SIZE_T);
3147 #if (_WIN32_WINNT >= 0x0600)
3148 VOID WINAPI SetSecurityAccessMask(SECURITY_INFORMATION,LPDWORD);
3149 #endif
3150 BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
3151 BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
3152 BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
3153 BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
3154 DWORD WINAPI SetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR,PUCHAR);
3155 BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
3156 BOOL WINAPI SetStdHandle(_In_ DWORD, _In_ HANDLE);
3157 #define SetSwapAreaSize(w) (w)
3158 BOOL WINAPI SetSystemPowerState(_In_ BOOL, _In_ BOOL);
3159 BOOL WINAPI SetSystemTime(const SYSTEMTIME*);
3160 BOOL WINAPI SetSystemTimeAdjustment(_In_ DWORD, _In_ BOOL);
3161 DWORD WINAPI SetTapeParameters(_In_ HANDLE, _In_ DWORD, _In_ PVOID);
3162 DWORD WINAPI SetTapePosition(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ BOOL);
3163 DWORD_PTR WINAPI SetThreadAffinityMask(_In_ HANDLE, _In_ DWORD_PTR);
3164 BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT*);
3165 DWORD WINAPI SetThreadIdealProcessor(_In_ HANDLE, _In_ DWORD);
3166 BOOL WINAPI SetThreadPriority(HANDLE,int);
3167 BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
3168 BOOL WINAPI SetThreadToken (PHANDLE,HANDLE);
3169 BOOL WINAPI SetTimeZoneInformation(const TIME_ZONE_INFORMATION *);
3170 BOOL WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD);
3171 LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
3172 BOOL WINAPI SetupComm(_In_ HANDLE, _In_ DWORD, _In_ DWORD);
3173 BOOL WINAPI SetVolumeLabelA(_In_opt_ LPCSTR, _In_opt_ LPCSTR);
3174 BOOL WINAPI SetVolumeLabelW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3175 #if (_WIN32_WINNT >= 0x0500)
3176 BOOL WINAPI SetVolumeMountPointA(_In_ LPCSTR, _In_ LPCSTR);
3177 BOOL WINAPI SetVolumeMountPointW(_In_ LPCWSTR, _In_ LPCWSTR);
3178 #endif
3179 BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,PVOID,BOOL);
3180 DWORD WINAPI SignalObjectAndWait(_In_ HANDLE, _In_ HANDLE, _In_ DWORD, _In_ BOOL);
3181 DWORD WINAPI SizeofResource(HINSTANCE,HRSRC);
3182 WINBASEAPI void WINAPI Sleep(DWORD);
3183 #if (_WIN32_WINNT >= 0x0600)
3184 BOOL WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE,PCRITICAL_SECTION,DWORD);
3185 BOOL WINAPI SleepConditionVariableSRW(PCONDITION_VARIABLE,PSRWLOCK,DWORD,ULONG);
3186 #endif
3187 DWORD WINAPI SleepEx(DWORD,BOOL);
3188 DWORD WINAPI SuspendThread(HANDLE);
3189 void WINAPI SwitchToFiber(_In_ PVOID);
3190 BOOL WINAPI SwitchToThread(void);
3191 BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
3192 BOOL WINAPI SystemTimeToTzSpecificLocalTime(CONST TIME_ZONE_INFORMATION*,CONST SYSTEMTIME*,LPSYSTEMTIME);
3193 BOOL WINAPI TerminateProcess(HANDLE,UINT);
3194 BOOL WINAPI TerminateThread(HANDLE,DWORD);
3195 DWORD WINAPI TlsAlloc(VOID);
3196 BOOL WINAPI TlsFree(DWORD);
3197 PVOID WINAPI TlsGetValue(DWORD);
3198 BOOL WINAPI TlsSetValue(DWORD,PVOID);
3199 BOOL WINAPI TransactNamedPipe(HANDLE,PVOID,DWORD,PVOID,DWORD,PDWORD,LPOVERLAPPED);
3200 BOOL WINAPI TransmitCommChar(_In_ HANDLE, _In_ char);
3201 BOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION);
3202 BOOL WINAPI TzSpecificLocalTimeToSystemTime(LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME);
3203 LONG WINAPI UnhandledExceptionFilter(LPEXCEPTION_POINTERS);
3204 BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
3205 BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
3206 #define UnlockResource(h) (h)
3207 #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) /* Obsolete: Has no effect. */
3208 BOOL WINAPI UnmapViewOfFile(LPCVOID);
3209 #if (_WIN32_WINNT >= 0x0500)
3210 _Must_inspect_result_ BOOL WINAPI UnregisterWait(_In_ HANDLE);
3211 BOOL WINAPI UnregisterWaitEx(HANDLE,HANDLE);
3212 #endif
3213 
3214 BOOL
3215 WINAPI
3216 UpdateResourceA(
3217   _In_ HANDLE hUpdate,
3218   _In_ LPCSTR lpType,
3219   _In_ LPCSTR lpName,
3220   _In_ WORD wLanguage,
3221   _In_reads_bytes_opt_(cb) LPVOID lpData,
3222   _In_ DWORD cb);
3223 
3224 BOOL
3225 WINAPI
3226 UpdateResourceW(
3227   _In_ HANDLE hUpdate,
3228   _In_ LPCWSTR lpType,
3229   _In_ LPCWSTR lpName,
3230   _In_ WORD wLanguage,
3231   _In_reads_bytes_opt_(cb) LPVOID lpData,
3232   _In_ DWORD cb);
3233 
3234 BOOL WINAPI VerifyVersionInfoA(_Inout_ LPOSVERSIONINFOEXA, _In_ DWORD, _In_ DWORDLONG);
3235 BOOL WINAPI VerifyVersionInfoW(_Inout_ LPOSVERSIONINFOEXW, _In_ DWORD, _In_ DWORDLONG);
3236 PVOID WINAPI VirtualAlloc(PVOID,SIZE_T,DWORD,DWORD);
3237 PVOID WINAPI VirtualAllocEx(HANDLE,PVOID,SIZE_T,DWORD,DWORD);
3238 BOOL WINAPI VirtualFree(PVOID,SIZE_T,DWORD);
3239 BOOL WINAPI VirtualFreeEx(HANDLE,PVOID,SIZE_T,DWORD);
3240 BOOL WINAPI VirtualLock(PVOID,SIZE_T);
3241 BOOL WINAPI VirtualProtect(PVOID,SIZE_T,DWORD,PDWORD);
3242 BOOL WINAPI VirtualProtectEx(HANDLE,PVOID,SIZE_T,DWORD,PDWORD);
3243 SIZE_T WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
3244 SIZE_T WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
3245 BOOL WINAPI VirtualUnlock(PVOID,SIZE_T);
3246 BOOL WINAPI WaitCommEvent(_In_ HANDLE, _Inout_ PDWORD, _Inout_opt_ LPOVERLAPPED);
3247 BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
3248 
3249 DWORD
3250 WINAPI
3251 WaitForMultipleObjects(
3252   _In_ DWORD nCount,
3253   _In_reads_(nCount) CONST HANDLE *lpHandles,
3254   _In_ BOOL bWaitAll,
3255   _In_ DWORD dwMilliseconds);
3256 
3257 DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
3258 DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
3259 DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
3260 BOOL WINAPI WaitNamedPipeA(_In_ LPCSTR, _In_ DWORD);
3261 BOOL WINAPI WaitNamedPipeW(_In_ LPCWSTR, _In_ DWORD);
3262 #if (_WIN32_WINNT >= 0x0600)
3263 VOID WINAPI WakeConditionVariable(PCONDITION_VARIABLE);
3264 VOID WINAPI WakeAllConditionVariable(PCONDITION_VARIABLE);
3265 #endif
3266 BOOL WINAPI WinLoadTrustProvider(GUID*);
3267 BOOL WINAPI Wow64DisableWow64FsRedirection(PVOID*);
3268 BOOLEAN WINAPI Wow64EnableWow64FsRedirection(_In_ BOOLEAN);
3269 BOOL WINAPI Wow64RevertWow64FsRedirection(PVOID);
3270 DWORD WINAPI WriteEncryptedFileRaw(_In_ PFE_IMPORT_FUNC, _In_opt_ PVOID, _In_ PVOID);
3271 BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
3272 BOOL WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
3273 BOOL WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
3274 BOOL WINAPI WritePrivateProfileSectionA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR);
3275 BOOL WINAPI WritePrivateProfileSectionW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3276 BOOL WINAPI WritePrivateProfileStringA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR);
3277 BOOL WINAPI WritePrivateProfileStringW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3278 
3279 BOOL
3280 WINAPI
3281 WritePrivateProfileStructA(
3282   _In_ LPCSTR lpszSection,
3283   _In_ LPCSTR lpszKey,
3284   _In_reads_bytes_opt_(uSizeStruct) LPVOID lpStruct,
3285   _In_ UINT uSizeStruct,
3286   _In_opt_ LPCSTR szFile);
3287 
3288 BOOL
3289 WINAPI
3290 WritePrivateProfileStructW(
3291   _In_ LPCWSTR lpszSection,
3292   _In_ LPCWSTR lpszKey,
3293   _In_reads_bytes_opt_(uSizeStruct) LPVOID lpStruct,
3294   _In_ UINT uSizeStruct,
3295   _In_opt_ LPCWSTR szFile);
3296 
3297 BOOL WINAPI WriteProcessMemory(HANDLE,LPVOID,LPCVOID,SIZE_T,SIZE_T*);
3298 BOOL WINAPI WriteProfileSectionA(_In_ LPCSTR, _In_ LPCSTR);
3299 BOOL WINAPI WriteProfileSectionW(_In_ LPCWSTR, _In_ LPCWSTR);
3300 BOOL WINAPI WriteProfileStringA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR);
3301 BOOL WINAPI WriteProfileStringW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR);
3302 DWORD WINAPI WriteTapemark(_In_ HANDLE, _In_ DWORD, _In_ DWORD, _In_ BOOL);
3303 
3304 #define Yield()
3305 
3306 #if (_WIN32_WINNT >= 0x0501)
3307 DWORD WINAPI WTSGetActiveConsoleSessionId(VOID);
3308 BOOL WINAPI ZombifyActCtx(_Inout_ HANDLE);
3309 #endif
3310 
3311 #if (_WIN32_WINNT >= 0x0500)
3312 
3313 BOOL
3314 WINAPI
3315 AllocateUserPhysicalPages(
3316   _In_ HANDLE hProcess,
3317   _Inout_ PULONG_PTR NumberOfPages,
3318   _Out_writes_to_(*NumberOfPages, *NumberOfPages) PULONG_PTR PageArray);
3319 
3320 BOOL
3321 WINAPI
3322 FreeUserPhysicalPages(
3323   _In_ HANDLE hProcess,
3324   _Inout_ PULONG_PTR NumberOfPages,
3325   _In_reads_(*NumberOfPages) PULONG_PTR PageArray);
3326 
3327 BOOL
3328 WINAPI
3329 MapUserPhysicalPages(
3330   _In_ PVOID VirtualAddress,
3331   _In_ ULONG_PTR NumberOfPages,
3332   _In_reads_opt_(NumberOfPages) PULONG_PTR PageArray);
3333 
3334 BOOL
3335 WINAPI
3336 MapUserPhysicalPagesScatter(
3337   _In_reads_(NumberOfPages) PVOID *VirtualAddresses,
3338   _In_ ULONG_PTR NumberOfPages,
3339   _In_reads_opt_(NumberOfPages) PULONG_PTR PageArray);
3340 
3341 #endif
3342 
3343 #ifdef UNICODE
3344 typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO;
3345 typedef WIN32_FIND_DATAW WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
3346 typedef HW_PROFILE_INFOW HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
3347 typedef ENUMRESLANGPROCW ENUMRESLANGPROC;
3348 typedef ENUMRESNAMEPROCW ENUMRESNAMEPROC;
3349 typedef ENUMRESTYPEPROCW ENUMRESTYPEPROC;
3350 #if (_WIN32_WINNT >= 0x0501)
3351 typedef ACTCTXW ACTCTX,*PACTCTX;
3352 typedef PCACTCTXW PCACTCTX;
3353 #endif
3354 #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
3355 #define AddAtom AddAtomW
3356 #define BackupEventLog BackupEventLogW
3357 #define BeginUpdateResource BeginUpdateResourceW
3358 #define BuildCommDCB BuildCommDCBW
3359 #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
3360 #define CallNamedPipe CallNamedPipeW
3361 #if (_WIN32_WINNT >= 0x0501)
3362 #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W
3363 #endif
3364 #define ClearEventLog ClearEventLogW
3365 #define CommConfigDialog CommConfigDialogW
3366 #define CopyFile CopyFileW
3367 #define CopyFileEx CopyFileExW
3368 #if (_WIN32_WINNT >= 0x0501)
3369 #define CreateActCtx CreateActCtxW
3370 #endif
3371 #define CreateDirectory CreateDirectoryW
3372 #define CreateDirectoryEx CreateDirectoryExW
3373 #define CreateEvent CreateEventW
3374 #define CreateFile CreateFileW
3375 #define CreateFileMapping CreateFileMappingW
3376 #if (_WIN32_WINNT >= 0x0500)
3377 #define CreateHardLink CreateHardLinkW
3378 #define CreateJobObject CreateJobObjectW
3379 #endif
3380 #define CreateMailslot CreateMailslotW
3381 #define CreateMutex CreateMutexW
3382 #define CreateNamedPipe CreateNamedPipeW
3383 #define CreateProcess CreateProcessW
3384 #define CreateProcessAsUser CreateProcessAsUserW
3385 #define CreateSemaphore CreateSemaphoreW
3386 #define CreateWaitableTimer CreateWaitableTimerW
3387 #define DecryptFile DecryptFileW
3388 #define DefineDosDevice DefineDosDeviceW
3389 #define DeleteFile DeleteFileW
3390 #if (_WIN32_WINNT >= 0x0500)
3391 #define DeleteVolumeMountPoint DeleteVolumeMountPointW
3392 #define DnsHostnameToComputerName DnsHostnameToComputerNameW
3393 #endif
3394 #define EncryptFile EncryptFileW
3395 #define EndUpdateResource EndUpdateResourceW
3396 #define EnumResourceLanguages EnumResourceLanguagesW
3397 #define EnumResourceNames EnumResourceNamesW
3398 #define EnumResourceTypes EnumResourceTypesW
3399 #define ExpandEnvironmentStrings ExpandEnvironmentStringsW
3400 #define FatalAppExit FatalAppExitW
3401 #define FileEncryptionStatus FileEncryptionStatusW
3402 #if (_WIN32_WINNT >= 0x0501)
3403 #define FindActCtxSectionString FindActCtxSectionStringW
3404 #endif
3405 #define FindAtom FindAtomW
3406 #define FindFirstChangeNotification FindFirstChangeNotificationW
3407 #define FindFirstFile FindFirstFileW
3408 #define FindFirstFileEx FindFirstFileExW
3409 #if (_WIN32_WINNT >= 0x0500)
3410 #define FindFirstVolume FindFirstVolumeW
3411 #define FindFirstVolumeMountPoint FindFirstVolumeMountPointW
3412 #endif
3413 #define FindNextFile FindNextFileW
3414 #if (_WIN32_WINNT >= 0x0500)
3415 #define FindNextVolume FindNextVolumeW
3416 #define FindNextVolumeMountPoint  FindNextVolumeMountPointW
3417 #endif
3418 #define FindResource FindResourceW
3419 #define FindResourceEx FindResourceExW
3420 #define FormatMessage FormatMessageW
3421 #define FreeEnvironmentStrings FreeEnvironmentStringsW
3422 #define GetAtomName GetAtomNameW
3423 #define GetBinaryType GetBinaryTypeW
3424 #define GetCommandLine GetCommandLineW
3425 #define GetCompressedFileSize GetCompressedFileSizeW
3426 #define GetComputerName GetComputerNameW
3427 #if (_WIN32_WINNT >= 0x0500)
3428 #define GetComputerNameEx GetComputerNameExW
3429 #endif
3430 #define GetCurrentDirectory GetCurrentDirectoryW
3431 #define GetDefaultCommConfig GetDefaultCommConfigW
3432 #define GetDiskFreeSpace GetDiskFreeSpaceW
3433 #define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
3434 #if (_WIN32_WINNT >= 0x0502)
3435 #define GetDllDirectory GetDllDirectoryW
3436 #endif
3437 #define GetDriveType GetDriveTypeW
3438 #define GetEnvironmentStrings GetEnvironmentStringsW
3439 #define GetEnvironmentVariable GetEnvironmentVariableW
3440 #define GetFileAttributes GetFileAttributesW
3441 #define GetFileAttributesEx GetFileAttributesExW
3442 #define GetFileSecurity GetFileSecurityW
3443 #if (_WIN32_WINNT >= 0x0600)
3444 #define GetFinalPathNameByHandle GetFinalPathNameByHandleW
3445 #endif
3446 #define GetFullPathName GetFullPathNameW
3447 #define GetLogicalDriveStrings GetLogicalDriveStringsW
3448 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
3449 #define GetLongPathName GetLongPathNameW
3450 #endif
3451 #define GetModuleFileName GetModuleFileNameW
3452 #define GetModuleHandle GetModuleHandleW
3453 #if (_WIN32_WINNT >= 0x0500)
3454 #define GetModuleHandleEx GetModuleHandleExW
3455 #endif
3456 #define GetNamedPipeHandleState GetNamedPipeHandleStateW
3457 #define GetPrivateProfileInt GetPrivateProfileIntW
3458 #define GetPrivateProfileSection GetPrivateProfileSectionW
3459 #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
3460 #define GetPrivateProfileString GetPrivateProfileStringW
3461 #define GetPrivateProfileStruct GetPrivateProfileStructW
3462 #define GetProfileInt GetProfileIntW
3463 #define GetProfileSection GetProfileSectionW
3464 #define GetProfileString GetProfileStringW
3465 #define GetShortPathName GetShortPathNameW
3466 #define GetStartupInfo GetStartupInfoW
3467 #define GetSystemDirectory GetSystemDirectoryW
3468 #if (_WIN32_WINNT >= 0x0500)
3469 #define GetSystemWindowsDirectory GetSystemWindowsDirectoryW
3470 #endif
3471 #if (_WIN32_WINNT >= 0x0501)
3472 #define GetSystemWow64Directory GetSystemWow64DirectoryW
3473 #endif
3474 #define GetTempFileName GetTempFileNameW
3475 #define GetTempPath GetTempPathW
3476 #define GetUserName GetUserNameW
3477 #define GetVersionEx GetVersionExW
3478 #define GetVolumeInformation GetVolumeInformationW
3479 #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW
3480 #define GetVolumePathName GetVolumePathNameW
3481 #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW
3482 #define GetWindowsDirectory GetWindowsDirectoryW
3483 #define GlobalAddAtom GlobalAddAtomW
3484 #define GlobalFindAtom GlobalFindAtomW
3485 #define GlobalGetAtomName GlobalGetAtomNameW
3486 #define IsBadStringPtr IsBadStringPtrW
3487 #define LoadLibrary LoadLibraryW
3488 #define LoadLibraryEx LoadLibraryExW
3489 #define LogonUser LogonUserW
3490 #define LogonUserEx LogonUserExW
3491 #define LookupAccountName LookupAccountNameW
3492 #define LookupAccountSid LookupAccountSidW
3493 #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
3494 #define LookupPrivilegeName LookupPrivilegeNameW
3495 #define LookupPrivilegeValue LookupPrivilegeValueW
3496 #define lstrcat lstrcatW
3497 #define lstrcmp lstrcmpW
3498 #define lstrcmpi lstrcmpiW
3499 #define lstrcpy lstrcpyW
3500 #define lstrcpyn lstrcpynW
3501 #define lstrlen lstrlenW
3502 #define MoveFile MoveFileW
3503 #define MoveFileEx MoveFileExW
3504 #define MoveFileWithProgress MoveFileWithProgressW
3505 #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
3506 #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
3507 #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
3508 #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
3509 #define OpenBackupEventLog OpenBackupEventLogW
3510 #define OpenEvent OpenEventW
3511 #define OpenEventLog OpenEventLogW
3512 #define OpenFileMapping OpenFileMappingW
3513 #define OpenMutex OpenMutexW
3514 #define OpenSemaphore OpenSemaphoreW
3515 #define OutputDebugString OutputDebugStringW
3516 #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
3517 #define QueryDosDevice QueryDosDeviceW
3518 #define ReadEventLog ReadEventLogW
3519 #define RegisterEventSource RegisterEventSourceW
3520 #define RemoveDirectory RemoveDirectoryW
3521 #if (_WIN32_WINNT >= 0x0500)
3522 #define ReplaceFile ReplaceFileW
3523 #endif
3524 #define ReportEvent ReportEventW
3525 #define SearchPath SearchPathW
3526 #define SetComputerName SetComputerNameW
3527 #define SetComputerNameEx SetComputerNameExW
3528 #define SetCurrentDirectory SetCurrentDirectoryW
3529 #define SetDefaultCommConfig SetDefaultCommConfigW
3530 #if (_WIN32_WINNT >= 0x0502)
3531 #define SetDllDirectory SetDllDirectoryW
3532 #endif
3533 #define SetEnvironmentVariable SetEnvironmentVariableW
3534 #define SetFileAttributes SetFileAttributesW
3535 #define SetFileSecurity SetFileSecurityW
3536 #if (_WIN32_WINNT >= 0x0501)
3537 #define SetFileShortName SetFileShortNameW
3538 #endif
3539 #if (_WIN32_WINNT >= 0x0502)
3540 #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableW
3541 #endif
3542 #define SetVolumeLabel SetVolumeLabelW
3543 #define SetVolumeMountPoint SetVolumeMountPointW
3544 #define UpdateResource UpdateResourceW
3545 #define VerifyVersionInfo VerifyVersionInfoW
3546 #define WaitNamedPipe WaitNamedPipeW
3547 #define WritePrivateProfileSection WritePrivateProfileSectionW
3548 #define WritePrivateProfileString WritePrivateProfileStringW
3549 #define WritePrivateProfileStruct WritePrivateProfileStructW
3550 #define WriteProfileSection WriteProfileSectionW
3551 #define WriteProfileString WriteProfileStringW
3552 #else
3553 typedef STARTUPINFOA STARTUPINFO,*LPSTARTUPINFO;
3554 typedef WIN32_FIND_DATAA WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
3555 typedef HW_PROFILE_INFOA HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
3556 #if (_WIN32_WINNT >= 0x0501)
3557 typedef ACTCTXA ACTCTX,*PACTCTX;
3558 typedef PCACTCTXA PCACTCTX;
3559 #endif
3560 typedef ENUMRESLANGPROCA ENUMRESLANGPROC;
3561 typedef ENUMRESNAMEPROCA ENUMRESNAMEPROC;
3562 typedef ENUMRESTYPEPROCA ENUMRESTYPEPROC;
3563 #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
3564 #define AddAtom AddAtomA
3565 #define BackupEventLog BackupEventLogA
3566 #define BeginUpdateResource BeginUpdateResourceA
3567 #define BuildCommDCB BuildCommDCBA
3568 #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
3569 #define CallNamedPipe CallNamedPipeA
3570 #if (_WIN32_WINNT >= 0x0501)
3571 #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A
3572 #endif
3573 #define ClearEventLog ClearEventLogA
3574 #define CommConfigDialog CommConfigDialogA
3575 #define CopyFile CopyFileA
3576 #define CopyFileEx CopyFileExA
3577 #if (_WIN32_WINNT >= 0x0501)
3578 #define CreateActCtx CreateActCtxA
3579 #endif
3580 #define CreateDirectory CreateDirectoryA
3581 #define CreateDirectoryEx CreateDirectoryExA
3582 #define CreateEvent CreateEventA
3583 #define CreateFile CreateFileA
3584 #define CreateFileMapping CreateFileMappingA
3585 #if (_WIN32_WINNT >= 0x0500)
3586 #define CreateHardLink CreateHardLinkA
3587 #define CreateJobObject CreateJobObjectA
3588 #endif
3589 #define CreateMailslot CreateMailslotA
3590 #define CreateMutex CreateMutexA
3591 #define CreateNamedPipe CreateNamedPipeA
3592 #define CreateProcess CreateProcessA
3593 #define CreateProcessAsUser CreateProcessAsUserA
3594 #define CreateSemaphore CreateSemaphoreA
3595 #define CreateWaitableTimer CreateWaitableTimerA
3596 #define DecryptFile DecryptFileA
3597 #define DefineDosDevice DefineDosDeviceA
3598 #define DeleteFile DeleteFileA
3599 #if (_WIN32_WINNT >= 0x0500)
3600 #define DeleteVolumeMountPoint DeleteVolumeMountPointA
3601 #define DnsHostnameToComputerName DnsHostnameToComputerNameA
3602 #endif
3603 #define EncryptFile EncryptFileA
3604 #define EndUpdateResource EndUpdateResourceA
3605 #define EnumResourceLanguages EnumResourceLanguagesA
3606 #define EnumResourceNames EnumResourceNamesA
3607 #define EnumResourceTypes EnumResourceTypesA
3608 #define ExpandEnvironmentStrings ExpandEnvironmentStringsA
3609 #define FatalAppExit FatalAppExitA
3610 #define FileEncryptionStatus FileEncryptionStatusA
3611 #if (_WIN32_WINNT >= 0x0501)
3612 #define FindActCtxSectionString FindActCtxSectionStringA
3613 #endif
3614 #define FindAtom FindAtomA
3615 #define FindFirstChangeNotification FindFirstChangeNotificationA
3616 #define FindFirstFile FindFirstFileA
3617 #define FindFirstFileEx FindFirstFileExA
3618 #if (_WIN32_WINNT >= 0x0500)
3619 #define FindFirstVolume FindFirstVolumeA
3620 #define FindFirstVolumeMountPoint FindFirstVolumeMountPointA
3621 #endif
3622 #define FindNextFile FindNextFileA
3623 #if (_WIN32_WINNT >= 0x0500)
3624 #define FindNextVolume FindNextVolumeA
3625 #define FindNextVolumeMountPoint FindNextVolumeMountPointA
3626 #endif
3627 #define FindResource FindResourceA
3628 #define FindResourceEx FindResourceExA
3629 #define FormatMessage FormatMessageA
3630 #define FreeEnvironmentStrings FreeEnvironmentStringsA
3631 #define GetAtomName GetAtomNameA
3632 #define GetBinaryType GetBinaryTypeA
3633 #define GetCommandLine GetCommandLineA
3634 #define GetComputerName GetComputerNameA
3635 #if (_WIN32_WINNT >= 0x0500)
3636 #define GetComputerNameEx GetComputerNameExA
3637 #endif
3638 #define GetCompressedFileSize GetCompressedFileSizeA
3639 #define GetCurrentDirectory GetCurrentDirectoryA
3640 #define GetDefaultCommConfig GetDefaultCommConfigA
3641 #define GetDiskFreeSpace GetDiskFreeSpaceA
3642 #define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
3643 #if (_WIN32_WINNT >= 0x0502)
3644 #define GetDllDirectory GetDllDirectoryA
3645 #endif
3646 #define GetDriveType GetDriveTypeA
3647 #define GetEnvironmentStringsA GetEnvironmentStrings
3648 #define GetEnvironmentVariable GetEnvironmentVariableA
3649 #define GetFileAttributes GetFileAttributesA
3650 #define GetFileAttributesEx GetFileAttributesExA
3651 #define GetFileSecurity GetFileSecurityA
3652 #if (_WIN32_WINNT >= 0x0600)
3653 #define GetFinalPathNameByHandle GetFinalPathNameByHandleA
3654 #endif
3655 #define GetFullPathName GetFullPathNameA
3656 #define GetLogicalDriveStrings GetLogicalDriveStringsA
3657 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
3658 #define GetLongPathName GetLongPathNameA
3659 #endif
3660 #define GetNamedPipeHandleState GetNamedPipeHandleStateA
3661 #define GetModuleHandle GetModuleHandleA
3662 #if (_WIN32_WINNT >= 0x0500)
3663 #define GetModuleHandleEx GetModuleHandleExA
3664 #endif
3665 #define GetModuleFileName GetModuleFileNameA
3666 #define GetPrivateProfileInt GetPrivateProfileIntA
3667 #define GetPrivateProfileSection GetPrivateProfileSectionA
3668 #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
3669 #define GetPrivateProfileString GetPrivateProfileStringA
3670 #define GetPrivateProfileStruct GetPrivateProfileStructA
3671 #define GetProfileInt GetProfileIntA
3672 #define GetProfileSection GetProfileSectionA
3673 #define GetProfileString GetProfileStringA
3674 #define GetShortPathName GetShortPathNameA
3675 #define GetStartupInfo GetStartupInfoA
3676 #define GetSystemDirectory GetSystemDirectoryA
3677 #if (_WIN32_WINNT >= 0x0500)
3678 #define GetSystemWindowsDirectory GetSystemWindowsDirectoryA
3679 #endif
3680 #if (_WIN32_WINNT >= 0x0501)
3681 #define GetSystemWow64Directory GetSystemWow64DirectoryA
3682 #endif
3683 #define GetTempFileName GetTempFileNameA
3684 #define GetTempPath GetTempPathA
3685 #define GetUserName GetUserNameA
3686 #define GetVersionEx GetVersionExA
3687 #define GetVolumeInformation GetVolumeInformationA
3688 #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointA
3689 #define GetVolumePathName GetVolumePathNameA
3690 #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameA
3691 #define GetWindowsDirectory GetWindowsDirectoryA
3692 #define GlobalAddAtom GlobalAddAtomA
3693 #define GlobalFindAtom GlobalFindAtomA
3694 #define GlobalGetAtomName GlobalGetAtomNameA
3695 #define IsBadStringPtr IsBadStringPtrA
3696 #define LoadLibrary LoadLibraryA
3697 #define LoadLibraryEx LoadLibraryExA
3698 #define LogonUser LogonUserA
3699 #define LogonUserEx LogonUserExA
3700 #define LookupAccountName LookupAccountNameA
3701 #define LookupAccountSid LookupAccountSidA
3702 #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
3703 #define LookupPrivilegeName LookupPrivilegeNameA
3704 #define LookupPrivilegeValue LookupPrivilegeValueA
3705 #define lstrcat lstrcatA
3706 #define lstrcmp lstrcmpA
3707 #define lstrcmpi lstrcmpiA
3708 #define lstrcpy lstrcpyA
3709 #define lstrcpyn lstrcpynA
3710 #define lstrlen lstrlenA
3711 #define MoveFile MoveFileA
3712 #define MoveFileEx MoveFileExA
3713 #define MoveFileWithProgress MoveFileWithProgressA
3714 #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
3715 #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
3716 #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
3717 #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
3718 #define OpenBackupEventLog OpenBackupEventLogA
3719 #define OpenEvent OpenEventA
3720 #define OpenEventLog OpenEventLogA
3721 #define OpenFileMapping OpenFileMappingA
3722 #define OpenMutex OpenMutexA
3723 #define OpenSemaphore OpenSemaphoreA
3724 #define OutputDebugString OutputDebugStringA
3725 #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
3726 #define QueryDosDevice QueryDosDeviceA
3727 #define ReadEventLog ReadEventLogA
3728 #define RegisterEventSource RegisterEventSourceA
3729 #define RemoveDirectory RemoveDirectoryA
3730 #if (_WIN32_WINNT >= 0x0500)
3731 #define ReplaceFile ReplaceFileA
3732 #endif
3733 #define ReportEvent ReportEventA
3734 #define SearchPath SearchPathA
3735 #define SetComputerName SetComputerNameA
3736 #define SetComputerNameEx SetComputerNameExA
3737 #define SetCurrentDirectory SetCurrentDirectoryA
3738 #define SetDefaultCommConfig SetDefaultCommConfigA
3739 #if (_WIN32_WINNT >= 0x0502)
3740 #define SetDllDirectory SetDllDirectoryA
3741 #endif
3742 #define SetEnvironmentVariable SetEnvironmentVariableA
3743 #define SetFileAttributes SetFileAttributesA
3744 #define SetFileSecurity SetFileSecurityA
3745 #if (_WIN32_WINNT >= 0x0501)
3746 #define SetFileShortName SetFileShortNameA
3747 #endif
3748 #if (_WIN32_WINNT >= 0x0502)
3749 #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableA
3750 #endif
3751 #define SetVolumeLabel SetVolumeLabelA
3752 #define SetVolumeMountPoint SetVolumeMountPointA
3753 #define UpdateResource UpdateResourceA
3754 #define VerifyVersionInfo VerifyVersionInfoA
3755 #define WaitNamedPipe WaitNamedPipeA
3756 #define WritePrivateProfileSection WritePrivateProfileSectionA
3757 #define WritePrivateProfileString WritePrivateProfileStringA
3758 #define WritePrivateProfileStruct WritePrivateProfileStructA
3759 #define WriteProfileSection WriteProfileSectionA
3760 #define WriteProfileString WriteProfileStringA
3761 #endif
3762 #endif
3763 
3764 /* one-time initialisation API */
3765 typedef RTL_RUN_ONCE INIT_ONCE;
3766 typedef PRTL_RUN_ONCE PINIT_ONCE;
3767 typedef PRTL_RUN_ONCE LPINIT_ONCE;
3768 
3769 #define INIT_ONCE_CHECK_ONLY RTL_RUN_ONCE_CHECK_ONLY
3770 #define INIT_ONCE_ASYNC RTL_RUN_ONCE_ASYNC
3771 #define INIT_ONCE_INIT_FAILED RTL_RUN_ONCE_INIT_FAILED
3772 
3773 typedef BOOL
3774 (WINAPI *PINIT_ONCE_FN)(
3775   _Inout_ PINIT_ONCE InitOnce,
3776   _Inout_opt_ PVOID Parameter,
3777   _Outptr_opt_result_maybenull_ PVOID *Context);
3778 
3779 #if _WIN32_WINNT >= 0x0601
3780 
3781 #define COPYFILE2_MESSAGE_COPY_OFFLOAD 0x00000001L
3782 
3783 typedef enum _COPYFILE2_MESSAGE_TYPE {
3784   COPYFILE2_CALLBACK_NONE = 0,
3785   COPYFILE2_CALLBACK_CHUNK_STARTED,
3786   COPYFILE2_CALLBACK_CHUNK_FINISHED,
3787   COPYFILE2_CALLBACK_STREAM_STARTED,
3788   COPYFILE2_CALLBACK_STREAM_FINISHED,
3789   COPYFILE2_CALLBACK_POLL_CONTINUE,
3790   COPYFILE2_CALLBACK_ERROR,
3791   COPYFILE2_CALLBACK_MAX,
3792 } COPYFILE2_MESSAGE_TYPE;
3793 
3794 typedef enum _COPYFILE2_MESSAGE_ACTION {
3795   COPYFILE2_PROGRESS_CONTINUE = 0,
3796   COPYFILE2_PROGRESS_CANCEL,
3797   COPYFILE2_PROGRESS_STOP,
3798   COPYFILE2_PROGRESS_QUIET,
3799   COPYFILE2_PROGRESS_PAUSE,
3800 } COPYFILE2_MESSAGE_ACTION;
3801 
3802 typedef enum _COPYFILE2_COPY_PHASE {
3803   COPYFILE2_PHASE_NONE = 0,
3804   COPYFILE2_PHASE_PREPARE_SOURCE,
3805   COPYFILE2_PHASE_PREPARE_DEST,
3806   COPYFILE2_PHASE_READ_SOURCE,
3807   COPYFILE2_PHASE_WRITE_DESTINATION,
3808   COPYFILE2_PHASE_SERVER_COPY,
3809   COPYFILE2_PHASE_NAMEGRAFT_COPY,
3810   COPYFILE2_PHASE_MAX,
3811 } COPYFILE2_COPY_PHASE;
3812 
3813 typedef struct COPYFILE2_MESSAGE {
3814   COPYFILE2_MESSAGE_TYPE Type;
3815   DWORD dwPadding;
3816   union {
3817     struct {
3818       DWORD dwStreamNumber;
3819       DWORD dwReserved;
3820       HANDLE hSourceFile;
3821       HANDLE hDestinationFile;
3822       ULARGE_INTEGER uliChunkNumber;
3823       ULARGE_INTEGER uliChunkSize;
3824       ULARGE_INTEGER uliStreamSize;
3825       ULARGE_INTEGER uliTotalFileSize;
3826     } ChunkStarted;
3827     struct {
3828       DWORD dwStreamNumber;
3829       DWORD dwFlags;
3830       HANDLE hSourceFile;
3831       HANDLE hDestinationFile;
3832       ULARGE_INTEGER uliChunkNumber;
3833       ULARGE_INTEGER uliChunkSize;
3834       ULARGE_INTEGER uliStreamSize;
3835       ULARGE_INTEGER uliStreamBytesTransferred;
3836       ULARGE_INTEGER uliTotalFileSize;
3837       ULARGE_INTEGER uliTotalBytesTransferred;
3838     } ChunkFinished;
3839     struct {
3840       DWORD dwStreamNumber;
3841       DWORD dwReserved;
3842       HANDLE hSourceFile;
3843       HANDLE hDestinationFile;
3844       ULARGE_INTEGER uliStreamSize;
3845       ULARGE_INTEGER uliTotalFileSize;
3846     } StreamStarted;
3847     struct {
3848       DWORD dwStreamNumber;
3849       DWORD dwReserved;
3850       HANDLE hSourceFile;
3851       HANDLE hDestinationFile;
3852       ULARGE_INTEGER uliStreamSize;
3853       ULARGE_INTEGER uliStreamBytesTransferred;
3854       ULARGE_INTEGER uliTotalFileSize;
3855       ULARGE_INTEGER uliTotalBytesTransferred;
3856     } StreamFinished;
3857     struct {
3858       DWORD dwReserved;
3859     } PollContinue;
3860     struct {
3861       COPYFILE2_COPY_PHASE CopyPhase;
3862       DWORD dwStreamNumber;
3863       HRESULT hrFailure;
3864       DWORD dwReserved;
3865       ULARGE_INTEGER uliChunkNumber;
3866       ULARGE_INTEGER uliStreamSize;
3867       ULARGE_INTEGER uliStreamBytesTransferred;
3868       ULARGE_INTEGER uliTotalFileSize;
3869       ULARGE_INTEGER uliTotalBytesTransferred;
3870     } Error;
3871   } Info;
3872 } COPYFILE2_MESSAGE;
3873 
3874 typedef COPYFILE2_MESSAGE_ACTION
3875 (CALLBACK *PCOPYFILE2_PROGRESS_ROUTINE)(
3876   _In_ const COPYFILE2_MESSAGE *pMessage,
3877   _In_opt_ PVOID pvCallbackContext);
3878 
3879 typedef struct COPYFILE2_EXTENDED_PARAMETERS {
3880   DWORD dwSize;
3881   DWORD dwCopyFlags;
3882   BOOL *pfCancel;
3883   PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine;
3884   PVOID pvCallbackContext;
3885 } COPYFILE2_EXTENDED_PARAMETERS;
3886 
3887 WINBASEAPI
3888 HRESULT
3889 WINAPI
3890 CopyFile2(
3891   _In_ PCWSTR pwszExistingFileName,
3892   _In_ PCWSTR pwszNewFileName,
3893   _In_opt_ COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters);
3894 
3895 #endif /* _WIN32_WINNT >= 0x0601 */
3896 
3897 WINBASEAPI
3898 BOOL
3899 WINAPI
3900 InitOnceExecuteOnce(
3901   _Inout_ PINIT_ONCE InitOnce,
3902   _In_ __callback PINIT_ONCE_FN InitFn,
3903   _Inout_opt_ PVOID Parameter,
3904   _Outptr_opt_result_maybenull_ LPVOID *Context);
3905 
3906 
3907 #if defined(_SLIST_HEADER_) && !defined(_NTOS_) && !defined(_NTOSP_)
3908 
3909 WINBASEAPI
3910 VOID
3911 WINAPI
3912 InitializeSListHead(
3913   _Out_ PSLIST_HEADER ListHead);
3914 
3915 WINBASEAPI
3916 PSLIST_ENTRY
3917 WINAPI
3918 InterlockedPopEntrySList(
3919   _Inout_ PSLIST_HEADER ListHead);
3920 
3921 WINBASEAPI
3922 PSLIST_ENTRY
3923 WINAPI
3924 InterlockedPushEntrySList(
3925   _Inout_ PSLIST_HEADER ListHead,
3926   _Inout_ PSLIST_ENTRY ListEntry);
3927 
3928 WINBASEAPI
3929 PSLIST_ENTRY
3930 WINAPI
3931 InterlockedFlushSList(
3932   _Inout_ PSLIST_HEADER ListHead);
3933 
3934 WINBASEAPI
3935 USHORT
3936 WINAPI
3937 QueryDepthSList(
3938   _In_ PSLIST_HEADER ListHead);
3939 
3940 #endif /* _SLIST_HEADER_ */
3941 
3942 #ifdef _MSC_VER
3943 #pragma warning(pop)
3944 #endif
3945 
3946 #ifdef __cplusplus
3947 }
3948 #endif
3949 #endif /* _WINBASE_H */
3950