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