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