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