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