OSDN Git Service

Timeval struct bitness issue [#2059]
[mingw/mingw-org-wsl.git] / include / winbase.h
1 /**
2  * @file winbase.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _WINBASE_H
25 #define _WINBASE_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #define __GNUC_EXTENSION __extension__
30
31 #ifndef WINBASEAPI
32 #ifdef __W32API_USE_DLLIMPORT__
33 #define WINBASEAPI DECLSPEC_IMPORT
34 #else
35 #define WINBASEAPI
36 #endif
37 #endif
38
39 #ifndef WINADVAPI
40 #ifdef __W32API_USE_DLLIMPORT__
41 #define WINADVAPI DECLSPEC_IMPORT
42 #else
43 #define WINADVAPI
44 #endif
45 #endif
46
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50
51 #define SP_SERIALCOMM 1
52 #define PST_UNSPECIFIED 0
53 #define PST_RS232       1
54 #define PST_PARALLELPORT        2
55 #define PST_RS422       3
56 #define PST_RS423       4
57 #define PST_RS449       5
58 #define PST_MODEM       6
59 #define PST_FAX 0x21
60 #define PST_SCANNER     0x22
61 #define PST_NETWORK_BRIDGE      0x100
62 #define PST_LAT 0x101
63 #define PST_TCPIP_TELNET        0x102
64 #define PST_X25 0x103
65 #define BAUD_075        1
66 #define BAUD_110        2
67 #define BAUD_134_5      4
68 #define BAUD_150        8
69 #define BAUD_300        16
70 #define BAUD_600        32
71 #define BAUD_1200       64
72 #define BAUD_1800       128
73 #define BAUD_2400       256
74 #define BAUD_4800       512
75 #define BAUD_7200       1024
76 #define BAUD_9600       2048
77 #define BAUD_14400      4096
78 #define BAUD_19200      8192
79 #define BAUD_38400      16384
80 #define BAUD_56K        32768
81 #define BAUD_128K       65536
82 #define BAUD_115200     131072
83 #define BAUD_57600      262144
84 #define BAUD_USER       0x10000000
85 #define PCF_DTRDSR      1
86 #define PCF_RTSCTS      2
87 #define PCF_RLSD        4
88 #define PCF_PARITY_CHECK        8
89 #define PCF_XONXOFF     16
90 #define PCF_SETXCHAR    32
91 #define PCF_TOTALTIMEOUTS       64
92 #define PCF_INTTIMEOUTS 128
93 #define PCF_SPECIALCHARS        256
94 #define PCF_16BITMODE   512
95 #define SP_PARITY       1
96 #define SP_BAUD 2
97 #define SP_DATABITS     4
98 #define SP_STOPBITS     8
99 #define SP_HANDSHAKING  16
100 #define SP_PARITY_CHECK 32
101 #define SP_RLSD 64
102 #define DATABITS_5      1
103 #define DATABITS_6      2
104 #define DATABITS_7      4
105 #define DATABITS_8      8
106 #define DATABITS_16     16
107 #define DATABITS_16X    32
108 #define STOPBITS_10     1
109 #define STOPBITS_15     2
110 #define STOPBITS_20     4
111 #define PARITY_NONE     256
112 #define PARITY_ODD      512
113 #define PARITY_EVEN     1024
114 #define PARITY_MARK     2048
115 #define PARITY_SPACE    4096
116 #define EXCEPTION_DEBUG_EVENT   1
117 #define CREATE_THREAD_DEBUG_EVENT       2
118 #define CREATE_PROCESS_DEBUG_EVENT      3
119 #define EXIT_THREAD_DEBUG_EVENT 4
120 #define EXIT_PROCESS_DEBUG_EVENT        5
121 #define LOAD_DLL_DEBUG_EVENT    6
122 #define UNLOAD_DLL_DEBUG_EVENT  7
123 #define OUTPUT_DEBUG_STRING_EVENT       8
124 #define RIP_EVENT       9
125 #define HFILE_ERROR ((HFILE)-1)
126 #define FILE_BEGIN      0
127 #define FILE_CURRENT    1
128 #define FILE_END        2
129 #define INVALID_SET_FILE_POINTER        ((DWORD)-1)
130 #define OF_READ 0
131 #define OF_READWRITE    2
132 #define OF_WRITE        1
133 #define OF_SHARE_COMPAT 0
134 #define OF_SHARE_DENY_NONE      64
135 #define OF_SHARE_DENY_READ      48
136 #define OF_SHARE_DENY_WRITE     32
137 #define OF_SHARE_EXCLUSIVE      16
138 #define OF_CANCEL       2048
139 #define OF_CREATE       4096
140 #define OF_DELETE       512
141 #define OF_EXIST        16384
142 #define OF_PARSE        256
143 #define OF_PROMPT       8192
144 #define OF_REOPEN       32768
145 #define OF_VERIFY       1024
146 #define NMPWAIT_NOWAIT  1
147 #define NMPWAIT_WAIT_FOREVER    ((DWORD)-1)
148 #define NMPWAIT_USE_DEFAULT_WAIT        0
149 #define CE_BREAK        16
150 #define CE_DNS  2048
151 #define CE_FRAME        8
152 #define CE_IOE  1024
153 #define CE_MODE 32768
154 #define CE_OOP  4096
155 #define CE_OVERRUN      2
156 #define CE_PTO  512
157 #define CE_RXOVER       1
158 #define CE_RXPARITY     4
159 #define CE_TXFULL       256
160 #define PROGRESS_CONTINUE       0
161 #define PROGRESS_CANCEL 1
162 #define PROGRESS_STOP   2
163 #define PROGRESS_QUIET  3
164 #define CALLBACK_CHUNK_FINISHED 0
165 #define CALLBACK_STREAM_SWITCH  1
166 #define COPY_FILE_FAIL_IF_EXISTS              0x0001
167 #define COPY_FILE_RESTARTABLE                 0x0002
168 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE       0x0004
169
170 #define OFS_MAXPATHNAME 128
171 #define FILE_MAP_ALL_ACCESS     0xf001f
172 #define FILE_MAP_READ   4
173 #define FILE_MAP_WRITE  2
174 #define FILE_MAP_COPY   1
175 #define MUTEX_ALL_ACCESS        0x1f0001
176 #define MUTEX_MODIFY_STATE      1
177 #define SEMAPHORE_ALL_ACCESS    0x1f0003
178 #define SEMAPHORE_MODIFY_STATE  2
179 #define EVENT_ALL_ACCESS        0x1f0003
180 #define EVENT_MODIFY_STATE      2
181 #define PIPE_ACCESS_DUPLEX      3
182 #define PIPE_ACCESS_INBOUND     1
183 #define PIPE_ACCESS_OUTBOUND    2
184 #define PIPE_TYPE_BYTE  0
185 #define PIPE_TYPE_MESSAGE       4
186 #define PIPE_READMODE_BYTE      0
187 #define PIPE_READMODE_MESSAGE   2
188 #define PIPE_WAIT       0
189 #define PIPE_NOWAIT     1
190 #define PIPE_CLIENT_END 0
191 #define PIPE_SERVER_END 1
192 #define PIPE_UNLIMITED_INSTANCES 255
193 #define DEBUG_PROCESS                   0x00000001
194 #define DEBUG_ONLY_THIS_PROCESS         0x00000002
195 #define CREATE_SUSPENDED                0x00000004
196 #define DETACHED_PROCESS                0x00000008
197 #define CREATE_NEW_CONSOLE              0x00000010
198 #define NORMAL_PRIORITY_CLASS           0x00000020
199 #define IDLE_PRIORITY_CLASS             0x00000040
200 #define HIGH_PRIORITY_CLASS             0x00000080
201 #define REALTIME_PRIORITY_CLASS         0x00000100
202 #define CREATE_NEW_PROCESS_GROUP        0x00000200
203 #define CREATE_UNICODE_ENVIRONMENT      0x00000400
204 #define CREATE_SEPARATE_WOW_VDM         0x00000800
205 #define CREATE_SHARED_WOW_VDM           0x00001000
206 #define CREATE_FORCEDOS                 0x00002000
207 #define BELOW_NORMAL_PRIORITY_CLASS     0x00004000
208 #define ABOVE_NORMAL_PRIORITY_CLASS     0x00008000
209 #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
210 #define CREATE_BREAKAWAY_FROM_JOB       0x01000000
211 #define CREATE_WITH_USERPROFILE         0x02000000
212 #define CREATE_DEFAULT_ERROR_MODE       0x04000000
213 #define CREATE_NO_WINDOW                0x08000000
214 #define PROFILE_USER                    0x10000000
215 #define PROFILE_KERNEL                  0x20000000
216 #define PROFILE_SERVER                  0x40000000
217 #define CONSOLE_TEXTMODE_BUFFER 1
218 #define CREATE_NEW      1
219 #define CREATE_ALWAYS   2
220 #define OPEN_EXISTING   3
221 #define OPEN_ALWAYS     4
222 #define TRUNCATE_EXISTING       5
223 #define FILE_FLAG_WRITE_THROUGH 0x80000000
224 #define FILE_FLAG_OVERLAPPED    1073741824
225 #define FILE_FLAG_NO_BUFFERING  536870912
226 #define FILE_FLAG_RANDOM_ACCESS 268435456
227 #define FILE_FLAG_SEQUENTIAL_SCAN       134217728
228 #define FILE_FLAG_DELETE_ON_CLOSE       67108864
229 #define FILE_FLAG_BACKUP_SEMANTICS      33554432
230 #define FILE_FLAG_POSIX_SEMANTICS       16777216
231 #define FILE_FLAG_OPEN_REPARSE_POINT    2097152
232 #define FILE_FLAG_OPEN_NO_RECALL        1048576
233
234 #define SYMBOLIC_LINK_FLAG_DIRECTORY    0x1
235 #define CLRDTR 6
236 #define CLRRTS 4
237 #define SETDTR 5
238 #define SETRTS 3
239 #define SETXOFF 1
240 #define SETXON 2
241 #define SETBREAK 8
242 #define CLRBREAK 9
243 #define STILL_ACTIVE 0x103
244 #define FIND_FIRST_EX_CASE_SENSITIVE 1
245 #define SCS_32BIT_BINARY 0
246 #define SCS_64BIT_BINARY 6
247 #define SCS_DOS_BINARY 1
248 #define SCS_OS216_BINARY 5
249 #define SCS_PIF_BINARY 3
250 #define SCS_POSIX_BINARY 4
251 #define SCS_WOW_BINARY 2
252 #define MAX_COMPUTERNAME_LENGTH 15
253 #define HW_PROFILE_GUIDLEN      39
254 #define MAX_PROFILE_LEN 80
255 #define DOCKINFO_UNDOCKED       1
256 #define DOCKINFO_DOCKED 2
257 #define DOCKINFO_USER_SUPPLIED  4
258 #define DOCKINFO_USER_UNDOCKED  (DOCKINFO_USER_SUPPLIED|DOCKINFO_UNDOCKED)
259 #define DOCKINFO_USER_DOCKED    (DOCKINFO_USER_SUPPLIED|DOCKINFO_DOCKED)
260 #define DRIVE_REMOVABLE 2
261 #define DRIVE_FIXED 3
262 #define DRIVE_REMOTE 4
263 #define DRIVE_CDROM 5
264 #define DRIVE_RAMDISK 6
265 #define DRIVE_UNKNOWN 0
266 #define DRIVE_NO_ROOT_DIR 1
267 #define FILE_TYPE_UNKNOWN 0
268 #define FILE_TYPE_DISK 1
269 #define FILE_TYPE_CHAR 2
270 #define FILE_TYPE_PIPE 3
271 #define FILE_TYPE_REMOTE 0x8000
272 #define FILE_ENCRYPTABLE 0
273 #define FILE_IS_ENCRYPTED 1
274 #define FILE_READ_ONLY 8
275 #define FILE_ROOT_DIR 3
276 #define FILE_SYSTEM_ATTR 2
277 #define FILE_SYSTEM_DIR 4
278 #define FILE_SYSTEM_NOT_SUPPORT 6
279 #define FILE_UNKNOWN 5
280 #define FILE_USER_DISALLOWED 7
281 /* also in ddk/ntapi.h */
282 #define HANDLE_FLAG_INHERIT             0x01
283 #define HANDLE_FLAG_PROTECT_FROM_CLOSE  0x02
284 /* end ntapi.h */
285 #define STD_INPUT_HANDLE (DWORD)(0xfffffff6)
286 #define STD_OUTPUT_HANDLE (DWORD)(0xfffffff5)
287 #define STD_ERROR_HANDLE (DWORD)(0xfffffff4)
288 #define INVALID_HANDLE_VALUE (HANDLE)(-1)
289 #define GET_TAPE_MEDIA_INFORMATION 0
290 #define GET_TAPE_DRIVE_INFORMATION 1
291 #define SET_TAPE_MEDIA_INFORMATION 0
292 #define SET_TAPE_DRIVE_INFORMATION 1
293
294 #define THREAD_PRIORITY_ABOVE_NORMAL 1
295 #define THREAD_PRIORITY_BELOW_NORMAL (-1)
296 #define THREAD_PRIORITY_HIGHEST 2
297 #define THREAD_PRIORITY_IDLE (-15)
298 #define THREAD_PRIORITY_LOWEST (-2)
299 #define THREAD_PRIORITY_NORMAL 0
300 #define THREAD_PRIORITY_TIME_CRITICAL 15
301 #define THREAD_PRIORITY_ERROR_RETURN 2147483647
302 #define TIME_ZONE_ID_UNKNOWN 0
303 #define TIME_ZONE_ID_STANDARD 1
304 #define TIME_ZONE_ID_DAYLIGHT 2
305 #define TIME_ZONE_ID_INVALID 0xFFFFFFFF
306 #define FS_CASE_IS_PRESERVED 2
307 #define FS_CASE_SENSITIVE 1
308 #define FS_UNICODE_STORED_ON_DISK 4
309 #define FS_PERSISTENT_ACLS 8
310 #define FS_FILE_COMPRESSION 16
311 #define FS_VOL_IS_COMPRESSED 32768
312 #define GMEM_FIXED 0
313 #define GMEM_MOVEABLE 2
314 #define GMEM_MODIFY 128
315 #define GPTR 64
316 #define GHND 66
317 #define GMEM_DDESHARE 8192
318 #define GMEM_DISCARDABLE 256
319 #define GMEM_LOWER 4096
320 #define GMEM_NOCOMPACT 16
321 #define GMEM_NODISCARD 32
322 #define GMEM_NOT_BANKED 4096
323 #define GMEM_NOTIFY 16384
324 #define GMEM_SHARE 8192
325 #define GMEM_ZEROINIT 64
326 #define GMEM_DISCARDED 16384
327 #define GMEM_INVALID_HANDLE 32768
328 #define GMEM_LOCKCOUNT 255
329 #define GMEM_VALID_FLAGS 32626
330 #define STATUS_WAIT_0 0
331 #define STATUS_ABANDONED_WAIT_0 0x80
332 #define STATUS_USER_APC 0xC0
333 #define STATUS_TIMEOUT 0x102
334 #define STATUS_PENDING 0x103
335 #define STATUS_SEGMENT_NOTIFICATION 0x40000005
336 #define STATUS_GUARD_PAGE_VIOLATION 0x80000001
337 #define STATUS_DATATYPE_MISALIGNMENT 0x80000002
338 #define STATUS_BREAKPOINT 0x80000003
339 #define STATUS_SINGLE_STEP 0x80000004
340 #define STATUS_ACCESS_VIOLATION 0xC0000005
341 #define STATUS_IN_PAGE_ERROR 0xC0000006
342 #define STATUS_INVALID_HANDLE 0xC0000008L
343 #define STATUS_NO_MEMORY 0xC0000017
344 #define STATUS_ILLEGAL_INSTRUCTION 0xC000001D
345 #define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025
346 #define STATUS_INVALID_DISPOSITION 0xC0000026
347 #define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C
348 #define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D
349 #define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E
350 #define STATUS_FLOAT_INEXACT_RESULT 0xC000008F
351 #define STATUS_FLOAT_INVALID_OPERATION 0xC0000090
352 #define STATUS_FLOAT_OVERFLOW 0xC0000091
353 #define STATUS_FLOAT_STACK_CHECK 0xC0000092
354 #define STATUS_FLOAT_UNDERFLOW 0xC0000093
355 #define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094
356 #define STATUS_INTEGER_OVERFLOW 0xC0000095
357 #define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096
358 #define STATUS_STACK_OVERFLOW 0xC00000FD
359 #define STATUS_CONTROL_C_EXIT 0xC000013A
360 #define STATUS_DLL_INIT_FAILED 0xC0000142
361 #define STATUS_DLL_INIT_FAILED_LOGOFF 0xC000026B
362 #define EXCEPTION_ACCESS_VIOLATION      STATUS_ACCESS_VIOLATION
363 #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
364 #define EXCEPTION_BREAKPOINT    STATUS_BREAKPOINT
365 #define EXCEPTION_SINGLE_STEP   STATUS_SINGLE_STEP
366 #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
367 #define EXCEPTION_FLT_DENORMAL_OPERAND  STATUS_FLOAT_DENORMAL_OPERAND
368 #define EXCEPTION_FLT_DIVIDE_BY_ZERO    STATUS_FLOAT_DIVIDE_BY_ZERO
369 #define EXCEPTION_FLT_INEXACT_RESULT    STATUS_FLOAT_INEXACT_RESULT
370 #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
371 #define EXCEPTION_FLT_OVERFLOW  STATUS_FLOAT_OVERFLOW
372 #define EXCEPTION_FLT_STACK_CHECK       STATUS_FLOAT_STACK_CHECK
373 #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
374 #define EXCEPTION_INT_DIVIDE_BY_ZERO    STATUS_INTEGER_DIVIDE_BY_ZERO
375 #define EXCEPTION_INT_OVERFLOW  STATUS_INTEGER_OVERFLOW
376 #define EXCEPTION_PRIV_INSTRUCTION      STATUS_PRIVILEGED_INSTRUCTION
377 #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
378 #define EXCEPTION_ILLEGAL_INSTRUCTION   STATUS_ILLEGAL_INSTRUCTION
379 #define EXCEPTION_NONCONTINUABLE_EXCEPTION      STATUS_NONCONTINUABLE_EXCEPTION
380 #define EXCEPTION_STACK_OVERFLOW        STATUS_STACK_OVERFLOW
381 #define EXCEPTION_INVALID_DISPOSITION   STATUS_INVALID_DISPOSITION
382 #define EXCEPTION_GUARD_PAGE    STATUS_GUARD_PAGE_VIOLATION
383 #define EXCEPTION_INVALID_HANDLE        STATUS_INVALID_HANDLE
384 #define CONTROL_C_EXIT  STATUS_CONTROL_C_EXIT
385 #define PROCESS_HEAP_REGION 1
386 #define PROCESS_HEAP_UNCOMMITTED_RANGE 2
387 #define PROCESS_HEAP_ENTRY_BUSY 4
388 #define PROCESS_HEAP_ENTRY_MOVEABLE 16
389 #define PROCESS_HEAP_ENTRY_DDESHARE 32
390 #define DONT_RESOLVE_DLL_REFERENCES 1
391 #define LOAD_LIBRARY_AS_DATAFILE 2
392 #define LOAD_WITH_ALTERED_SEARCH_PATH 8
393 #define LMEM_FIXED 0
394 #define LMEM_MOVEABLE 2
395 #define LMEM_NONZEROLHND 2
396 #define LMEM_NONZEROLPTR 0
397 #define LMEM_DISCARDABLE 3840
398 #define LMEM_NOCOMPACT 16
399 #define LMEM_NODISCARD 32
400 #define LMEM_ZEROINIT 64
401 #define LMEM_DISCARDED 16384
402 #define LMEM_MODIFY 128
403 #define LMEM_INVALID_HANDLE 32768
404 #define LMEM_LOCKCOUNT 255
405 #define LPTR 64
406 #define LHND 66
407 #define NONZEROLHND 2
408 #define NONZEROLPTR 0
409 #define LOCKFILE_FAIL_IMMEDIATELY 1
410 #define LOCKFILE_EXCLUSIVE_LOCK 2
411 #define LOGON32_PROVIDER_DEFAULT        0
412 #define LOGON32_PROVIDER_WINNT35        1
413 #define LOGON32_PROVIDER_WINNT40        2
414
415 #define LOGON32_LOGON_INTERACTIVE       2
416 #define LOGON32_LOGON_NETWORK   3
417 #define LOGON32_LOGON_BATCH     4
418 #define LOGON32_LOGON_SERVICE   5
419 #define LOGON32_LOGON_UNLOCK    7
420
421 #define MOVEFILE_REPLACE_EXISTING 1
422 #define MOVEFILE_COPY_ALLOWED 2
423 #define MOVEFILE_DELAY_UNTIL_REBOOT 4
424 #define MOVEFILE_WRITE_THROUGH 8
425 #define MAXIMUM_WAIT_OBJECTS 64
426 #define MAXIMUM_SUSPEND_COUNT 0x7F
427 #define WAIT_OBJECT_0 0
428 #define WAIT_ABANDONED_0 128
429
430 #ifndef WAIT_TIMEOUT /* also in winerror.h */
431 #define WAIT_TIMEOUT 258
432 #endif
433
434 #define WAIT_IO_COMPLETION 0xC0
435 #define WAIT_ABANDONED 128
436 #define WAIT_FAILED ((DWORD)0xFFFFFFFF)
437 #define PURGE_TXABORT 1
438 #define PURGE_RXABORT 2
439 #define PURGE_TXCLEAR 4
440 #define PURGE_RXCLEAR 8
441 #define EVENTLOG_SUCCESS 0
442 #define EVENTLOG_FORWARDS_READ 4
443 #define EVENTLOG_BACKWARDS_READ 8
444 #define EVENTLOG_SEEK_READ 2
445 #define EVENTLOG_SEQUENTIAL_READ 1
446 #define EVENTLOG_ERROR_TYPE 1
447 #define EVENTLOG_WARNING_TYPE 2
448 #define EVENTLOG_INFORMATION_TYPE 4
449 #define EVENTLOG_AUDIT_SUCCESS 8
450 #define EVENTLOG_AUDIT_FAILURE 16
451 #define FORMAT_MESSAGE_ALLOCATE_BUFFER 256
452 #define FORMAT_MESSAGE_IGNORE_INSERTS 512
453 #define FORMAT_MESSAGE_FROM_STRING 1024
454 #define FORMAT_MESSAGE_FROM_HMODULE 2048
455 #define FORMAT_MESSAGE_FROM_SYSTEM 4096
456 #define FORMAT_MESSAGE_ARGUMENT_ARRAY 8192
457 #define FORMAT_MESSAGE_MAX_WIDTH_MASK 255
458 #define EV_BREAK 64
459 #define EV_CTS 8
460 #define EV_DSR 16
461 #define EV_ERR 128
462 #define EV_EVENT1 2048
463 #define EV_EVENT2 4096
464 #define EV_PERR 512
465 #define EV_RING 256
466 #define EV_RLSD 32
467 #define EV_RX80FULL 1024
468 #define EV_RXCHAR 1
469 #define EV_RXFLAG 2
470 #define EV_TXEMPTY 4
471 /* also in ddk/ntapi.h */
472 /* To restore default error mode, call SetErrorMode (0).  */
473 #define SEM_FAILCRITICALERRORS          0x0001
474 #define SEM_NOGPFAULTERRORBOX           0x0002
475 #define SEM_NOALIGNMENTFAULTEXCEPT      0x0004
476 #define SEM_NOOPENFILEERRORBOX          0x8000
477 /* end ntapi.h */
478 #define SLE_ERROR 1
479 #define SLE_MINORERROR 2
480 #define SLE_WARNING 3
481 #define SHUTDOWN_NORETRY 1
482 #define EXCEPTION_EXECUTE_HANDLER 1
483 #define EXCEPTION_CONTINUE_EXECUTION (-1)
484 #define EXCEPTION_CONTINUE_SEARCH 0
485 #define MAXINTATOM 0xC000
486 #define INVALID_ATOM ((ATOM)0)
487 #define IGNORE  0
488 #define INFINITE        0xFFFFFFFF
489 #define NOPARITY        0
490 #define ODDPARITY       1
491 #define EVENPARITY      2
492 #define MARKPARITY      3
493 #define SPACEPARITY     4
494 #define ONESTOPBIT      0
495 #define ONE5STOPBITS    1
496 #define TWOSTOPBITS     2
497 #define CBR_110 110
498 #define CBR_300 300
499 #define CBR_600 600
500 #define CBR_1200        1200
501 #define CBR_2400        2400
502 #define CBR_4800        4800
503 #define CBR_9600        9600
504 #define CBR_14400       14400
505 #define CBR_19200       19200
506 #define CBR_38400       38400
507 #define CBR_56000       56000
508 #define CBR_57600       57600
509 #define CBR_115200      115200
510 #define CBR_128000      128000
511 #define CBR_256000      256000
512 #define BACKUP_INVALID  0
513 #define BACKUP_DATA 1
514 #define BACKUP_EA_DATA 2
515 #define BACKUP_SECURITY_DATA 3
516 #define BACKUP_ALTERNATE_DATA 4
517 #define BACKUP_LINK 5
518 #define BACKUP_PROPERTY_DATA 6
519 #define BACKUP_OBJECT_ID 7
520 #define BACKUP_REPARSE_DATA 8
521 #define BACKUP_SPARSE_BLOCK 9
522 #define STREAM_NORMAL_ATTRIBUTE 0
523 #define STREAM_MODIFIED_WHEN_READ 1
524 #define STREAM_CONTAINS_SECURITY 2
525 #define STREAM_CONTAINS_PROPERTIES 4
526 #define STARTF_USESHOWWINDOW 1
527 #define STARTF_USESIZE 2
528 #define STARTF_USEPOSITION 4
529 #define STARTF_USECOUNTCHARS 8
530 #define STARTF_USEFILLATTRIBUTE 16
531 #define STARTF_RUNFULLSCREEN 32
532 #define STARTF_FORCEONFEEDBACK 64
533 #define STARTF_FORCEOFFFEEDBACK 128
534 #define STARTF_USESTDHANDLES 256
535 #define STARTF_USEHOTKEY 512
536 #define TC_NORMAL 0
537 #define TC_HARDERR 1
538 #define TC_GP_TRAP 2
539 #define TC_SIGNAL 3
540 #define AC_LINE_OFFLINE 0
541 #define AC_LINE_ONLINE 1
542 #define AC_LINE_BACKUP_POWER 2
543 #define AC_LINE_UNKNOWN 255
544 #define BATTERY_FLAG_HIGH 1
545 #define BATTERY_FLAG_LOW 2
546 #define BATTERY_FLAG_CRITICAL 4
547 #define BATTERY_FLAG_CHARGING 8
548 #define BATTERY_FLAG_NO_BATTERY 128
549 #define BATTERY_FLAG_UNKNOWN 255
550 #define BATTERY_PERCENTAGE_UNKNOWN 255
551 #define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
552 #define DDD_RAW_TARGET_PATH 1
553 #define DDD_REMOVE_DEFINITION 2
554 #define DDD_EXACT_MATCH_ON_REMOVE 4
555 #define HINSTANCE_ERROR 32
556 #define MS_CTS_ON 16
557 #define MS_DSR_ON 32
558 #define MS_RING_ON 64
559 #define MS_RLSD_ON 128
560 #define DTR_CONTROL_DISABLE 0
561 #define DTR_CONTROL_ENABLE 1
562 #define DTR_CONTROL_HANDSHAKE 2
563 #define RTS_CONTROL_DISABLE 0
564 #define RTS_CONTROL_ENABLE 1
565 #define RTS_CONTROL_HANDSHAKE 2
566 #define RTS_CONTROL_TOGGLE 3
567 #define SECURITY_ANONYMOUS (SecurityAnonymous<<16)
568 #define SECURITY_IDENTIFICATION (SecurityIdentification<<16)
569 #define SECURITY_IMPERSONATION (SecurityImpersonation<<16)
570 #define SECURITY_DELEGATION (SecurityDelegation<<16)
571 #define SECURITY_CONTEXT_TRACKING 0x40000
572 #define SECURITY_EFFECTIVE_ONLY 0x80000
573 #define SECURITY_SQOS_PRESENT 0x100000
574 #define SECURITY_VALID_SQOS_FLAGS 0x1F0000
575 #define INVALID_FILE_SIZE 0xFFFFFFFF
576 #define TLS_OUT_OF_INDEXES (DWORD)0xFFFFFFFF
577 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 0x00000004
578 #define GET_MODULE_HANDLE_EX_FLAG_PIN 0x00000001
579 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 0x00000002
580
581 #define WRITE_WATCH_FLAG_RESET 1
582
583 #ifndef RC_INVOKED
584 typedef struct _FILETIME {
585         DWORD dwLowDateTime;
586         DWORD dwHighDateTime;
587 } FILETIME,*PFILETIME,*LPFILETIME;
588 typedef struct _BY_HANDLE_FILE_INFORMATION {
589         DWORD   dwFileAttributes;
590         FILETIME        ftCreationTime;
591         FILETIME        ftLastAccessTime;
592         FILETIME        ftLastWriteTime;
593         DWORD   dwVolumeSerialNumber;
594         DWORD   nFileSizeHigh;
595         DWORD   nFileSizeLow;
596         DWORD   nNumberOfLinks;
597         DWORD   nFileIndexHigh;
598         DWORD   nFileIndexLow;
599 } BY_HANDLE_FILE_INFORMATION,*LPBY_HANDLE_FILE_INFORMATION;
600
601 typedef struct _DCB {
602         DWORD DCBlength;
603         DWORD BaudRate;
604         DWORD fBinary:1;
605         DWORD fParity:1;
606         DWORD fOutxCtsFlow:1;
607         DWORD fOutxDsrFlow:1;
608         DWORD fDtrControl:2;
609         DWORD fDsrSensitivity:1;
610         DWORD fTXContinueOnXoff:1;
611         DWORD fOutX:1;
612         DWORD fInX:1;
613         DWORD fErrorChar:1;
614         DWORD fNull:1;
615         DWORD fRtsControl:2;
616         DWORD fAbortOnError:1;
617         DWORD fDummy2:17;
618         WORD wReserved;
619         WORD XonLim;
620         WORD XoffLim;
621         BYTE ByteSize;
622         BYTE Parity;
623         BYTE StopBits;
624         char XonChar;
625         char XoffChar;
626         char ErrorChar;
627         char EofChar;
628         char EvtChar;
629         WORD wReserved1;
630 } DCB,*LPDCB;
631 typedef struct _COMM_CONFIG {
632         DWORD dwSize;
633         WORD  wVersion;
634         WORD  wReserved;
635         DCB   dcb;
636         DWORD dwProviderSubType;
637         DWORD dwProviderOffset;
638         DWORD dwProviderSize;
639         WCHAR wcProviderData[1];
640 } COMMCONFIG,*LPCOMMCONFIG;
641 typedef struct _COMMPROP {
642         WORD    wPacketLength;
643         WORD    wPacketVersion;
644         DWORD   dwServiceMask;
645         DWORD   dwReserved1;
646         DWORD   dwMaxTxQueue;
647         DWORD   dwMaxRxQueue;
648         DWORD   dwMaxBaud;
649         DWORD   dwProvSubType;
650         DWORD   dwProvCapabilities;
651         DWORD   dwSettableParams;
652         DWORD   dwSettableBaud;
653         WORD    wSettableData;
654         WORD    wSettableStopParity;
655         DWORD   dwCurrentTxQueue;
656         DWORD   dwCurrentRxQueue;
657         DWORD   dwProvSpec1;
658         DWORD   dwProvSpec2;
659         WCHAR   wcProvChar[1];
660 } COMMPROP,*LPCOMMPROP;
661 typedef struct _COMMTIMEOUTS {
662         DWORD ReadIntervalTimeout;
663         DWORD ReadTotalTimeoutMultiplier;
664         DWORD ReadTotalTimeoutConstant;
665         DWORD WriteTotalTimeoutMultiplier;
666         DWORD WriteTotalTimeoutConstant;
667 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
668 typedef struct _COMSTAT {
669         DWORD fCtsHold:1;
670         DWORD fDsrHold:1;
671         DWORD fRlsdHold:1;
672         DWORD fXoffHold:1;
673         DWORD fXoffSent:1;
674         DWORD fEof:1;
675         DWORD fTxim:1;
676         DWORD fReserved:25;
677         DWORD cbInQue;
678         DWORD cbOutQue;
679 } COMSTAT,*LPCOMSTAT;
680 typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID);
681 typedef struct _CREATE_PROCESS_DEBUG_INFO {
682         HANDLE hFile;
683         HANDLE hProcess;
684         HANDLE hThread;
685         LPVOID lpBaseOfImage;
686         DWORD dwDebugInfoFileOffset;
687         DWORD nDebugInfoSize;
688         LPVOID lpThreadLocalBase;
689         LPTHREAD_START_ROUTINE lpStartAddress;
690         LPVOID lpImageName;
691         WORD fUnicode;
692 } CREATE_PROCESS_DEBUG_INFO,*LPCREATE_PROCESS_DEBUG_INFO;
693 typedef struct _CREATE_THREAD_DEBUG_INFO {
694         HANDLE hThread;
695         LPVOID lpThreadLocalBase;
696         LPTHREAD_START_ROUTINE lpStartAddress;
697 } CREATE_THREAD_DEBUG_INFO,*LPCREATE_THREAD_DEBUG_INFO;
698 typedef struct _EXCEPTION_DEBUG_INFO {
699         EXCEPTION_RECORD ExceptionRecord;
700         DWORD dwFirstChance;
701 } EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
702 typedef struct _EXIT_THREAD_DEBUG_INFO {
703         DWORD dwExitCode;
704 } EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
705 typedef struct _EXIT_PROCESS_DEBUG_INFO {
706         DWORD dwExitCode;
707 } EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
708 typedef struct _LOAD_DLL_DEBUG_INFO {
709         HANDLE hFile;
710         LPVOID lpBaseOfDll;
711         DWORD dwDebugInfoFileOffset;
712         DWORD nDebugInfoSize;
713         LPVOID lpImageName;
714         WORD fUnicode;
715 } LOAD_DLL_DEBUG_INFO,*LPLOAD_DLL_DEBUG_INFO;
716 typedef struct _UNLOAD_DLL_DEBUG_INFO {
717         LPVOID lpBaseOfDll;
718 } UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
719 typedef struct _OUTPUT_DEBUG_STRING_INFO {
720         LPSTR lpDebugStringData;
721         WORD fUnicode;
722         WORD nDebugStringLength;
723 } OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO;
724 typedef struct _RIP_INFO {
725         DWORD dwError;
726         DWORD dwType;
727 } RIP_INFO,*LPRIP_INFO;
728 typedef struct _DEBUG_EVENT {
729         DWORD dwDebugEventCode;
730         DWORD dwProcessId;
731         DWORD dwThreadId;
732         union {
733                 EXCEPTION_DEBUG_INFO Exception;
734                 CREATE_THREAD_DEBUG_INFO CreateThread;
735                 CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
736                 EXIT_THREAD_DEBUG_INFO ExitThread;
737                 EXIT_PROCESS_DEBUG_INFO ExitProcess;
738                 LOAD_DLL_DEBUG_INFO LoadDll;
739                 UNLOAD_DLL_DEBUG_INFO UnloadDll;
740                 OUTPUT_DEBUG_STRING_INFO DebugString;
741                 RIP_INFO RipInfo;
742         } u;
743 } DEBUG_EVENT,*LPDEBUG_EVENT;
744 typedef struct _OVERLAPPED {
745         ULONG_PTR Internal;
746         ULONG_PTR InternalHigh;
747         __GNUC_EXTENSION union {
748                 __GNUC_EXTENSION struct {
749         DWORD Offset;
750         DWORD OffsetHigh;
751         };
752         PVOID Pointer;
753         };
754         HANDLE hEvent;
755 } OVERLAPPED,*POVERLAPPED,*LPOVERLAPPED;
756 typedef struct _STARTUPINFOA {
757         DWORD   cb;
758         LPSTR   lpReserved;
759         LPSTR   lpDesktop;
760         LPSTR   lpTitle;
761         DWORD   dwX;
762         DWORD   dwY;
763         DWORD   dwXSize;
764         DWORD   dwYSize;
765         DWORD   dwXCountChars;
766         DWORD   dwYCountChars;
767         DWORD   dwFillAttribute;
768         DWORD   dwFlags;
769         WORD    wShowWindow;
770         WORD    cbReserved2;
771         PBYTE   lpReserved2;
772         HANDLE  hStdInput;
773         HANDLE  hStdOutput;
774         HANDLE  hStdError;
775 } STARTUPINFOA,*LPSTARTUPINFOA;
776 typedef struct _STARTUPINFOW {
777         DWORD   cb;
778         LPWSTR  lpReserved;
779         LPWSTR  lpDesktop;
780         LPWSTR  lpTitle;
781         DWORD   dwX;
782         DWORD   dwY;
783         DWORD   dwXSize;
784         DWORD   dwYSize;
785         DWORD   dwXCountChars;
786         DWORD   dwYCountChars;
787         DWORD   dwFillAttribute;
788         DWORD   dwFlags;
789         WORD    wShowWindow;
790         WORD    cbReserved2;
791         PBYTE   lpReserved2;
792         HANDLE  hStdInput;
793         HANDLE  hStdOutput;
794         HANDLE  hStdError;
795 } STARTUPINFOW,*LPSTARTUPINFOW;
796 typedef struct _PROCESS_INFORMATION {
797         HANDLE hProcess;
798         HANDLE hThread;
799         DWORD dwProcessId;
800         DWORD dwThreadId;
801 } PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
802 typedef struct _CRITICAL_SECTION_DEBUG {
803         WORD Type;
804         WORD CreatorBackTraceIndex;
805         struct _CRITICAL_SECTION *CriticalSection;
806         LIST_ENTRY ProcessLocksList;
807         DWORD EntryCount;
808         DWORD ContentionCount;
809         DWORD Spare [2];
810 } CRITICAL_SECTION_DEBUG,*PCRITICAL_SECTION_DEBUG;
811 typedef struct _CRITICAL_SECTION {
812         PCRITICAL_SECTION_DEBUG DebugInfo;
813         LONG LockCount;
814         LONG RecursionCount;
815         HANDLE OwningThread;
816         HANDLE LockSemaphore;
817         DWORD SpinCount;
818 } CRITICAL_SECTION,*PCRITICAL_SECTION,*LPCRITICAL_SECTION;
819 typedef struct _SYSTEMTIME {
820         WORD wYear;
821         WORD wMonth;
822         WORD wDayOfWeek;
823         WORD wDay;
824         WORD wHour;
825         WORD wMinute;
826         WORD wSecond;
827         WORD wMilliseconds;
828 } SYSTEMTIME,*LPSYSTEMTIME;
829 typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
830         DWORD   dwFileAttributes;
831         FILETIME        ftCreationTime;
832         FILETIME        ftLastAccessTime;
833         FILETIME        ftLastWriteTime;
834         DWORD   nFileSizeHigh;
835         DWORD   nFileSizeLow;
836 } WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA;
837 typedef struct _WIN32_FIND_DATAA {
838         DWORD dwFileAttributes;
839         FILETIME ftCreationTime;
840         FILETIME ftLastAccessTime;
841         FILETIME ftLastWriteTime;
842         DWORD nFileSizeHigh;
843         DWORD nFileSizeLow;
844
845 #ifdef _WIN32_WCE
846     DWORD dwOID;
847 #else
848         DWORD dwReserved0;
849         DWORD dwReserved1;
850 #endif
851
852         CHAR cFileName[MAX_PATH];
853
854 #ifndef _WIN32_WCE
855         CHAR cAlternateFileName[14];
856 #endif
857
858 } WIN32_FIND_DATAA,*PWIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
859 typedef struct _WIN32_FIND_DATAW {
860         DWORD dwFileAttributes;
861         FILETIME ftCreationTime;
862         FILETIME ftLastAccessTime;
863         FILETIME ftLastWriteTime;
864         DWORD nFileSizeHigh;
865         DWORD nFileSizeLow;
866
867 #ifdef _WIN32_WCE
868     DWORD dwOID;
869 #else
870         DWORD dwReserved0;
871         DWORD dwReserved1;
872 #endif
873
874         WCHAR cFileName[MAX_PATH];
875
876 #ifndef _WIN32_WCE
877         WCHAR cAlternateFileName[14];
878 #endif
879
880 } WIN32_FIND_DATAW,*PWIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
881 typedef struct _WIN32_STREAM_ID {
882         DWORD dwStreamId;
883         DWORD dwStreamAttributes;
884         LARGE_INTEGER Size;
885         DWORD dwStreamNameSize;
886         WCHAR cStreamName[ANYSIZE_ARRAY];
887 } WIN32_STREAM_ID, *LPWIN32_STREAM_ID;
888 typedef enum _FINDEX_INFO_LEVELS {
889         FindExInfoStandard,
890         FindExInfoMaxInfoLevel
891 } FINDEX_INFO_LEVELS;
892 typedef enum _FINDEX_SEARCH_OPS {
893         FindExSearchNameMatch,
894         FindExSearchLimitToDirectories,
895         FindExSearchLimitToDevices,
896         FindExSearchMaxSearchOp
897 } FINDEX_SEARCH_OPS;
898 typedef enum _ACL_INFORMATION_CLASS {
899         AclRevisionInformation=1,
900         AclSizeInformation
901 } ACL_INFORMATION_CLASS;
902 typedef struct tagHW_PROFILE_INFOA {
903         DWORD dwDockInfo;
904         CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
905         CHAR szHwProfileName[MAX_PROFILE_LEN];
906 } HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA;
907 typedef struct tagHW_PROFILE_INFOW {
908         DWORD dwDockInfo;
909         WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
910         WCHAR szHwProfileName[MAX_PROFILE_LEN];
911 } HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW;
912 typedef enum _GET_FILEEX_INFO_LEVELS {
913         GetFileExInfoStandard,
914         GetFileExMaxInfoLevel
915 } GET_FILEEX_INFO_LEVELS;
916 typedef struct _SYSTEM_INFO {
917         _ANONYMOUS_UNION union {
918                 DWORD dwOemId;
919                 _ANONYMOUS_STRUCT struct {
920                         WORD wProcessorArchitecture;
921                         WORD wReserved;
922                 } DUMMYSTRUCTNAME;
923         } DUMMYUNIONNAME;
924         DWORD dwPageSize;
925         PVOID lpMinimumApplicationAddress;
926         PVOID lpMaximumApplicationAddress;
927         DWORD dwActiveProcessorMask;
928         DWORD dwNumberOfProcessors;
929         DWORD dwProcessorType;
930         DWORD dwAllocationGranularity;
931         WORD wProcessorLevel;
932         WORD wProcessorRevision;
933 } SYSTEM_INFO,*LPSYSTEM_INFO;
934 typedef struct _SYSTEM_POWER_STATUS {
935         BYTE ACLineStatus;
936         BYTE BatteryFlag;
937         BYTE BatteryLifePercent;
938         BYTE Reserved1;
939         DWORD BatteryLifeTime;
940         DWORD BatteryFullLifeTime;
941 } SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
942 typedef struct _TIME_ZONE_INFORMATION {
943         LONG Bias;
944         WCHAR StandardName[32];
945         SYSTEMTIME StandardDate;
946         LONG StandardBias;
947         WCHAR DaylightName[32];
948         SYSTEMTIME DaylightDate;
949         LONG DaylightBias;
950 } TIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION;
951 typedef struct _MEMORYSTATUS {
952         DWORD dwLength;
953         DWORD dwMemoryLoad;
954         DWORD dwTotalPhys;
955         DWORD dwAvailPhys;
956         DWORD dwTotalPageFile;
957         DWORD dwAvailPageFile;
958         DWORD dwTotalVirtual;
959         DWORD dwAvailVirtual;
960 } MEMORYSTATUS,*LPMEMORYSTATUS;
961
962 typedef struct _LDT_ENTRY {
963         WORD LimitLow;
964         WORD BaseLow;
965         union {
966                 struct {
967                         BYTE BaseMid;
968                         BYTE Flags1;
969                         BYTE Flags2;
970                         BYTE BaseHi;
971                 } Bytes;
972                 struct {
973                         DWORD BaseMid:8;
974                         DWORD Type:5;
975                         DWORD Dpl:2;
976                         DWORD Pres:1;
977                         DWORD LimitHi:4;
978                         DWORD Sys:1;
979                         DWORD Reserved_0:1;
980                         DWORD Default_Big:1;
981                         DWORD Granularity:1;
982                         DWORD BaseHi:8;
983                 } Bits;
984         } HighWord;
985 } LDT_ENTRY,*PLDT_ENTRY,*LPLDT_ENTRY;
986 typedef struct _PROCESS_HEAP_ENTRY {
987         PVOID lpData;
988         DWORD cbData;
989         BYTE cbOverhead;
990         BYTE iRegionIndex;
991         WORD wFlags;
992         _ANONYMOUS_UNION union {
993                 struct {
994                         HANDLE hMem;
995                         DWORD dwReserved[3];
996                 } Block;
997                 struct {
998                         DWORD dwCommittedSize;
999                         DWORD dwUnCommittedSize;
1000                         LPVOID lpFirstBlock;
1001                         LPVOID lpLastBlock;
1002                 } Region;
1003         } DUMMYUNIONNAME;
1004 } PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY;
1005 typedef struct _OFSTRUCT {
1006         BYTE cBytes;
1007         BYTE fFixedDisk;
1008         WORD nErrCode;
1009         WORD Reserved1;
1010         WORD Reserved2;
1011         CHAR szPathName[OFS_MAXPATHNAME];
1012 } OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
1013 typedef struct _WIN_CERTIFICATE {
1014       DWORD dwLength;
1015       WORD wRevision;
1016       WORD wCertificateType;
1017       BYTE bCertificate[1];
1018 } WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
1019
1020 typedef DWORD(WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,DWORD,DWORD,HANDLE,HANDLE,LPVOID);
1021 typedef void(WINAPI *LPFIBER_START_ROUTINE)(PVOID);
1022 typedef BOOL(CALLBACK *ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG);
1023 typedef BOOL(CALLBACK *ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG);
1024 #define ENUMRESLANGPROC __AW(ENUMRESLANGPROC)
1025
1026 typedef BOOL(CALLBACK *ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG);
1027 typedef BOOL(CALLBACK *ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG);
1028
1029 #define ENUMRESNAMEPROC __AW(ENUMRESNAMEPROC)
1030
1031 typedef BOOL(CALLBACK *ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG);
1032 typedef BOOL(CALLBACK *ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG);
1033
1034 #define ENUMRESTYPEPROC __AW(ENUMRESTYPEPROC)
1035
1036 typedef void(CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
1037 typedef LONG(CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS);
1038 typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1039 typedef void(APIENTRY *PAPCFUNC)(ULONG_PTR);
1040 typedef void(CALLBACK *PTIMERAPCROUTINE)(PVOID,DWORD,DWORD);
1041
1042 #define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i)))
1043 /* Functions */
1044
1045 #ifndef UNDER_CE
1046 int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
1047 #else
1048 int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPWSTR,int);
1049 #endif
1050
1051 BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID);
1052 int APIENTRY wWinMain(HINSTANCE,HINSTANCE,LPWSTR,int);
1053 WINBASEAPI long WINAPI _hread(HFILE,LPVOID,long);
1054 WINBASEAPI long WINAPI _hwrite(HFILE,LPCSTR,long);
1055 WINBASEAPI HFILE WINAPI _lclose(HFILE);
1056 WINBASEAPI HFILE WINAPI _lcreat(LPCSTR,int);
1057 WINBASEAPI LONG WINAPI _llseek(HFILE,LONG,int);
1058 WINBASEAPI HFILE WINAPI _lopen(LPCSTR,int);
1059 WINBASEAPI UINT WINAPI _lread(HFILE,LPVOID,UINT);
1060 WINBASEAPI UINT WINAPI _lwrite(HFILE,LPCSTR,UINT);
1061 #define AbnormalTermination() FALSE
1062 WINBASEAPI BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,PDWORD,PDWORD,PBOOL);
1063 WINBASEAPI BOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
1064 WINBASEAPI BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL);
1065
1066 WINBASEAPI BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
1067 WINBASEAPI BOOL WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
1068
1069 WINBASEAPI BOOL WINAPI AddAce(PACL,DWORD,DWORD,PVOID,DWORD);
1070 WINBASEAPI ATOM WINAPI AddAtomA(LPCSTR);
1071 WINBASEAPI ATOM WINAPI AddAtomW(LPCWSTR);
1072 WINBASEAPI BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
1073
1074 WINBASEAPI BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
1075 WINBASEAPI BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
1076 WINBASEAPI BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID*);
1077 WINBASEAPI BOOL WINAPI AllocateLocallyUniqueId(PLUID);
1078 WINBASEAPI BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD);
1079 WINBASEAPI BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD);
1080 WINBASEAPI BOOL WINAPI AreFileApisANSI(void);
1081 WINBASEAPI BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR);
1082 WINBASEAPI BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR);
1083 WINBASEAPI BOOL WINAPI BackupRead(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1084 WINBASEAPI BOOL WINAPI BackupSeek(HANDLE,DWORD,DWORD,LPDWORD,LPDWORD,LPVOID*);
1085 WINBASEAPI BOOL WINAPI BackupWrite(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1086 WINBASEAPI BOOL WINAPI Beep(DWORD,DWORD);
1087 WINBASEAPI HANDLE WINAPI BeginUpdateResourceA(LPCSTR,BOOL);
1088 WINBASEAPI HANDLE WINAPI BeginUpdateResourceW(LPCWSTR,BOOL);
1089 WINBASEAPI BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB);
1090 WINBASEAPI BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB);
1091 WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS);
1092 WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS);
1093 WINBASEAPI BOOL WINAPI CallNamedPipeA(LPCSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD);
1094 WINBASEAPI BOOL WINAPI CallNamedPipeW(LPCWSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD);
1095 WINBASEAPI BOOL WINAPI CancelDeviceWakeupRequest(HANDLE);
1096 WINBASEAPI BOOL WINAPI CancelIo(HANDLE);
1097 WINBASEAPI BOOL WINAPI CancelWaitableTimer(HANDLE);
1098
1099 WINBASEAPI BOOL WINAPI ClearCommBreak(HANDLE);
1100 WINBASEAPI BOOL WINAPI ClearCommError(HANDLE,PDWORD,LPCOMSTAT);
1101 WINBASEAPI BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR);
1102 WINBASEAPI BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR);
1103 WINBASEAPI BOOL WINAPI CloseEventLog(HANDLE);
1104 WINBASEAPI BOOL WINAPI CloseHandle(HANDLE);
1105 WINBASEAPI BOOL WINAPI CommConfigDialogA(LPCSTR,HWND,LPCOMMCONFIG);
1106 WINBASEAPI BOOL WINAPI CommConfigDialogW(LPCWSTR,HWND,LPCOMMCONFIG);
1107 WINBASEAPI LONG WINAPI CompareFileTime(CONST FILETIME*,CONST FILETIME*);
1108 WINBASEAPI BOOL WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED);
1109 WINBASEAPI BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
1110 WINBASEAPI BOOL WINAPI ConvertFiberToThread(void);
1111
1112 WINBASEAPI PVOID WINAPI ConvertThreadToFiber(PVOID);
1113 WINBASEAPI BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,BOOL);
1114 WINBASEAPI BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,BOOL);
1115 WINBASEAPI BOOL WINAPI CopyFileExA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD);
1116 WINBASEAPI BOOL WINAPI CopyFileExW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD);
1117 #define RtlMoveMemory memmove
1118 #define RtlCopyMemory memcpy
1119 #define RtlFillMemory(d,l,f) memset((d), (f), (l))
1120 #define RtlZeroMemory(d,l) RtlFillMemory((d),(l),0)
1121 #define MoveMemory RtlMoveMemory
1122 #define CopyMemory RtlCopyMemory
1123 #define FillMemory RtlFillMemory
1124 #define ZeroMemory RtlZeroMemory
1125 WINBASEAPI BOOL WINAPI CopySid(DWORD,PSID,PSID);
1126
1127 WINBASEAPI BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
1128 WINBASEAPI BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
1129 WINBASEAPI BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1130 WINBASEAPI BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1131 WINBASEAPI HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1132 WINBASEAPI HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1133 WINBASEAPI LPVOID WINAPI CreateFiber(SIZE_T,LPFIBER_START_ROUTINE,LPVOID);
1134 WINBASEAPI LPVOID WINAPI CreateFiberEx(SIZE_T,SIZE_T,DWORD,LPFIBER_START_ROUTINE,LPVOID);
1135
1136 WINBASEAPI HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1137 WINBASEAPI HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1138 WINBASEAPI HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR);
1139 WINBASEAPI HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR);
1140
1141 WINBASEAPI HANDLE WINAPI CreateIoCompletionPort(HANDLE,HANDLE,ULONG_PTR,DWORD);
1142
1143 WINBASEAPI HANDLE WINAPI CreateMailslotA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1144 WINBASEAPI HANDLE WINAPI CreateMailslotW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1145
1146 WINBASEAPI HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1147 WINBASEAPI HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1148 WINBASEAPI HANDLE WINAPI CreateNamedPipeA(LPCSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1149 WINBASEAPI HANDLE WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1150 WINBASEAPI BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1151 WINBASEAPI BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
1152 WINBASEAPI BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1153 WINBASEAPI BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1154 WINBASEAPI BOOL WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1155 WINBASEAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1156
1157 WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1158
1159 WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
1160 WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
1161
1162 WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
1163
1164 WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,PVOID,DWORD,PDWORD);
1165 WINBASEAPI HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1166 WINBASEAPI HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1167
1168 WINBASEAPI BOOL WINAPI DebugActiveProcess(DWORD);
1169 WINBASEAPI void WINAPI DebugBreak(void);
1170
1171
1172 WINBASEAPI BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR);
1173 WINBASEAPI BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1174 #define DefineHandleTable(w) ((w),TRUE)
1175 WINBASEAPI BOOL WINAPI DeleteAce(PACL,DWORD);
1176 WINBASEAPI ATOM WINAPI DeleteAtom(ATOM);
1177 WINBASEAPI void WINAPI DeleteCriticalSection(PCRITICAL_SECTION);
1178 WINBASEAPI void WINAPI DeleteFiber(PVOID);
1179 WINBASEAPI BOOL WINAPI DeleteFileA(LPCSTR);
1180 WINBASEAPI BOOL WINAPI DeleteFileW(LPCWSTR);
1181
1182 WINBASEAPI BOOL WINAPI DeregisterEventSource(HANDLE);
1183 WINBASEAPI BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
1184 WINBASEAPI BOOL WINAPI DeviceIoControl(HANDLE,DWORD,PVOID,DWORD,PVOID,DWORD,PDWORD,POVERLAPPED);
1185 WINBASEAPI BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
1186
1187 WINBASEAPI BOOL WINAPI DisconnectNamedPipe(HANDLE);
1188 WINBASEAPI BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
1189 WINBASEAPI BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,PHANDLE,DWORD,BOOL,DWORD);
1190 WINBASEAPI BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
1191 WINBASEAPI BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
1192 WINBASEAPI BOOL WINAPI EncryptFileA(LPCSTR);
1193 WINBASEAPI BOOL WINAPI EncryptFileW(LPCWSTR);
1194 WINBASEAPI BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
1195 WINBASEAPI BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
1196 WINBASEAPI void WINAPI EnterCriticalSection(LPCRITICAL_SECTION);
1197 WINBASEAPI BOOL WINAPI EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG_PTR);
1198 WINBASEAPI BOOL WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG_PTR);
1199 WINBASEAPI BOOL WINAPI EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG_PTR);
1200 WINBASEAPI BOOL WINAPI EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG_PTR);
1201 WINBASEAPI BOOL WINAPI EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG_PTR);
1202 WINBASEAPI BOOL WINAPI EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG_PTR);
1203 WINBASEAPI BOOL WINAPI EqualPrefixSid(PSID,PSID);
1204 WINBASEAPI BOOL WINAPI EqualSid(PSID,PSID);
1205 WINBASEAPI DWORD WINAPI EraseTape(HANDLE,DWORD,BOOL);
1206 WINBASEAPI BOOL WINAPI EscapeCommFunction(HANDLE,DWORD);
1207 DECLSPEC_NORETURN WINBASEAPI void WINAPI ExitProcess(UINT);
1208 DECLSPEC_NORETURN WINBASEAPI void WINAPI ExitThread(DWORD);
1209 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
1210 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
1211 WINBASEAPI void WINAPI FatalAppExitA(UINT,LPCSTR);
1212 WINBASEAPI void WINAPI FatalAppExitW(UINT,LPCWSTR);
1213 WINBASEAPI void WINAPI FatalExit(int);
1214 WINBASEAPI BOOL WINAPI FileEncryptionStatusA(LPCSTR,LPDWORD);
1215 WINBASEAPI BOOL WINAPI FileEncryptionStatusW(LPCWSTR,LPDWORD);
1216 WINBASEAPI BOOL WINAPI FileTimeToDosDateTime(CONST FILETIME *,LPWORD,LPWORD);
1217 WINBASEAPI BOOL WINAPI FileTimeToLocalFileTime(CONST FILETIME *,LPFILETIME);
1218 WINBASEAPI BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *,LPSYSTEMTIME);
1219
1220 WINBASEAPI ATOM WINAPI FindAtomA(LPCSTR);
1221 WINBASEAPI ATOM WINAPI FindAtomW(LPCWSTR);
1222 WINBASEAPI BOOL WINAPI FindClose(HANDLE);
1223 WINBASEAPI BOOL WINAPI FindCloseChangeNotification(HANDLE);
1224 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
1225 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
1226 WINBASEAPI HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
1227 WINBASEAPI HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
1228 WINBASEAPI HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1229 WINBASEAPI HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
1230 WINBASEAPI BOOL WINAPI FindFirstFreeAce(PACL,PVOID*);
1231
1232 WINBASEAPI BOOL WINAPI FindNextChangeNotification(HANDLE);
1233 WINBASEAPI BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
1234 WINBASEAPI BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
1235
1236 WINBASEAPI HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR);
1237 WINBASEAPI HRSRC WINAPI FindResourceW(HINSTANCE,LPCWSTR,LPCWSTR);
1238 WINBASEAPI HRSRC WINAPI FindResourceExA(HINSTANCE,LPCSTR,LPCSTR,WORD);
1239 WINBASEAPI HRSRC WINAPI FindResourceExW(HINSTANCE,LPCWSTR,LPCWSTR,WORD);
1240
1241 WINBASEAPI BOOL WINAPI FlushFileBuffers(HANDLE);
1242 WINBASEAPI BOOL WINAPI FlushInstructionCache(HANDLE,PCVOID,DWORD);
1243 WINBASEAPI BOOL WINAPI FlushViewOfFile(PCVOID,DWORD);
1244 WINBASEAPI DWORD WINAPI FormatMessageA(DWORD,PCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
1245 WINBASEAPI DWORD WINAPI FormatMessageW(DWORD,PCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
1246 WINBASEAPI BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
1247 WINBASEAPI BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
1248 WINBASEAPI BOOL WINAPI FreeLibrary(HMODULE);
1249 DECLSPEC_NORETURN WINBASEAPI void WINAPI FreeLibraryAndExitThread(HMODULE,DWORD);
1250 #define FreeModule(m) FreeLibrary(m)
1251 #define FreeProcInstance(p) (void)(p)
1252 WINBASEAPI BOOL WINAPI FreeResource(HGLOBAL);
1253 WINBASEAPI PVOID WINAPI FreeSid(PSID);
1254 WINBASEAPI BOOL WINAPI GetAce(PACL,DWORD,LPVOID*);
1255 WINBASEAPI BOOL WINAPI GetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1256 WINBASEAPI UINT WINAPI GetAtomNameA(ATOM,LPSTR,int);
1257 WINBASEAPI UINT WINAPI GetAtomNameW(ATOM,LPWSTR,int);
1258 WINBASEAPI BOOL WINAPI GetBinaryTypeA(LPCSTR,PDWORD);
1259 WINBASEAPI BOOL WINAPI GetBinaryTypeW(LPCWSTR,PDWORD);
1260 WINBASEAPI LPSTR WINAPI GetCommandLineA(VOID);
1261 WINBASEAPI LPWSTR WINAPI GetCommandLineW(VOID);
1262 WINBASEAPI BOOL WINAPI GetCommConfig(HANDLE,LPCOMMCONFIG,PDWORD);
1263 WINBASEAPI BOOL WINAPI GetCommMask(HANDLE,PDWORD);
1264 WINBASEAPI BOOL WINAPI GetCommModemStatus(HANDLE,PDWORD);
1265 WINBASEAPI BOOL WINAPI GetCommProperties(HANDLE,LPCOMMPROP);
1266 WINBASEAPI BOOL WINAPI GetCommState(HANDLE,LPDCB);
1267 WINBASEAPI BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1268 WINBASEAPI DWORD WINAPI GetCompressedFileSizeA(LPCSTR,PDWORD);
1269 WINBASEAPI DWORD WINAPI GetCompressedFileSizeW(LPCWSTR,PDWORD);
1270 WINBASEAPI BOOL WINAPI GetComputerNameA(LPSTR,PDWORD);
1271 WINBASEAPI BOOL WINAPI GetComputerNameW(LPWSTR,PDWORD);
1272
1273 WINBASEAPI DWORD WINAPI GetCurrentDirectoryA(DWORD,LPSTR);
1274 WINBASEAPI DWORD WINAPI GetCurrentDirectoryW(DWORD,LPWSTR);
1275 WINBASEAPI BOOL WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA);
1276 WINBASEAPI BOOL WINAPI GetCurrentHwProfileW(LPHW_PROFILE_INFOW);
1277 WINBASEAPI HANDLE WINAPI GetCurrentProcess(void);
1278 WINBASEAPI DWORD WINAPI GetCurrentProcessId(void);
1279 WINBASEAPI HANDLE WINAPI GetCurrentThread(void);
1280
1281 #ifdef _WIN32_WCE
1282 extern DWORD GetCurrentThreadId(void);
1283 #else
1284 WINBASEAPI DWORD WINAPI GetCurrentThreadId(void);
1285 #endif
1286
1287 #define GetCurrentTime GetTickCount
1288 WINBASEAPI BOOL WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,PDWORD);
1289 WINBASEAPI BOOL WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,PDWORD);
1290 WINBASEAPI BOOL WINAPI GetDevicePowerState(HANDLE, BOOL*);
1291 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,PDWORD,PDWORD,PDWORD,PDWORD);
1292 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,PDWORD,PDWORD,PDWORD,PDWORD);
1293 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1294 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1295
1296 WINBASEAPI UINT WINAPI GetDriveTypeA(LPCSTR);
1297 WINBASEAPI UINT WINAPI GetDriveTypeW(LPCWSTR);
1298 WINBASEAPI LPCH WINAPI GetEnvironmentStrings(void);
1299 WINBASEAPI LPCH WINAPI GetEnvironmentStringsA(void);
1300 WINBASEAPI LPWCH WINAPI GetEnvironmentStringsW(void);
1301 WINBASEAPI DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
1302 WINBASEAPI DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
1303 WINBASEAPI BOOL WINAPI GetExitCodeProcess(HANDLE,PDWORD);
1304 WINBASEAPI BOOL WINAPI GetExitCodeThread(HANDLE,PDWORD);
1305 WINBASEAPI DWORD WINAPI GetFileAttributesA(LPCSTR);
1306 WINBASEAPI DWORD WINAPI GetFileAttributesW(LPCWSTR);
1307 WINBASEAPI BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,PVOID);
1308 WINBASEAPI BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,PVOID);
1309 WINBASEAPI BOOL WINAPI GetFileInformationByHandle(HANDLE,LPBY_HANDLE_FILE_INFORMATION);
1310
1311 WINBASEAPI BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1312 WINBASEAPI BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1313 WINBASEAPI DWORD WINAPI GetFileSize(HANDLE,PDWORD);
1314
1315 WINBASEAPI BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
1316 WINBASEAPI DWORD WINAPI GetFileType(HANDLE);
1317
1318 #define GetFreeSpace(w) (0x100000L)
1319 WINBASEAPI DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
1320 WINBASEAPI DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1321 WINBASEAPI BOOL WINAPI GetHandleInformation(HANDLE,PDWORD);
1322 WINBASEAPI BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1323 WINBASEAPI DWORD WINAPI GetLastError(void);
1324 WINBASEAPI DWORD WINAPI GetLengthSid(PSID);
1325 WINBASEAPI void WINAPI GetLocalTime(LPSYSTEMTIME);
1326 WINBASEAPI DWORD WINAPI GetLogicalDrives(void);
1327 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA(DWORD,LPSTR);
1328 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR);
1329
1330 WINBASEAPI BOOL WINAPI GetMailslotInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
1331 WINBASEAPI DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
1332 WINBASEAPI DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD);
1333 WINBASEAPI HMODULE WINAPI GetModuleHandleA(LPCSTR);
1334 WINBASEAPI HMODULE WINAPI GetModuleHandleW(LPCWSTR);
1335
1336 WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateA(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD);
1337 WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateW(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
1338 WINBASEAPI BOOL WINAPI GetNamedPipeInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
1339
1340 WINBASEAPI BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
1341 WINBASEAPI BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
1342 WINBASEAPI BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,PDWORD,BOOL);
1343 WINBASEAPI DWORD WINAPI GetPriorityClass(HANDLE);
1344 WINBASEAPI BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
1345 WINBASEAPI UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR);
1346 WINBASEAPI UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR);
1347 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR);
1348 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1349 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR);
1350 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR);
1351 WINBASEAPI DWORD WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD,LPCSTR);
1352 WINBASEAPI DWORD WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1353 WINBASEAPI BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
1354 WINBASEAPI BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
1355 WINBASEAPI FARPROC WINAPI GetProcAddress(HINSTANCE,LPCSTR);
1356 WINBASEAPI BOOL WINAPI GetProcessAffinityMask(HANDLE,PDWORD,PDWORD);
1357
1358 WINBASEAPI HANDLE WINAPI GetProcessHeap(VOID);
1359 WINBASEAPI DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
1360
1361 WINBASEAPI BOOL WINAPI GetProcessPriorityBoost(HANDLE,PBOOL);
1362 WINBASEAPI BOOL WINAPI GetProcessShutdownParameters(PDWORD,PDWORD);
1363 WINBASEAPI BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1364 WINBASEAPI DWORD WINAPI GetProcessVersion(DWORD);
1365 WINBASEAPI HWINSTA WINAPI GetProcessWindowStation(void);
1366 WINBASEAPI BOOL WINAPI GetProcessWorkingSetSize(HANDLE,PSIZE_T,PSIZE_T);
1367 WINBASEAPI UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT);
1368 WINBASEAPI UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT);
1369 WINBASEAPI DWORD WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD);
1370 WINBASEAPI DWORD WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD);
1371 WINBASEAPI DWORD WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD);
1372 WINBASEAPI DWORD WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD);
1373 WINBASEAPI BOOL WINAPI GetQueuedCompletionStatus(HANDLE,PDWORD,PULONG_PTR,LPOVERLAPPED*,DWORD);
1374 WINBASEAPI BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,PDWORD);
1375 WINBASEAPI BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
1376 WINBASEAPI BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
1377 WINBASEAPI DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
1378 WINBASEAPI BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID*,LPBOOL);
1379 WINBASEAPI BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL);
1380 WINBASEAPI DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD);
1381 WINBASEAPI DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
1382 WINBASEAPI PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
1383 WINBASEAPI DWORD WINAPI GetSidLengthRequired(UCHAR);
1384 WINBASEAPI PDWORD WINAPI GetSidSubAuthority(PSID,DWORD);
1385 WINBASEAPI PUCHAR WINAPI GetSidSubAuthorityCount(PSID);
1386 WINBASEAPI VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA);
1387 WINBASEAPI VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW);
1388 WINBASEAPI HANDLE WINAPI GetStdHandle(DWORD);
1389
1390 WINBASEAPI UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
1391 WINBASEAPI UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
1392 WINBASEAPI VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
1393 WINBASEAPI BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
1394 WINBASEAPI VOID WINAPI GetSystemTime(LPSYSTEMTIME);
1395
1396 WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
1397 WINBASEAPI void WINAPI GetSystemTimeAsFileTime(LPFILETIME);
1398
1399 WINBASEAPI DWORD WINAPI GetTapeParameters(HANDLE,DWORD,PDWORD,PVOID);
1400 WINBASEAPI DWORD WINAPI GetTapePosition(HANDLE,DWORD,PDWORD,PDWORD,PDWORD);
1401 WINBASEAPI DWORD WINAPI GetTapeStatus(HANDLE);
1402 WINBASEAPI UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR);
1403 WINBASEAPI UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
1404 WINBASEAPI DWORD WINAPI GetTempPathA(DWORD,LPSTR);
1405 WINBASEAPI DWORD WINAPI GetTempPathW(DWORD,LPWSTR);
1406 WINBASEAPI BOOL WINAPI GetThreadContext(HANDLE,LPCONTEXT);
1407
1408 WINBASEAPI int WINAPI GetThreadPriority(HANDLE);
1409 WINBASEAPI BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
1410 WINBASEAPI BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
1411 WINBASEAPI BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1412 WINBASEAPI DWORD WINAPI GetTickCount(VOID);
1413 WINBASEAPI DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
1414 WINBASEAPI BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD,PDWORD);
1415 WINBASEAPI BOOL WINAPI GetUserNameA (LPSTR,PDWORD);
1416 WINBASEAPI BOOL WINAPI GetUserNameW(LPWSTR,PDWORD);
1417 WINBASEAPI DWORD WINAPI GetVersion(void);
1418 WINBASEAPI BOOL WINAPI GetVersionExA(LPOSVERSIONINFOA);
1419 WINBASEAPI BOOL WINAPI GetVersionExW(LPOSVERSIONINFOW);
1420 WINBASEAPI BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD);
1421 WINBASEAPI BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD);
1422
1423 WINBASEAPI UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
1424 WINBASEAPI UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
1425 WINBASEAPI DWORD WINAPI GetWindowThreadProcessId(HWND,PDWORD);
1426 WINBASEAPI UINT WINAPI GetWriteWatch(DWORD,PVOID,SIZE_T,PVOID*,PULONG_PTR,PULONG);
1427 WINBASEAPI ATOM WINAPI GlobalAddAtomA(LPCSTR);
1428 WINBASEAPI ATOM WINAPI GlobalAddAtomW( LPCWSTR);
1429 WINBASEAPI HGLOBAL WINAPI GlobalAlloc(UINT,DWORD);
1430 WINBASEAPI SIZE_T WINAPI GlobalCompact(DWORD); /* Obsolete: Has no effect. */
1431 WINBASEAPI ATOM WINAPI GlobalDeleteAtom(ATOM);
1432 #define GlobalDiscard(hMem) GlobalReAlloc((hMem), 0, GMEM_MOVEABLE)
1433 WINBASEAPI ATOM WINAPI GlobalFindAtomA(LPCSTR);
1434 WINBASEAPI ATOM WINAPI GlobalFindAtomW(LPCWSTR);
1435 WINBASEAPI VOID WINAPI GlobalFix(HGLOBAL); /* Obsolete: Has no effect. */
1436 WINBASEAPI UINT WINAPI GlobalFlags(HGLOBAL); /* Obsolete: Has no effect. */
1437 WINBASEAPI HGLOBAL WINAPI GlobalFree(HGLOBAL);
1438 WINBASEAPI UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,int);
1439 WINBASEAPI UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,int);
1440 WINBASEAPI HGLOBAL WINAPI GlobalHandle(PCVOID);
1441 WINBASEAPI LPVOID WINAPI GlobalLock(HGLOBAL);
1442 WINBASEAPI VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
1443
1444 WINBASEAPI HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,DWORD,UINT);
1445 WINBASEAPI DWORD WINAPI GlobalSize(HGLOBAL);
1446 WINBASEAPI VOID WINAPI GlobalUnfix(HGLOBAL); /* Obsolete: Has no effect. */
1447 WINBASEAPI BOOL WINAPI GlobalUnlock(HGLOBAL);
1448 WINBASEAPI BOOL WINAPI GlobalUnWire(HGLOBAL); /* Obsolete: Has no effect. */
1449 WINBASEAPI PVOID WINAPI GlobalWire(HGLOBAL); /* Obsolete: Has no effect. */
1450 #define HasOverlappedIoCompleted(lpOverlapped)  ((lpOverlapped)->Internal != STATUS_PENDING)
1451 WINBASEAPI PVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD);
1452 SIZE_T WINAPI HeapCompact(HANDLE,DWORD);
1453 WINBASEAPI HANDLE WINAPI HeapCreate(DWORD,DWORD,DWORD);
1454 WINBASEAPI BOOL WINAPI HeapDestroy(HANDLE);
1455 WINBASEAPI BOOL WINAPI HeapFree(HANDLE,DWORD,PVOID);
1456 WINBASEAPI BOOL WINAPI HeapLock(HANDLE);
1457
1458 WINBASEAPI PVOID WINAPI HeapReAlloc(HANDLE,DWORD,PVOID,DWORD);
1459
1460 WINBASEAPI DWORD WINAPI HeapSize(HANDLE,DWORD,PCVOID);
1461 WINBASEAPI BOOL WINAPI HeapUnlock(HANDLE);
1462 WINBASEAPI BOOL WINAPI HeapValidate(HANDLE,DWORD,PCVOID);
1463 WINBASEAPI BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
1464 WINBASEAPI BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
1465 WINBASEAPI BOOL WINAPI ImpersonateNamedPipeClient(HANDLE);
1466 WINBASEAPI BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
1467 WINBASEAPI BOOL WINAPI InitAtomTable(DWORD);
1468 WINBASEAPI BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD);
1469 WINBASEAPI VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION);
1470 WINBASEAPI BOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION,DWORD);
1471 WINBASEAPI DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD);
1472 WINBASEAPI BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
1473 WINBASEAPI BOOL WINAPI InitializeSid (PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
1474
1475
1476 #if !(__USE_NTOSKRNL__)
1477 /* CAREFUL: These are exported from ntoskrnl.exe and declared in winddk.h
1478    as __fastcall functions, but are  exported from kernel32.dll as __stdcall */
1479
1480 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
1481 WINBASEAPI VOID WINAPI InitializeSListHead(PSLIST_HEADER);
1482 #endif
1483
1484 #ifndef __INTERLOCKED_DECLARED
1485 #define __INTERLOCKED_DECLARED
1486 LONG WINAPI InterlockedCompareExchange(LONG volatile *,LONG,LONG);
1487 /* PVOID WINAPI InterlockedCompareExchangePointer(PVOID*,PVOID,PVOID); */
1488 #define InterlockedCompareExchangePointer(d,e,c) \
1489     (PVOID)InterlockedCompareExchange((LONG volatile *)(d),(LONG)(e),(LONG)(c))
1490 /* MSDN documents this as __cdecl but it is not. */
1491 LONG WINAPI InterlockedDecrement(LONG volatile *);
1492 /* MSDN documents this as __cdecl but it is not. */
1493 LONG WINAPI InterlockedExchange(LONG volatile *,LONG);
1494 /* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */
1495 #define InterlockedExchangePointer(t,v) \
1496     (PVOID)InterlockedExchange((LONG volatile *)(t),(LONG)(v))
1497 LONG WINAPI InterlockedExchangeAdd(LONG volatile *,LONG);
1498
1499 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
1500 PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER);
1501 #endif
1502
1503 /* MSDN documents this as __cdecl but it is not. */
1504 LONG WINAPI InterlockedIncrement(LONG volatile *);
1505
1506 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
1507 PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER);
1508 PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY);
1509 #endif
1510
1511 #endif /* __INTERLOCKED_DECLARED */
1512
1513 #endif /*  __USE_NTOSKRNL__ */
1514
1515 WINBASEAPI BOOL WINAPI IsBadCodePtr(FARPROC);
1516 WINBASEAPI BOOL WINAPI IsBadHugeReadPtr(PCVOID,UINT);
1517 WINBASEAPI BOOL WINAPI IsBadHugeWritePtr(PVOID,UINT);
1518 WINBASEAPI BOOL WINAPI IsBadReadPtr(PCVOID,UINT);
1519 WINBASEAPI BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT);
1520 WINBASEAPI BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT);
1521 WINBASEAPI BOOL WINAPI IsBadWritePtr(PVOID,UINT);
1522 WINBASEAPI BOOL WINAPI IsDebuggerPresent(void);
1523
1524 WINBASEAPI BOOL WINAPI IsProcessorFeaturePresent(DWORD);
1525 WINBASEAPI BOOL WINAPI IsSystemResumeAutomatic(void);
1526 WINBASEAPI BOOL WINAPI IsTextUnicode(PCVOID,int,LPINT);
1527
1528 WINBASEAPI BOOL WINAPI IsValidAcl(PACL);
1529 WINBASEAPI BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
1530 WINBASEAPI BOOL WINAPI IsValidSid(PSID);
1531
1532 WINBASEAPI void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION);
1533 #define LimitEmsPages(n)
1534 WINBASEAPI HINSTANCE WINAPI LoadLibraryA(LPCSTR);
1535 WINBASEAPI HINSTANCE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
1536 WINBASEAPI HINSTANCE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
1537 WINBASEAPI HINSTANCE WINAPI LoadLibraryW(LPCWSTR);
1538 WINBASEAPI DWORD WINAPI LoadModule(LPCSTR,PVOID);
1539 WINBASEAPI HGLOBAL WINAPI LoadResource(HINSTANCE,HRSRC);
1540 WINBASEAPI HLOCAL WINAPI LocalAlloc(UINT,SIZE_T);
1541 WINBASEAPI SIZE_T WINAPI LocalCompact(UINT); /* Obsolete: Has no effect. */
1542 WINBASEAPI HLOCAL LocalDiscard(HLOCAL);
1543 WINBASEAPI BOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *,LPFILETIME);
1544 WINBASEAPI UINT WINAPI LocalFlags(HLOCAL); /* Obsolete: Has no effect. */
1545 WINBASEAPI HLOCAL WINAPI LocalFree(HLOCAL);
1546 WINBASEAPI HLOCAL WINAPI LocalHandle(LPCVOID);
1547 WINBASEAPI PVOID WINAPI LocalLock(HLOCAL);
1548 WINBASEAPI HLOCAL WINAPI LocalReAlloc(HLOCAL,SIZE_T,UINT);
1549 WINBASEAPI SIZE_T WINAPI LocalShrink(HLOCAL,UINT);  /* Obsolete: Has no effect. */
1550 WINBASEAPI UINT WINAPI LocalSize(HLOCAL);
1551 WINBASEAPI BOOL WINAPI LocalUnlock(HLOCAL);
1552 WINBASEAPI BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1553 WINBASEAPI BOOL WINAPI LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED);
1554 WINBASEAPI PVOID WINAPI LockResource(HGLOBAL);
1555 #define LockSegment(w) GlobalFix((HANDLE)(w)) /* Obsolete: Has no effect. */
1556 WINBASEAPI BOOL WINAPI LogonUserA(LPSTR,LPSTR,LPSTR,DWORD,DWORD,PHANDLE);
1557 WINBASEAPI BOOL WINAPI LogonUserW(LPWSTR,LPWSTR,LPWSTR,DWORD,DWORD,PHANDLE);
1558 WINBASEAPI BOOL WINAPI LookupAccountNameA(LPCSTR,LPCSTR,PSID,PDWORD,LPSTR,PDWORD,PSID_NAME_USE);
1559 WINBASEAPI BOOL WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE);
1560 WINBASEAPI BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,PDWORD,LPSTR,PDWORD,PSID_NAME_USE);
1561 WINBASEAPI BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE);
1562 WINBASEAPI BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR,LPCSTR,LPSTR,PDWORD,PDWORD);
1563 WINBASEAPI BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR,LPCWSTR,LPWSTR,PDWORD,PDWORD);
1564 WINBASEAPI BOOL WINAPI LookupPrivilegeNameA(LPCSTR,PLUID,LPSTR,PDWORD);
1565 WINBASEAPI BOOL WINAPI LookupPrivilegeNameW(LPCWSTR,PLUID,LPWSTR,PDWORD);
1566 WINBASEAPI BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,PLUID);
1567 WINBASEAPI BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,PLUID);
1568 WINBASEAPI LPSTR WINAPI lstrcatA(LPSTR,LPCSTR);
1569 WINBASEAPI LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR);
1570 WINBASEAPI int WINAPI lstrcmpA(LPCSTR,LPCSTR);
1571 WINBASEAPI int WINAPI lstrcmpiA(LPCSTR,LPCSTR);
1572 WINBASEAPI int WINAPI lstrcmpiW( LPCWSTR,LPCWSTR);
1573 WINBASEAPI int WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
1574 WINBASEAPI LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR);
1575 WINBASEAPI LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,int);
1576 WINBASEAPI LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,int);
1577 WINBASEAPI LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR);
1578 WINBASEAPI int WINAPI lstrlenA(LPCSTR);
1579 WINBASEAPI int WINAPI lstrlenW(LPCWSTR);
1580 WINBASEAPI BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD);
1581 #define MakeProcInstance(p,i) (p)
1582 WINBASEAPI BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD);
1583 WINBASEAPI VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING);
1584 WINBASEAPI PVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1585 WINBASEAPI PVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,PVOID);
1586 WINBASEAPI BOOL WINAPI MoveFileA(LPCSTR,LPCSTR);
1587 WINBASEAPI BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD);
1588 WINBASEAPI BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD);
1589 WINBASEAPI BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR);
1590
1591 WINBASEAPI int WINAPI MulDiv(int,int,int);
1592 WINBASEAPI BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE);
1593 WINBASEAPI BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR,PVOID,BOOL);
1594 WINBASEAPI BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,PVOID,BOOL);
1595 WINBASEAPI BOOL WINAPI ObjectDeleteAuditAlarmA(LPCSTR,PVOID,BOOL);
1596 WINBASEAPI BOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,PVOID,BOOL);
1597 WINBASEAPI BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR,PVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
1598 WINBASEAPI BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,PVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL);
1599 WINBASEAPI BOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
1600 WINBASEAPI BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
1601 WINBASEAPI HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR);
1602 WINBASEAPI HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR);
1603 WINBASEAPI HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
1604 WINBASEAPI HANDLE WINAPI OpenEventLogA (LPCSTR,LPCSTR);
1605 WINBASEAPI HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR);
1606 WINBASEAPI HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
1607 WINBASEAPI HFILE WINAPI OpenFile(LPCSTR,LPOFSTRUCT,UINT);
1608 WINBASEAPI HANDLE WINAPI OpenFileMappingA(DWORD,BOOL,LPCSTR);
1609 WINBASEAPI HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
1610 WINBASEAPI HANDLE WINAPI OpenMutexA(DWORD,BOOL,LPCSTR);
1611 WINBASEAPI HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
1612 WINBASEAPI HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD);
1613 WINBASEAPI BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
1614 WINBASEAPI HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
1615 WINBASEAPI HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
1616
1617 WINBASEAPI BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
1618 WINBASEAPI HANDLE WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR);
1619 WINBASEAPI HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
1620 WINBASEAPI void WINAPI OutputDebugStringA(LPCSTR);
1621 WINBASEAPI void WINAPI OutputDebugStringW(LPCWSTR);
1622 WINBASEAPI BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD);
1623 WINBASEAPI BOOL WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,ULONG_PTR,LPOVERLAPPED);
1624 WINBASEAPI DWORD WINAPI PrepareTape(HANDLE,DWORD,BOOL);
1625 WINBASEAPI BOOL WINAPI PrivilegeCheck (HANDLE,PPRIVILEGE_SET,PBOOL);
1626 WINBASEAPI BOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR,LPCSTR,HANDLE,PPRIVILEGE_SET,BOOL);
1627 WINBASEAPI BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL);
1628
1629 WINBASEAPI BOOL WINAPI PulseEvent(HANDLE);
1630 WINBASEAPI BOOL WINAPI PurgeComm(HANDLE,DWORD);
1631
1632 WINBASEAPI DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
1633 WINBASEAPI DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
1634
1635 WINBASEAPI BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER);
1636 WINBASEAPI BOOL WINAPI QueryPerformanceFrequency(PLARGE_INTEGER);
1637 WINBASEAPI DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
1638
1639 WINBASEAPI void WINAPI RaiseException(DWORD,DWORD,DWORD,const DWORD*);
1640 WINBASEAPI BOOL WINAPI ReadDirectoryChangesW(HANDLE,PVOID,DWORD,BOOL,DWORD,PDWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1641 WINBASEAPI BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *);
1642 WINBASEAPI BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *);
1643 WINBASEAPI BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED);
1644 WINBASEAPI BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1645 WINBASEAPI BOOL WINAPI ReadFileScatter(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
1646 WINBASEAPI BOOL WINAPI ReadProcessMemory(HANDLE,PCVOID,PVOID,DWORD,PDWORD);
1647 WINBASEAPI HANDLE WINAPI RegisterEventSourceA (LPCSTR,LPCSTR);
1648 WINBASEAPI HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR);
1649
1650 WINBASEAPI BOOL WINAPI ReleaseMutex(HANDLE);
1651 WINBASEAPI BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
1652 WINBASEAPI BOOL WINAPI RemoveDirectoryA(LPCSTR);
1653 WINBASEAPI BOOL WINAPI RemoveDirectoryW(LPCWSTR);
1654
1655 WINBASEAPI BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR*,PVOID);
1656 WINBASEAPI BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR*,PVOID);
1657
1658 #ifdef _WIN32_WCE
1659 extern BOOL ResetEvent(HANDLE);
1660 #else
1661 WINBASEAPI BOOL WINAPI ResetEvent(HANDLE);
1662 #endif
1663
1664 WINBASEAPI UINT WINAPI ResetWriteWatch(LPVOID,SIZE_T);
1665
1666 WINBASEAPI DWORD WINAPI ResumeThread(HANDLE);
1667 WINBASEAPI BOOL WINAPI RevertToSelf(void);
1668 WINBASEAPI DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
1669 WINBASEAPI DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1670 WINBASEAPI BOOL WINAPI SetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS);
1671 WINBASEAPI BOOL WINAPI SetCommBreak(HANDLE);
1672 WINBASEAPI BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD);
1673 WINBASEAPI BOOL WINAPI SetCommMask(HANDLE,DWORD);
1674 WINBASEAPI BOOL WINAPI SetCommState(HANDLE,LPDCB);
1675 WINBASEAPI BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1676 WINBASEAPI BOOL WINAPI SetComputerNameA(LPCSTR);
1677 WINBASEAPI BOOL WINAPI SetComputerNameW(LPCWSTR);
1678
1679 WINBASEAPI BOOL WINAPI SetCurrentDirectoryA(LPCSTR);
1680 WINBASEAPI BOOL WINAPI SetCurrentDirectoryW(LPCWSTR);
1681 WINBASEAPI BOOL WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
1682 WINBASEAPI BOOL WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
1683
1684 WINBASEAPI BOOL WINAPI SetEndOfFile(HANDLE);
1685 WINBASEAPI BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
1686 WINBASEAPI BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
1687 WINBASEAPI UINT WINAPI SetErrorMode(UINT);
1688
1689 #ifdef _WIN32_WCE
1690 extern BOOL SetEvent(HANDLE);
1691 #else
1692 WINBASEAPI BOOL WINAPI SetEvent(HANDLE);
1693 #endif
1694
1695 WINBASEAPI VOID WINAPI SetFileApisToANSI(void);
1696 WINBASEAPI VOID WINAPI SetFileApisToOEM(void);
1697 WINBASEAPI BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
1698 WINBASEAPI BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
1699 WINBASEAPI DWORD WINAPI SetFilePointer(HANDLE,LONG,PLONG,DWORD);
1700 WINBASEAPI BOOL WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,PLARGE_INTEGER,DWORD);
1701 WINBASEAPI BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1702 WINBASEAPI BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1703 WINBASEAPI BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
1704
1705 WINBASEAPI UINT WINAPI SetHandleCount(UINT);
1706 WINBASEAPI BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
1707 WINBASEAPI BOOL WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1708 WINBASEAPI void WINAPI SetLastError(DWORD);
1709 WINBASEAPI void WINAPI SetLastErrorEx(DWORD,DWORD);
1710 WINBASEAPI BOOL WINAPI SetLocalTime(const SYSTEMTIME*);
1711 WINBASEAPI BOOL WINAPI SetMailslotInfo(HANDLE,DWORD);
1712 WINBASEAPI BOOL WINAPI SetNamedPipeHandleState(HANDLE,PDWORD,PDWORD,PDWORD);
1713 WINBASEAPI BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
1714 WINBASEAPI BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR *,PGENERIC_MAPPING,HANDLE);
1715 WINBASEAPI BOOL WINAPI SetProcessAffinityMask(HANDLE,DWORD);
1716
1717 WINBASEAPI BOOL WINAPI SetProcessPriorityBoost(HANDLE,BOOL);
1718 WINBASEAPI BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD);
1719 WINBASEAPI BOOL WINAPI SetProcessWorkingSetSize(HANDLE,SIZE_T,SIZE_T);
1720 WINBASEAPI BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
1721 WINBASEAPI BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1722 WINBASEAPI BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
1723 WINBASEAPI BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
1724 WINBASEAPI BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1725 WINBASEAPI BOOL WINAPI SetStdHandle(DWORD,HANDLE);
1726 #define SetSwapAreaSize(w) (w)
1727 WINBASEAPI BOOL WINAPI SetSystemPowerState(BOOL,BOOL);
1728 WINBASEAPI BOOL WINAPI SetSystemTime(const SYSTEMTIME*);
1729 WINBASEAPI BOOL WINAPI SetSystemTimeAdjustment(DWORD,BOOL);
1730 WINBASEAPI DWORD WINAPI SetTapeParameters(HANDLE,DWORD,PVOID);
1731 WINBASEAPI DWORD WINAPI SetTapePosition(HANDLE,DWORD,DWORD,DWORD,DWORD,BOOL);
1732 WINBASEAPI DWORD WINAPI SetThreadAffinityMask(HANDLE,DWORD);
1733 WINBASEAPI BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT*);
1734
1735 WINBASEAPI DWORD WINAPI SetThreadIdealProcessor(HANDLE,DWORD);
1736 WINBASEAPI BOOL WINAPI SetThreadPriority(HANDLE,int);
1737 WINBASEAPI BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
1738 WINBASEAPI BOOL WINAPI SetThreadToken (PHANDLE,HANDLE);
1739 WINBASEAPI BOOL WINAPI SetTimeZoneInformation(const TIME_ZONE_INFORMATION *);
1740 WINBASEAPI BOOL WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD);
1741 WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
1742 WINBASEAPI BOOL WINAPI SetupComm(HANDLE,DWORD,DWORD);
1743 WINBASEAPI BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR);
1744 WINBASEAPI BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR);
1745
1746 WINBASEAPI BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,PVOID,BOOL);
1747 WINBASEAPI DWORD WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL);
1748 WINBASEAPI DWORD WINAPI SizeofResource(HINSTANCE,HRSRC);
1749 WINBASEAPI void WINAPI Sleep(DWORD);
1750 WINBASEAPI DWORD WINAPI SleepEx(DWORD,BOOL);
1751 WINBASEAPI DWORD WINAPI SuspendThread(HANDLE);
1752 WINBASEAPI void WINAPI SwitchToFiber(PVOID);
1753 WINBASEAPI BOOL WINAPI SwitchToThread(void);
1754 WINBASEAPI BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
1755
1756 WINBASEAPI BOOL WINAPI SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME);
1757 WINBASEAPI BOOL WINAPI TerminateProcess(HANDLE,UINT);
1758 WINBASEAPI BOOL WINAPI TerminateThread(HANDLE,DWORD);
1759 WINBASEAPI DWORD WINAPI TlsAlloc(VOID);
1760 WINBASEAPI BOOL WINAPI TlsFree(DWORD);
1761 WINBASEAPI PVOID WINAPI TlsGetValue(DWORD);
1762 WINBASEAPI BOOL WINAPI TlsSetValue(DWORD,PVOID);
1763 WINBASEAPI BOOL WINAPI TransactNamedPipe(HANDLE,PVOID,DWORD,PVOID,DWORD,PDWORD,LPOVERLAPPED);
1764 WINBASEAPI BOOL WINAPI TransmitCommChar(HANDLE,char);
1765 WINBASEAPI BOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION);
1766 WINBASEAPI LONG WINAPI UnhandledExceptionFilter(LPEXCEPTION_POINTERS);
1767 WINBASEAPI BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1768 WINBASEAPI BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
1769 #define UnlockResource(h) (h)
1770 #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) /* Obsolete: Has no effect. */
1771 WINBASEAPI BOOL WINAPI UnmapViewOfFile(LPCVOID);
1772
1773 WINBASEAPI BOOL WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,PVOID,DWORD);
1774 WINBASEAPI BOOL WINAPI UpdateResourceW(HANDLE,LPCWSTR,LPCWSTR,WORD,PVOID,DWORD);
1775 WINBASEAPI BOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA,DWORD,DWORDLONG);
1776 WINBASEAPI BOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDLONG);
1777 WINBASEAPI PVOID WINAPI VirtualAlloc(PVOID,DWORD,DWORD,DWORD);
1778 WINBASEAPI PVOID WINAPI VirtualAllocEx(HANDLE,PVOID,DWORD,DWORD,DWORD);
1779 WINBASEAPI BOOL WINAPI VirtualFree(PVOID,DWORD,DWORD);
1780 WINBASEAPI BOOL WINAPI VirtualFreeEx(HANDLE,PVOID,DWORD,DWORD);
1781 WINBASEAPI BOOL WINAPI VirtualLock(PVOID,DWORD);
1782 WINBASEAPI BOOL WINAPI VirtualProtect(PVOID,DWORD,DWORD,PDWORD);
1783 WINBASEAPI BOOL WINAPI VirtualProtectEx(HANDLE,PVOID,DWORD,DWORD,PDWORD);
1784 WINBASEAPI DWORD WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD);
1785 WINBASEAPI DWORD WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD);
1786 WINBASEAPI BOOL WINAPI VirtualUnlock(PVOID,DWORD);
1787 WINBASEAPI BOOL WINAPI WaitCommEvent(HANDLE,PDWORD,LPOVERLAPPED);
1788 WINBASEAPI BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
1789 WINBASEAPI DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,BOOL,DWORD);
1790 WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
1791 WINBASEAPI DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
1792 WINBASEAPI DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
1793 WINBASEAPI BOOL WINAPI WaitNamedPipeA(LPCSTR,DWORD);
1794 WINBASEAPI BOOL WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
1795 WINBASEAPI BOOL WINAPI WinLoadTrustProvider(GUID*);
1796 WINBASEAPI BOOL WINAPI WriteFile(HANDLE,PCVOID,DWORD,PDWORD,LPOVERLAPPED);
1797 WINBASEAPI BOOL WINAPI WriteFileEx(HANDLE,PCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
1798 WINBASEAPI BOOL WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
1799 WINBASEAPI BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
1800 WINBASEAPI BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
1801 WINBASEAPI BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
1802 WINBASEAPI BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
1803 WINBASEAPI BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
1804 WINBASEAPI BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
1805 WINBASEAPI BOOL WINAPI WriteProcessMemory(HANDLE,LPVOID,LPCVOID,SIZE_T,SIZE_T*);
1806 WINBASEAPI BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR);
1807 WINBASEAPI BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR);
1808 WINBASEAPI BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR);
1809 WINBASEAPI BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR);
1810 WINBASEAPI DWORD WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
1811 #define Yield()
1812
1813 typedef __AW(STARTUPINFO) STARTUPINFO,*LPSTARTUPINFO;
1814 typedef __AW(WIN32_FIND_DATA) WIN32_FIND_DATA,*PWIN32_FIND_DATA,*LPWIN32_FIND_DATA;
1815 typedef __AW(HW_PROFILE_INFO) HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
1816
1817 #define AccessCheckAndAuditAlarm __AW(AccessCheckAndAuditAlarm)
1818 #define AddAtom __AW(AddAtom)
1819 #define BackupEventLog __AW(BackupEventLog)
1820 #define BeginUpdateResource __AW(BeginUpdateResource)
1821 #define BuildCommDCB __AW(BuildCommDCB)
1822 #define BuildCommDCBAndTimeouts __AW(BuildCommDCBAndTimeouts)
1823 #define CallNamedPipe __AW(CallNamedPipe)
1824
1825 #define ClearEventLog __AW(ClearEventLog)
1826 #define CommConfigDialog __AW(CommConfigDialog)
1827 #define CopyFile __AW(CopyFile)
1828 #define CopyFileEx __AW(CopyFileEx)
1829
1830 #define CreateDirectory __AW(CreateDirectory)
1831 #define CreateDirectoryEx __AW(CreateDirectoryEx)
1832 #define CreateEvent __AW(CreateEvent)
1833 #define CreateFile __AW(CreateFile)
1834 #define CreateFileMapping __AW(CreateFileMapping)
1835
1836 #define CreateMailslot __AW(CreateMailslot)
1837 #define CreateMutex __AW(CreateMutex)
1838 #define CreateNamedPipe __AW(CreateNamedPipe)
1839 #define CreateProcess __AW(CreateProcess)
1840 #define CreateProcessAsUser __AW(CreateProcessAsUser)
1841 #define CreateSemaphore __AW(CreateSemaphore)
1842
1843 #define CreateWaitableTimer __AW(CreateWaitableTimer)
1844 #define DefineDosDevice __AW(DefineDosDevice)
1845 #define DeleteFile __AW(DeleteFile)
1846
1847 #define EncryptFile __AW(EncryptFile)
1848 #define EndUpdateResource __AW(EndUpdateResource)
1849 #define EnumResourceLanguages __AW(EnumResourceLanguages)
1850 #define EnumResourceNames __AW(EnumResourceNames)
1851 #define EnumResourceTypes __AW(EnumResourceTypes)
1852 #define ExpandEnvironmentStrings __AW(ExpandEnvironmentStrings)
1853 #define FatalAppExit __AW(FatalAppExit)
1854 #define FileEncryptionStatus __AW(FileEncryptionStatus)
1855
1856 #define FindAtom __AW(FindAtom)
1857 #define FindFirstChangeNotification __AW(FindFirstChangeNotification)
1858 #define FindFirstFile __AW(FindFirstFile)
1859 #define FindFirstFileEx __AW(FindFirstFileEx)
1860
1861 #define FindNextFile __AW(FindNextFile)
1862
1863 #define FindResource __AW(FindResource)
1864 #define FindResourceEx __AW(FindResourceEx)
1865 #define FormatMessage __AW(FormatMessage)
1866 #define FreeEnvironmentStrings __AW(FreeEnvironmentStrings)
1867 #define GetAtomName __AW(GetAtomName)
1868 #define GetBinaryType __AW(GetBinaryType)
1869 #define GetCommandLine __AW(GetCommandLine)
1870 #define GetCompressedFileSize __AW(GetCompressedFileSize)
1871 #define GetComputerName __AW(GetComputerName)
1872
1873 #define GetCurrentDirectory __AW(GetCurrentDirectory)
1874 #define GetDefaultCommConfig __AW(GetDefaultCommConfig)
1875 #define GetDiskFreeSpace __AW(GetDiskFreeSpace)
1876 #define GetDiskFreeSpaceEx __AW(GetDiskFreeSpaceEx)
1877
1878 #define GetDriveType __AW(GetDriveType)
1879 #define GetEnvironmentStrings __AW(GetEnvironmentStrings)
1880 #define GetEnvironmentVariable __AW(GetEnvironmentVariable)
1881 #define GetFileAttributes __AW(GetFileAttributes)
1882 #define GetFileSecurity __AW(GetFileSecurity)
1883 #define GetFileAttributesEx __AW(GetFileAttributesEx)
1884
1885 #define GetFullPathName __AW(GetFullPathName)
1886 #define GetLogicalDriveStrings __AW(GetLogicalDriveStrings)
1887
1888 #define GetModuleFileName __AW(GetModuleFileName)
1889 #define GetModuleHandle __AW(GetModuleHandle)
1890
1891 #define GetNamedPipeHandleState __AW(GetNamedPipeHandleState)
1892 #define GetPrivateProfileInt __AW(GetPrivateProfileInt)
1893 #define GetPrivateProfileSection __AW(GetPrivateProfileSection)
1894 #define GetPrivateProfileSectionNames __AW(GetPrivateProfileSectionNames)
1895 #define GetPrivateProfileString __AW(GetPrivateProfileString)
1896 #define GetPrivateProfileStruct __AW(GetPrivateProfileStruct)
1897 #define GetProfileInt __AW(GetProfileInt)
1898 #define GetProfileSection __AW(GetProfileSection)
1899 #define GetProfileString __AW(GetProfileString)
1900 #define GetShortPathName __AW(GetShortPathName)
1901 #define GetStartupInfo __AW(GetStartupInfo)
1902 #define GetSystemDirectory __AW(GetSystemDirectory)
1903
1904 #define GetTempFileName __AW(GetTempFileName)
1905 #define GetTempPath __AW(GetTempPath)
1906 #define GetUserName __AW(GetUserName)
1907 #define GetVersionEx __AW(GetVersionEx)
1908 #define GetVolumeInformation __AW(GetVolumeInformation)
1909 #define GetVolumeNameForVolumeMountPoint __AW(GetVolumeNameForVolumeMountPoint)
1910 #define GetWindowsDirectory __AW(GetWindowsDirectory)
1911 #define GlobalAddAtom __AW(GlobalAddAtom)
1912 #define GlobalFindAtom __AW(GlobalFindAtom)
1913 #define GlobalGetAtomName __AW(GlobalGetAtomName)
1914 #define IsBadStringPtr __AW(IsBadStringPtr)
1915 #define LoadLibrary __AW(LoadLibrary)
1916 #define LoadLibraryEx __AW(LoadLibraryEx)
1917 #define LogonUser __AW(LogonUser)
1918 #define LookupAccountName __AW(LookupAccountName)
1919 #define LookupAccountSid __AW(LookupAccountSid)
1920 #define LookupPrivilegeDisplayName __AW(LookupPrivilegeDisplayName)
1921 #define LookupPrivilegeName __AW(LookupPrivilegeName)
1922 #define LookupPrivilegeValue __AW(LookupPrivilegeValue)
1923 #define lstrcat __AW(lstrcat)
1924 #define lstrcmp __AW(lstrcmp)
1925 #define lstrcmpi __AW(lstrcmpi)
1926 #define lstrcpy __AW(lstrcpy)
1927 #define lstrcpyn __AW(lstrcpyn)
1928 #define lstrlen __AW(lstrlen)
1929 #define MoveFile __AW(MoveFile)
1930 #define MoveFileEx __AW(MoveFileEx)
1931
1932 #define ObjectCloseAuditAlarm __AW(ObjectCloseAuditAlarm)
1933 #define ObjectDeleteAuditAlarm __AW(ObjectDeleteAuditAlarm)
1934 #define ObjectOpenAuditAlarm __AW(ObjectOpenAuditAlarm)
1935 #define ObjectPrivilegeAuditAlarm __AW(ObjectPrivilegeAuditAlarm)
1936 #define OpenBackupEventLog __AW(OpenBackupEventLog)
1937 #define OpenEvent __AW(OpenEvent)
1938 #define OpenEventLog __AW(OpenEventLog)
1939 #define OpenFileMapping __AW(OpenFileMapping)
1940 #define OpenMutex __AW(OpenMutex)
1941 #define OpenSemaphore __AW(OpenSemaphore)
1942 #define OutputDebugString __AW(OutputDebugString)
1943 #define PrivilegedServiceAuditAlarm __AW(PrivilegedServiceAuditAlarm)
1944 #define QueryDosDevice __AW(QueryDosDevice)
1945 #define ReadEventLog __AW(ReadEventLog)
1946 #define RegisterEventSource __AW(RegisterEventSource)
1947 #define RemoveDirectory __AW(RemoveDirectory)
1948
1949 #define ReportEvent __AW(ReportEvent)
1950 #define SearchPath __AW(SearchPath)
1951 #define SetComputerName __AW(SetComputerName)
1952 #define SetCurrentDirectory __AW(SetCurrentDirectory)
1953 #define SetDefaultCommConfig __AW(SetDefaultCommConfig)
1954
1955 #define SetEnvironmentVariable __AW(SetEnvironmentVariable)
1956 #define SetFileAttributes __AW(SetFileAttributes)
1957 #define SetFileSecurity __AW(SetFileSecurity)
1958
1959 #define SetVolumeLabel __AW(SetVolumeLabel)
1960 #define UpdateResource __AW(UpdateResource)
1961 #define VerifyVersionInfo __AW(VerifyVersionInfo)
1962 #define WaitNamedPipe __AW(WaitNamedPipe)
1963 #define WritePrivateProfileSection __AW(WritePrivateProfileSection)
1964 #define WritePrivateProfileString __AW(WritePrivateProfileString)
1965 #define WritePrivateProfileStruct __AW(WritePrivateProfileStruct)
1966 #define WriteProfileSection __AW(WriteProfileSection)
1967 #define WriteProfileString __AW(WriteProfileString)
1968
1969 #endif /* ! RC_INVOKED */
1970
1971 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN98)
1972 #ifndef RC_INVOKED
1973 typedef DWORD EXECUTION_STATE, *PEXECUTION_STATE;
1974 WINBASEAPI EXECUTION_STATE WINAPI SetThreadExecutionState(EXECUTION_STATE);
1975 #endif /* ! RC_INVOKED */
1976 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_WIN98) */
1977
1978 #if (_WIN32_WINNT >= _WIN32_WINNT_WINME)
1979 #ifndef RC_INVOKED
1980 WINBASEAPI HANDLE WINAPI OpenThread(DWORD,BOOL,DWORD);
1981 #endif /* ! RC_INVOKED */
1982 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_WINME) */
1983
1984 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
1985 #define DISABLE_MAX_PRIVILEGE 1
1986 #if (NTDDI_VERSION >= NTDDI_WIN2KSP2)
1987 #define FILE_FLAG_FIRST_PIPE_INSTANCE   524288
1988 #endif
1989 #define LOGON_WITH_PROFILE 0x00000001
1990 #define LOGON_NETCREDENTIALS_ONLY 0x00000002
1991 #define LOGON32_PROVIDER_WINNT50        3
1992 #define LOGON32_LOGON_NETWORK_CLEARTEXT 8
1993 #define LOGON32_LOGON_NEW_CREDENTIALS   9
1994 #define LUA_TOKEN 4
1995 #define REPLACEFILE_WRITE_THROUGH 0x00000001
1996 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002
1997 #define SANDBOX_INERT 2
1998 #define WRITE_RESTRICTED 8
1999
2000 #ifndef RC_INVOKED
2001 typedef struct _MEMORYSTATUSEX {
2002         DWORD dwLength;
2003         DWORD dwMemoryLoad;
2004         DWORDLONG ullTotalPhys;
2005         DWORDLONG ullAvailPhys;
2006         DWORDLONG ullTotalPageFile;
2007         DWORDLONG ullAvailPageFile;
2008         DWORDLONG ullTotalVirtual;
2009         DWORDLONG ullAvailVirtual;
2010         DWORDLONG ullAvailExtendedVirtual;
2011 } MEMORYSTATUSEX,*LPMEMORYSTATUSEX;
2012 typedef enum _COMPUTER_NAME_FORMAT {
2013         ComputerNameNetBIOS,
2014         ComputerNameDnsHostname,
2015         ComputerNameDnsDomain,
2016         ComputerNameDnsFullyQualified,
2017         ComputerNamePhysicalNetBIOS,
2018         ComputerNamePhysicalDnsHostname,
2019         ComputerNamePhysicalDnsDomain,
2020         ComputerNamePhysicalDnsFullyQualified,
2021         ComputerNameMax
2022 } COMPUTER_NAME_FORMAT;
2023 typedef void(CALLBACK *WAITORTIMERCALLBACK)(PVOID,BOOLEAN);
2024 WINBASEAPI BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
2025 WINBASEAPI BOOL WINAPI AddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
2026 WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
2027 WINBASEAPI BOOL WINAPI ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG);
2028 WINBASEAPI BOOL WINAPI CheckTokenMembership(HANDLE,PSID,PBOOL);
2029 #define CreateHardLink __AW(CreateHardLink)
2030 WINBASEAPI BOOL WINAPI CreateHardLinkA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
2031 WINBASEAPI BOOL WINAPI CreateHardLinkW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
2032 #define CreateJobObject __AW(CreateJobObject)
2033 WINBASEAPI HANDLE WINAPI CreateJobObjectA(LPSECURITY_ATTRIBUTES,LPCSTR);
2034 WINBASEAPI HANDLE WINAPI CreateJobObjectW(LPSECURITY_ATTRIBUTES,LPCWSTR);
2035 WINBASEAPI BOOL WINAPI TerminateJobObject(HANDLE,UINT);
2036 WINBASEAPI BOOL WINAPI AssignProcessToJobObject(HANDLE,HANDLE);
2037 WINBASEAPI BOOL WINAPI SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD);
2038 WINBASEAPI BOOL WINAPI QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);
2039 WINBASEAPI BOOL WINAPI CreateProcessWithLogonW (LPCWSTR,LPCWSTR,LPCWSTR,DWORD,
2040                                                 LPCWSTR,LPWSTR,DWORD,LPVOID,
2041                                                 LPCWSTR,LPSTARTUPINFOW,
2042                                                 LPPROCESS_INFORMATION);
2043 WINBASEAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
2044 WINBASEAPI HANDLE WINAPI CreateTimerQueue(void);
2045 WINBASEAPI BOOL WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
2046 WINBASEAPI BOOL WINAPI DeleteTimerQueue(HANDLE);
2047 WINBASEAPI BOOL WINAPI DeleteTimerQueueEx(HANDLE,HANDLE);
2048 WINBASEAPI BOOL WINAPI DeleteTimerQueueTimer(HANDLE,HANDLE,HANDLE);
2049 #define DeleteVolumeMountPoint __AW(DeleteVolumeMountPoint)
2050 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointA(LPCSTR);
2051 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointW(LPCWSTR);
2052 #define DnsHostnameToComputerName __AW(DnsHostnameToComputerName)
2053 WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameA(LPCSTR,LPSTR,LPDWORD);
2054 WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR,LPWSTR,LPDWORD);
2055 #define FindFirstVolume __AW(FindFirstVolume)
2056 WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPCSTR,DWORD);
2057 WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPCWSTR,DWORD);
2058 #define FindFirstVolumeMountPoint __AW(FindFirstVolumeMountPoint)
2059 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA(LPSTR,LPSTR,DWORD);
2060 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW(LPWSTR,LPWSTR,DWORD);
2061 #define FindNextVolume __AW(FindNextVolume)
2062 WINBASEAPI BOOL WINAPI FindNextVolumeA(HANDLE,LPCSTR,DWORD);
2063 WINBASEAPI BOOL WINAPI FindNextVolumeW(HANDLE,LPWSTR,DWORD);
2064 #define FindNextVolumeMountPoint  __AW(FindNextVolumeMountPoint)
2065 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointA(HANDLE,LPSTR,DWORD);
2066 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW(HANDLE,LPWSTR,DWORD);
2067 WINBASEAPI BOOL WINAPI FindVolumeClose(HANDLE);
2068 WINBASEAPI BOOL WINAPI FindVolumeMountPointClose(HANDLE);
2069 #define GetComputerNameEx __AW(GetComputerNameEx)
2070 WINBASEAPI BOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT,LPSTR,LPDWORD);
2071 WINBASEAPI BOOL WINAPI GetComputerNameExW(COMPUTER_NAME_FORMAT,LPWSTR,LPDWORD);
2072 WINBASEAPI BOOL WINAPI GetFileSizeEx(HANDLE,PLARGE_INTEGER);
2073 #define GetLongPathName __AW(GetLongPathName)
2074 WINBASEAPI DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
2075 WINBASEAPI DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
2076 WINBASEAPI BOOL WINAPI GetProcessIoCounters(HANDLE,PIO_COUNTERS);
2077 #define GetSystemWindowsDirectory __AW(GetSystemWindowsDirectory)
2078 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT);
2079 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT);
2080 WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointA(LPCSTR,LPSTR,DWORD);
2081 WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR,LPWSTR,DWORD);
2082 #define GetVolumePathName __AW(GetVolumePathName)
2083 WINBASEAPI BOOL WINAPI GetVolumePathNameA(LPCSTR,LPSTR,DWORD);
2084 WINBASEAPI BOOL WINAPI GetVolumePathNameW(LPCWSTR,LPWSTR,DWORD);
2085 WINBASEAPI BOOL WINAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX);
2086 WINBASEAPI BOOL WINAPI IsTokenRestricted(HANDLE);
2087 #define MoveFileWithProgress __AW(MoveFileWithProgress)
2088 WINBASEAPI BOOL WINAPI MoveFileWithProgressA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID,DWORD);
2089 WINBASEAPI BOOL WINAPI MoveFileWithProgressW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,DWORD);
2090 WINBASEAPI BOOL WINAPI ProcessIdToSessionId(DWORD,DWORD*);
2091 WINBASEAPI BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
2092 WINBASEAPI BOOL WINAPI RegisterWaitForSingleObject(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2093 WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2094 WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler(PVOID);
2095 #define ReplaceFile __AW(ReplaceFile)
2096 WINBASEAPI BOOL WINAPI ReplaceFileA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPVOID,LPVOID);
2097 WINBASEAPI BOOL WINAPI ReplaceFileW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPVOID,LPVOID);
2098 #define SetComputerNameEx _AW(SetComputerNameEx)
2099 WINBASEAPI BOOL WINAPI SetComputerNameExA(COMPUTER_NAME_FORMAT,LPCSTR);
2100 WINBASEAPI BOOL WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT,LPCWSTR);
2101 #define SetVolumeMountPoint __AW(SetVolumeMountPoint)
2102 WINBASEAPI BOOL WINAPI SetVolumeMountPointA(LPCSTR,LPCSTR);
2103 WINBASEAPI BOOL WINAPI SetVolumeMountPointW(LPCWSTR,LPCWSTR);
2104 WINBASEAPI BOOL WINAPI AllocateUserPhysicalPages(HANDLE,PULONG_PTR,PULONG_PTR);
2105 WINBASEAPI BOOL WINAPI FreeUserPhysicalPages(HANDLE,PULONG_PTR,PULONG_PTR);
2106 WINBASEAPI BOOL WINAPI MapUserPhysicalPages(PVOID,ULONG_PTR,PULONG_PTR);
2107 WINBASEAPI BOOL WINAPI MapUserPhysicalPagesScatter(PVOID*,ULONG_PTR,PULONG_PTR);
2108 #endif /* !RC_INVOKED */
2109
2110 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) */
2111
2112 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
2113 #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x0008
2114 #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID 0x00000001
2115 #define ACTCTX_FLAG_LANGID_VALID 0x00000002
2116 #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x00000004
2117 #define ACTCTX_FLAG_RESOURCE_NAME_VALID 0x00000008
2118 #define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x00000010
2119 #define ACTCTX_FLAG_APPLICATION_NAME_VALID 0x00000020
2120 #define ACTCTX_FLAG_HMODULE_VALID 0x00000080
2121 #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION 0x00000001
2122 #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX 0x00000001
2123 #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX 0x00000004
2124 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE 0x00000008
2125 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS 0x00000010
2126
2127 #ifndef RC_INVOKED
2128 typedef struct tagACTCTXA {
2129         ULONG cbSize;
2130         DWORD dwFlags;
2131         LPCSTR lpSource;
2132         USHORT wProcessorArchitecture;
2133         LANGID wLangId;
2134         LPCSTR lpAssemblyDirectory;
2135         LPCSTR lpResourceName;
2136         LPCSTR lpApplicationName;
2137         HMODULE hModule;
2138 } ACTCTXA,*PACTCTXA;
2139 typedef const ACTCTXA *PCACTCTXA;
2140 typedef struct tagACTCTXW {
2141         ULONG cbSize;
2142         DWORD dwFlags;
2143         LPCWSTR lpSource;
2144         USHORT wProcessorArchitecture;
2145         LANGID wLangId;
2146         LPCWSTR lpAssemblyDirectory;
2147         LPCWSTR lpResourceName;
2148         LPCWSTR lpApplicationName;
2149         HMODULE hModule;
2150 } ACTCTXW,*PACTCTXW;
2151 typedef const ACTCTXW *PCACTCTXW;
2152 typedef struct tagACTCTX_SECTION_KEYED_DATA {
2153         ULONG cbSize;
2154         ULONG ulDataFormatVersion;
2155         PVOID lpData;
2156         ULONG ulLength;
2157         PVOID lpSectionGlobalData;
2158         ULONG ulSectionGlobalDataLength;
2159         PVOID lpSectionBase;
2160         ULONG ulSectionTotalLength;
2161         HANDLE hActCtx;
2162         HANDLE ulAssemblyRosterIndex;
2163 } ACTCTX_SECTION_KEYED_DATA,*PACTCTX_SECTION_KEYED_DATA;
2164 typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
2165 typedef enum {
2166         LowMemoryResourceNotification ,
2167         HighMemoryResourceNotification
2168 } MEMORY_RESOURCE_NOTIFICATION_TYPE;
2169 WINBASEAPI BOOL WINAPI ActivateActCtx(HANDLE,ULONG_PTR*);
2170 WINBASEAPI void WINAPI AddRefActCtx(HANDLE);
2171 #define CheckNameLegalDOS8Dot3 __AW(CheckNameLegalDOS8Dot3)
2172 WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3A(LPCSTR,LPSTR,DWORD,PBOOL,PBOOL);
2173 WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3W(LPCWSTR,LPSTR,DWORD,PBOOL,PBOOL);
2174 WINBASEAPI BOOL WINAPI CheckRemoteDebuggerPresent(HANDLE,PBOOL);
2175 #define CreateActCtx __AW(CreateActCtx)
2176 WINBASEAPI HANDLE WINAPI CreateActCtxA(PCACTCTXA);
2177 WINBASEAPI HANDLE WINAPI CreateActCtxW(PCACTCTXW);
2178 WINBASEAPI HANDLE WINAPI CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE);
2179 WINBASEAPI BOOL WINAPI DeactivateActCtx(DWORD,ULONG_PTR);
2180 WINBASEAPI BOOL WINAPI DebugActiveProcessStop(DWORD);
2181 WINBASEAPI BOOL WINAPI DebugBreakProcess(HANDLE);
2182 WINBASEAPI BOOL WINAPI DebugSetProcessKillOnExit(BOOL);
2183 WINBASEAPI BOOL WINAPI FindActCtxSectionGuid(DWORD,const GUID*,ULONG,const GUID*,PACTCTX_SECTION_KEYED_DATA);
2184 #define FindActCtxSectionString __AW(FindActCtxSectionString)
2185 WINBASEAPI BOOL WINAPI FindActCtxSectionStringA(DWORD,const GUID*,ULONG,LPCSTR,PACTCTX_SECTION_KEYED_DATA);
2186 WINBASEAPI BOOL WINAPI FindActCtxSectionStringW(DWORD,const GUID*,ULONG,LPCWSTR,PACTCTX_SECTION_KEYED_DATA);
2187 WINBASEAPI BOOL WINAPI GetCurrentActCtx(HANDLE*);
2188 #define GetModuleHandleEx __AW(GetModuleHandleEx)
2189 WINBASEAPI BOOL WINAPI GetModuleHandleExA(DWORD,LPCSTR,HMODULE*);
2190 WINBASEAPI BOOL WINAPI GetModuleHandleExW(DWORD,LPCWSTR,HMODULE*);
2191 WINBASEAPI VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
2192 WINBASEAPI BOOL WINAPI GetProcessDEPPolicy (HANDLE, LPDWORD, PBOOL);
2193 WINBASEAPI BOOL WINAPI GetProcessHandleCount(HANDLE,PDWORD);
2194 WINBASEAPI DWORD WINAPI GetProcessId(HANDLE);
2195 WINBASEAPI BOOL WINAPI GetSystemRegistryQuota(PDWORD,PDWORD);
2196 WINBASEAPI BOOL WINAPI GetSystemTimes(LPFILETIME,LPFILETIME,LPFILETIME);
2197 #define GetSystemWow64Directory __AW(GetSystemWow64Directory)
2198 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA(LPSTR,UINT);
2199 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW(LPWSTR,UINT);
2200 WINBASEAPI BOOL WINAPI GetThreadIOPendingFlag(HANDLE,PBOOL);
2201 #define GetVolumePathNamesForVolumeName __AW(GetVolumePathNamesForVolumeName)
2202 WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameA(LPCSTR,LPSTR,DWORD,PDWORD);
2203 WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR,LPWSTR,DWORD,PDWORD);
2204 WINBASEAPI BOOL WINAPI HeapQueryInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T,PSIZE_T);
2205 WINBASEAPI BOOL WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
2206 WINBASEAPI BOOL IsProcessInJob(HANDLE,HANDLE,PBOOL);
2207 WINBASEAPI BOOL WINAPI IsWow64Process(HANDLE,PBOOL);
2208 WINBASEAPI BOOL WINAPI QueryActCtxW(DWORD,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T*);
2209 WINBASEAPI BOOL WINAPI QueryMemoryResourceNotification(HANDLE,PBOOL);
2210 WINBASEAPI void WINAPI ReleaseActCtx(HANDLE);
2211 #define SetFileShortName __AW(SetFileShortName)
2212 WINBASEAPI BOOL WINAPI SetFileShortNameA(HANDLE,LPCSTR);
2213 WINBASEAPI BOOL WINAPI SetFileShortNameW(HANDLE,LPCWSTR);
2214 WINBASEAPI BOOL WINAPI SetFileValidData(HANDLE,LONGLONG);
2215 WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime(LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME);
2216 WINBASEAPI BOOL WINAPI UnregisterWait(HANDLE);
2217 WINBASEAPI BOOL WINAPI UnregisterWaitEx(HANDLE,HANDLE);
2218 WINBASEAPI BOOL WINAPI ZombifyActCtx(HANDLE);
2219 typedef __AW(ACTCTX) ACTCTX,*PACTCTX;
2220 typedef __AW(PCACTCTX) PCACTCTX;
2221
2222 #if (NTDDI_VERSION >= NTDDI_WINXPSP1)
2223 #define GetFirmwareEnvironmentVariable __AW(GetFirmwareEnvironmentVariable)
2224 WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableA(LPCSTR,LPCSTR,PVOID,DWORD);
2225 WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableW(LPCWSTR,LPCWSTR,PVOID,DWORD);
2226 #define GetDllDirectory __AW(GetDllDirectory)
2227 WINBASEAPI DWORD WINAPI GetDllDirectoryA(DWORD,LPSTR);
2228 WINBASEAPI DWORD WINAPI GetDllDirectoryW(DWORD,LPWSTR);
2229 WINBASEAPI VOID WINAPI RestoreLastError(DWORD);
2230 #define SetDllDirectory __AW(SetDllDirectory)
2231 WINBASEAPI BOOL WINAPI SetDllDirectoryA(LPCSTR);
2232 WINBASEAPI BOOL WINAPI SetDllDirectoryW(LPCWSTR);
2233 WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableA(LPCSTR,LPCSTR,PVOID,DWORD);
2234 WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableW(LPCWSTR,LPCWSTR,PVOID,DWORD);
2235 #endif /* (NTDDI_VERSION >= NTDDI_WINXPSP1) */
2236
2237 #endif /* !RC_INVOKED */
2238
2239 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_WINXP) */
2240
2241 #if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
2242 #define COPY_FILE_COPY_SYMLINK                0x0800
2243 #define COPY_FILE_NO_BUFFERING                0x1000
2244 #define THREAD_MODE_BACKGROUND_BEGIN 0x00010000
2245 #define THREAD_MODE_BACKGROUND_END 0x00020000
2246 /* http://msdn.microsoft.com/en-us/library/aa363866%28VS.85%29.aspx */
2247 #define SYMBOLIC_LINK_FLAG_DIRECTORY 0x1
2248 /* http://msdn.microsoft.com/en-us/library/aa364962%28VS.85%29.aspx */
2249 #define FILE_NAME_NORMALIZED 0x0
2250 #define FILE_NAME_OPENED 0x8
2251 #define VOLUME_NAME_DOS 0x0
2252 #define VOLUME_NAME_GUID 0x1
2253 #define VOLUME_NAME_NONE 0x4
2254 #define VOLUME_NAME_NT 0x2
2255
2256 #ifndef RC_INVOKED
2257 /* http://msdn.microsoft.com/en-us/library/aa364217%28VS.85%29.aspx */
2258 typedef struct _FILE_BASIC_INFO {
2259         LARGE_INTEGER   CreationTime;
2260         LARGE_INTEGER   LastAccessTime;
2261         LARGE_INTEGER   LastWriteTime;
2262         LARGE_INTEGER   ChangeTime;
2263         DWORD   FileAttributes;
2264 } FILE_BASIC_INFO,*PFILE_BASIC_INFO,*LPFILE_BASIC_INFO;
2265 /* http://msdn.microsoft.com/en-us/library/aa364401%28VS.85%29.aspx */
2266 typedef struct _FILE_STANDARD_INFO {
2267         LARGE_INTEGER   AllocationSize;
2268         LARGE_INTEGER   EndOfFile;
2269         DWORD   NumberOfLinks;
2270         BOOL    DeletePending;
2271         BOOL    Directory;
2272 } FILE_STANDARD_INFO,*PFILE_STANDARD_INFO,*LPFILE_STANDARD_INFO;
2273 /* http://msdn.microsoft.com/en-us/library/aa364388%28v=VS.85%29.aspx */
2274 typedef struct _FILE_NAME_INFO {
2275         DWORD   FileNameLength;
2276         WCHAR   FileName[1];
2277 } FILE_NAME_INFO,*PFILE_NAME_INFO,*LPFILE_NAME_INFO;
2278 /* http://msdn.microsoft.com/en-us/library/aa364406%28v=VS.85%29.aspx */
2279 typedef struct _FILE_STREAM_INFO {
2280         DWORD   NextEntryOffset;
2281         DWORD   StreamNameLength;
2282         LARGE_INTEGER   StreamSize;
2283         LARGE_INTEGER   StreamAllocationSize;
2284         WCHAR   StreamName[1];
2285 } FILE_STREAM_INFO,*PFILE_STREAM_INFO,*LPFILE_STREAM_INFO;
2286 /* http://msdn.microsoft.com/en-us/library/aa364220%28v=VS.85%29.aspx */
2287 typedef struct _FILE_COMPRESSION_INFO {
2288         LARGE_INTEGER   CompressedFileSize;
2289         WORD    CompressionFormat;
2290         UCHAR   CompressionUnitShift;
2291         UCHAR   ChunkShift;
2292         UCHAR   ClusterShift;
2293         UCHAR   Reserved[3];
2294 } FILE_COMPRESSION_INFO,*PFILE_COMPRESSION_INFO,*LPFILE_COMPRESSION_INFO;
2295 /* http://msdn.microsoft.com/en-us/library/aa364216%28v=VS.85%29.aspx */
2296 typedef struct _FILE_ATTRIBUTE_TAG_INFO {
2297         DWORD   FileAttributes;
2298         DWORD   ReparseTag;
2299 } FILE_ATTRIBUTE_TAG_INFO,*PFILE_ATTRIBUTE_TAG_INFO,*LPFILE_ATTRIBUTE_TAG_INFO;
2300 /* http://msdn.microsoft.com/en-us/library/aa364226%28v=VS.85%29.aspx */
2301 typedef struct _FILE_ID_BOTH_DIR_INFO {
2302         DWORD   NextEntryOffset;
2303         DWORD   FileIndex;
2304         LARGE_INTEGER   CreationTime;
2305         LARGE_INTEGER   LastAccessTime;
2306         LARGE_INTEGER   LastWriteTime;
2307         LARGE_INTEGER   ChangeTime;
2308         LARGE_INTEGER   EndOfFile;
2309         LARGE_INTEGER   AllocationSize;
2310         DWORD   FileAttributes;
2311         DWORD   FileNameLength;
2312         DWORD   EaSize;
2313         CCHAR   ShortNameLength;
2314         WCHAR   ShortName[12];
2315         LARGE_INTEGER   FileId;
2316         WCHAR   FileName[1];
2317 } FILE_ID_BOTH_DIR_INFO,*PFILE_ID_BOTH_DIR_INFO,*LPFILE_ID_BOTH_DIR_INFO;
2318 /* http://msdn.microsoft.com/en-us/library/dd979524%28v=VS.85%29.aspx */
2319 typedef struct _FILE_REMOTE_PROTOCOL_INFO {
2320         USHORT StructureVersion;
2321         USHORT StructureSize;
2322         ULONG  Protocol;
2323         USHORT ProtocolMajorVersion;
2324         USHORT ProtocolMinorVersion;
2325         USHORT ProtocolRevision;
2326         USHORT Reserved;
2327         ULONG  Flags;
2328         struct {
2329                 ULONG   Reserved[8];
2330         } GenericReserved;
2331         struct {
2332                 ULONG   Reserved[16];
2333         } ProtocolSpecificReserved;
2334 } FILE_REMOTE_PROTOCOL_INFO,*PFILE_REMOTE_PROTOCOL_INFO,*LPFILE_REMOTE_PROTOCOL_INFO;
2335 typedef enum _DEP_SYSTEM_POLICY_TYPE {
2336         AlwaysOn,
2337         AlwaysOff,
2338         OptIn,
2339         OptOut
2340 } DEP_SYSTEM_POLICY_TYPE;
2341 /* http://msdn.microsoft.com/en-us/library/aa364228%28v=VS.85%29.aspx */
2342 typedef enum _FILE_INFO_BY_HANDLE_CLASS {
2343   FileBasicInfo,
2344   FileStandardInfo,
2345   FileNameInfo,
2346   FileRenameInfo,
2347   FileDispositionInfo,
2348   FileAllocationInfo,
2349   FileEndOfFileInfo,
2350   FileStreamInfo,
2351   FileCompressionInfo,
2352   FileAttributeTagInfo,
2353   FileIdBothDirectoryInfo,
2354   FileIdBothDirectoryRestartInfo,
2355   FileIoPriorityHintInfo,
2356   FileRemoteProtocolInfo,
2357   MaximumFileInfoByHandlesClass
2358 } FILE_INFO_BY_HANDLE_CLASS,*PFILE_INFO_BY_HANDLE_CLASS;
2359 #define CreateSymbolicLink __AW(CreateSymbolicLink)
2360 WINBASEAPI BOOL WINAPI CreateSymbolicLinkA(LPCSTR,LPCSTR,DWORD);
2361 WINBASEAPI BOOL WINAPI CreateSymbolicLinkW(LPCWSTR,LPCWSTR,DWORD);
2362 /* http://msdn.microsoft.com/en-us/library/aa364953%28VS.85%29.aspx */
2363 WINBASEAPI BOOL WINAPI GetFileInformationByHandleEx(HANDLE,FILE_INFO_BY_HANDLE_CLASS,LPVOID,DWORD);
2364 /* http://msdn.microsoft.com/en-us/library/aa364962%28VS.85%29.aspx */
2365 #define GetFinalPathNameByHandle __AW(GetFinalPathNameByHandle)
2366 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleA(HANDLE,LPSTR,DWORD,DWORD);
2367 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleW(HANDLE,LPWSTR,DWORD,DWORD);
2368 WINBASEAPI HANDLE WINAPI ReOpenFile(HANDLE,DWORD,DWORD,DWORD);
2369 #endif /* !RC_INVOKED */
2370
2371 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_VISTA) */
2372
2373 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
2374 #define PROCESS_DEP_ENABLE 1
2375 #define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION 2
2376
2377 #ifndef RC_INVOKED
2378 WINBASEAPI DEP_SYSTEM_POLICY_TYPE WINAPI GetSystemDEPPolicy (void);
2379 WINBASEAPI BOOL WINAPI SetProcessDEPPolicy (DWORD);
2380 #endif /* !RC_INVOKED */
2381
2382 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_WIN7) */
2383
2384 #ifdef __cplusplus
2385 }
2386 #endif
2387
2388 #endif /* _WINBASE_H */