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