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