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