winebuild: Add a -syscall entry point flag
[wine.git] / include / winbase.h
blob981d4ea76af5374cfb81db04fc922907e5f45448
1 /*
2 * Copyright (C) the Wine project
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_WINBASE_H
20 #define __WINE_WINBASE_H
22 #include <winerror.h>
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
28 #ifdef _KERNEL32_
29 #define WINBASEAPI
30 #else
31 #define WINBASEAPI DECLSPEC_HIDDEN
32 #endif
34 #ifdef _ADVAPI32_
35 #define WINADVAPI
36 #else
37 #define WINADVAPI DECLSPEC_HIDDEN
38 #endif
40 #include <libloaderapi.h>
41 #include <synchapi.h>
42 #include <threadpoolapiset.h>
44 /* Windows Exit Procedure flag values */
45 #define WEP_FREE_DLL 0
46 #define WEP_SYSTEM_EXIT 1
48 typedef DWORD (CALLBACK *LPTHREAD_START_ROUTINE)(LPVOID);
50 typedef VOID (WINAPI *PFIBER_START_ROUTINE)( LPVOID lpFiberParameter );
51 typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
53 #define FIBER_FLAG_FLOAT_SWITCH 1
55 typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
56 typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
57 typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
59 typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
60 typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
61 typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
63 #define CRITICAL_SECTION_NO_DEBUG_INFO RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO
65 typedef RTL_SRWLOCK SRWLOCK;
66 typedef PRTL_SRWLOCK PSRWLOCK;
68 #define SRWLOCK_INIT RTL_SRWLOCK_INIT
70 typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
72 #define CONDITION_VARIABLE_INIT RTL_CONDITION_VARIABLE_INIT
73 #define CONDITION_VARIABLE_LOCKMODE_SHARED RTL_CONDITION_VARIABLE_LOCKMODE_SHARED
74 typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE;
76 #define EXCEPTION_DEBUG_EVENT 1
77 #define CREATE_THREAD_DEBUG_EVENT 2
78 #define CREATE_PROCESS_DEBUG_EVENT 3
79 #define EXIT_THREAD_DEBUG_EVENT 4
80 #define EXIT_PROCESS_DEBUG_EVENT 5
81 #define LOAD_DLL_DEBUG_EVENT 6
82 #define UNLOAD_DLL_DEBUG_EVENT 7
83 #define OUTPUT_DEBUG_STRING_EVENT 8
84 #define RIP_EVENT 9
86 typedef struct _EXCEPTION_DEBUG_INFO {
87 EXCEPTION_RECORD ExceptionRecord;
88 DWORD dwFirstChance;
89 } EXCEPTION_DEBUG_INFO;
91 typedef struct _CREATE_THREAD_DEBUG_INFO {
92 HANDLE hThread;
93 LPVOID lpThreadLocalBase;
94 LPTHREAD_START_ROUTINE lpStartAddress;
95 } CREATE_THREAD_DEBUG_INFO;
97 typedef struct _CREATE_PROCESS_DEBUG_INFO {
98 HANDLE hFile;
99 HANDLE hProcess;
100 HANDLE hThread;
101 LPVOID lpBaseOfImage;
102 DWORD dwDebugInfoFileOffset;
103 DWORD nDebugInfoSize;
104 LPVOID lpThreadLocalBase;
105 LPTHREAD_START_ROUTINE lpStartAddress;
106 LPVOID lpImageName;
107 WORD fUnicode;
108 } CREATE_PROCESS_DEBUG_INFO;
110 typedef struct _EXIT_THREAD_DEBUG_INFO {
111 DWORD dwExitCode;
112 } EXIT_THREAD_DEBUG_INFO;
114 typedef struct _EXIT_PROCESS_DEBUG_INFO {
115 DWORD dwExitCode;
116 } EXIT_PROCESS_DEBUG_INFO;
118 typedef struct _LOAD_DLL_DEBUG_INFO {
119 HANDLE hFile;
120 LPVOID lpBaseOfDll;
121 DWORD dwDebugInfoFileOffset;
122 DWORD nDebugInfoSize;
123 LPVOID lpImageName;
124 WORD fUnicode;
125 } LOAD_DLL_DEBUG_INFO;
127 typedef struct _UNLOAD_DLL_DEBUG_INFO {
128 LPVOID lpBaseOfDll;
129 } UNLOAD_DLL_DEBUG_INFO;
131 typedef struct _OUTPUT_DEBUG_STRING_INFO {
132 LPSTR lpDebugStringData;
133 WORD fUnicode;
134 WORD nDebugStringLength;
135 } OUTPUT_DEBUG_STRING_INFO;
137 typedef struct _RIP_INFO {
138 DWORD dwError;
139 DWORD dwType;
140 } RIP_INFO;
142 typedef struct _DEBUG_EVENT {
143 DWORD dwDebugEventCode;
144 DWORD dwProcessId;
145 DWORD dwThreadId;
146 union {
147 EXCEPTION_DEBUG_INFO Exception;
148 CREATE_THREAD_DEBUG_INFO CreateThread;
149 CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
150 EXIT_THREAD_DEBUG_INFO ExitThread;
151 EXIT_PROCESS_DEBUG_INFO ExitProcess;
152 LOAD_DLL_DEBUG_INFO LoadDll;
153 UNLOAD_DLL_DEBUG_INFO UnloadDll;
154 OUTPUT_DEBUG_STRING_INFO DebugString;
155 RIP_INFO RipInfo;
156 } u;
157 } DEBUG_EVENT, *LPDEBUG_EVENT;
159 typedef PCONTEXT LPCONTEXT;
160 typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
161 typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
163 typedef LONG (CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS);
164 typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
166 #define OFS_MAXPATHNAME 128
167 typedef struct _OFSTRUCT
169 BYTE cBytes;
170 BYTE fFixedDisk;
171 WORD nErrCode;
172 WORD Reserved1;
173 WORD Reserved2;
174 CHAR szPathName[OFS_MAXPATHNAME];
175 } OFSTRUCT, *POFSTRUCT, *LPOFSTRUCT;
177 #define OF_READ 0x0000
178 #define OF_WRITE 0x0001
179 #define OF_READWRITE 0x0002
180 #define OF_SHARE_COMPAT 0x0000
181 #define OF_SHARE_EXCLUSIVE 0x0010
182 #define OF_SHARE_DENY_WRITE 0x0020
183 #define OF_SHARE_DENY_READ 0x0030
184 #define OF_SHARE_DENY_NONE 0x0040
185 #define OF_PARSE 0x0100
186 #define OF_DELETE 0x0200
187 #define OF_VERIFY 0x0400 /* Used with OF_REOPEN */
188 #define OF_SEARCH 0x0400 /* Used without OF_REOPEN */
189 #define OF_CANCEL 0x0800
190 #define OF_CREATE 0x1000
191 #define OF_PROMPT 0x2000
192 #define OF_EXIST 0x4000
193 #define OF_REOPEN 0x8000
195 /* SetErrorMode values */
196 #define SEM_FAILCRITICALERRORS 0x0001
197 #define SEM_NOGPFAULTERRORBOX 0x0002
198 #define SEM_NOALIGNMENTFAULTEXCEPT 0x0004
199 #define SEM_NOOPENFILEERRORBOX 0x8000
201 /* CopyFileEx flags */
202 #define COPY_FILE_FAIL_IF_EXISTS 0x00000001
203 #define COPY_FILE_RESTARTABLE 0x00000002
204 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
205 #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x00000008
206 #define COPY_FILE_COPY_SYMLINK 0x00000800
207 #define COPY_FILE_NO_BUFFERING 0x00001000
209 /* return values for CopyProgressRoutine */
210 #define PROGRESS_CONTINUE 0
211 #define PROGRESS_CANCEL 1
212 #define PROGRESS_STOP 2
213 #define PROGRESS_QUIET 3
215 /* reason codes for CopyProgressRoutine */
216 #define CALLBACK_CHUNK_FINISHED 0
217 #define CALLBACK_STREAM_SWITCH 1
219 /* GetTempFileName() Flags */
220 #define TF_FORCEDRIVE 0x80
222 #define DRIVE_UNKNOWN 0
223 #define DRIVE_NO_ROOT_DIR 1
224 #define DRIVE_REMOVABLE 2
225 #define DRIVE_FIXED 3
226 #define DRIVE_REMOTE 4
227 /* Win32 additions */
228 #define DRIVE_CDROM 5
229 #define DRIVE_RAMDISK 6
231 #define MAX_COMPUTERNAME_LENGTH 15
233 /* The security attributes structure */
234 typedef struct _SECURITY_ATTRIBUTES
236 DWORD nLength;
237 LPVOID lpSecurityDescriptor;
238 BOOL bInheritHandle;
239 } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
241 #ifndef _FILETIME_
242 #define _FILETIME_
243 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
244 typedef struct _FILETIME
246 #ifdef WORDS_BIGENDIAN
247 DWORD dwHighDateTime;
248 DWORD dwLowDateTime;
249 #else
250 DWORD dwLowDateTime;
251 DWORD dwHighDateTime;
252 #endif
253 } FILETIME, *PFILETIME, *LPFILETIME;
254 #endif /* _FILETIME_ */
256 /* Find* structures */
257 typedef struct _WIN32_FIND_DATAA
259 DWORD dwFileAttributes;
260 FILETIME ftCreationTime;
261 FILETIME ftLastAccessTime;
262 FILETIME ftLastWriteTime;
263 DWORD nFileSizeHigh;
264 DWORD nFileSizeLow;
265 DWORD dwReserved0;
266 DWORD dwReserved1;
267 CHAR cFileName[260];
268 CHAR cAlternateFileName[14];
269 } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
271 typedef struct _WIN32_FIND_DATAW
273 DWORD dwFileAttributes;
274 FILETIME ftCreationTime;
275 FILETIME ftLastAccessTime;
276 FILETIME ftLastWriteTime;
277 DWORD nFileSizeHigh;
278 DWORD nFileSizeLow;
279 DWORD dwReserved0;
280 DWORD dwReserved1;
281 WCHAR cFileName[260];
282 WCHAR cAlternateFileName[14];
283 } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
285 DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA)
286 DECL_WINELIB_TYPE_AW(PWIN32_FIND_DATA)
287 DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
289 typedef enum _FINDEX_INFO_LEVELS
291 FindExInfoStandard,
292 FindExInfoBasic,
293 FindExInfoMaxInfoLevel
294 } FINDEX_INFO_LEVELS;
296 #define FIND_FIRST_EX_CASE_SENSITIVE 1
297 #define FIND_FIRST_EX_LARGE_FETCH 2
299 typedef enum _FINDEX_SEARCH_OPS
301 FindExSearchNameMatch,
302 FindExSearchLimitToDirectories,
303 FindExSearchLimitToDevices,
304 FindExSearchMaxSearchOp
305 } FINDEX_SEARCH_OPS;
307 typedef struct _PROCESS_HEAP_ENTRY
309 LPVOID lpData;
310 DWORD cbData;
311 BYTE cbOverhead;
312 BYTE iRegionIndex;
313 WORD wFlags;
314 union {
315 struct {
316 HANDLE hMem;
317 DWORD dwReserved[3];
318 } Block;
319 struct {
320 DWORD dwCommittedSize;
321 DWORD dwUnCommittedSize;
322 LPVOID lpFirstBlock;
323 LPVOID lpLastBlock;
324 } Region;
325 } DUMMYUNIONNAME;
326 } PROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY;
328 #define PROCESS_HEAP_REGION 0x0001
329 #define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002
330 #define PROCESS_HEAP_ENTRY_BUSY 0x0004
331 #define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010
332 #define PROCESS_HEAP_ENTRY_DDESHARE 0x0020
334 #define INVALID_HANDLE_VALUE ((HANDLE)~(ULONG_PTR)0)
335 #define INVALID_FILE_SIZE (~0u)
336 #define INVALID_SET_FILE_POINTER (~0u)
337 #define INVALID_FILE_ATTRIBUTES (~0u)
339 #define LOCKFILE_FAIL_IMMEDIATELY 1
340 #define LOCKFILE_EXCLUSIVE_LOCK 2
342 #define FLS_OUT_OF_INDEXES (~0u)
343 #define TLS_OUT_OF_INDEXES (~0u)
345 #define SHUTDOWN_NORETRY 1
347 /* comm */
349 #define CBR_110 0xFF10
350 #define CBR_300 0xFF11
351 #define CBR_600 0xFF12
352 #define CBR_1200 0xFF13
353 #define CBR_2400 0xFF14
354 #define CBR_4800 0xFF15
355 #define CBR_9600 0xFF16
356 #define CBR_14400 0xFF17
357 #define CBR_19200 0xFF18
358 #define CBR_38400 0xFF1B
359 #define CBR_56000 0xFF1F
360 #define CBR_57600 0xFF20
361 #define CBR_115200 0xFF21
362 #define CBR_128000 0xFF23
363 #define CBR_256000 0xFF27
365 #define NOPARITY 0
366 #define ODDPARITY 1
367 #define EVENPARITY 2
368 #define MARKPARITY 3
369 #define SPACEPARITY 4
370 #define ONESTOPBIT 0
371 #define ONE5STOPBITS 1
372 #define TWOSTOPBITS 2
374 #define IGNORE 0
375 #define INFINITE 0xFFFFFFFF
377 #define CE_RXOVER 0x0001
378 #define CE_OVERRUN 0x0002
379 #define CE_RXPARITY 0x0004
380 #define CE_FRAME 0x0008
381 #define CE_BREAK 0x0010
382 #define CE_CTSTO 0x0020
383 #define CE_DSRTO 0x0040
384 #define CE_RLSDTO 0x0080
385 #define CE_TXFULL 0x0100
386 #define CE_PTO 0x0200
387 #define CE_IOE 0x0400
388 #define CE_DNS 0x0800
389 #define CE_OOP 0x1000
390 #define CE_MODE 0x8000
392 #define IE_BADID -1
393 #define IE_OPEN -2
394 #define IE_NOPEN -3
395 #define IE_MEMORY -4
396 #define IE_DEFAULT -5
397 #define IE_HARDWARE -10
398 #define IE_BYTESIZE -11
399 #define IE_BAUDRATE -12
401 #define EV_RXCHAR 0x0001
402 #define EV_RXFLAG 0x0002
403 #define EV_TXEMPTY 0x0004
404 #define EV_CTS 0x0008
405 #define EV_DSR 0x0010
406 #define EV_RLSD 0x0020
407 #define EV_BREAK 0x0040
408 #define EV_ERR 0x0080
409 #define EV_RING 0x0100
410 #define EV_PERR 0x0200
411 #define EV_RX80FULL 0x0400
412 #define EV_EVENT1 0x0800
413 #define EV_EVENT2 0x1000
415 #define SETXOFF 1
416 #define SETXON 2
417 #define SETRTS 3
418 #define CLRRTS 4
419 #define SETDTR 5
420 #define CLRDTR 6
421 #define RESETDEV 7
422 #define SETBREAK 8
423 #define CLRBREAK 9
425 /* Purge functions for Comm Port */
426 #define PURGE_TXABORT 0x0001 /* Kill the pending/current writes to the
427 comm port */
428 #define PURGE_RXABORT 0x0002 /*Kill the pending/current reads to
429 the comm port */
430 #define PURGE_TXCLEAR 0x0004 /* Kill the transmit queue if there*/
431 #define PURGE_RXCLEAR 0x0008 /* Kill the typeahead buffer if there*/
434 /* Modem Status Flags */
435 #define MS_CTS_ON ((DWORD)0x0010)
436 #define MS_DSR_ON ((DWORD)0x0020)
437 #define MS_RING_ON ((DWORD)0x0040)
438 #define MS_RLSD_ON ((DWORD)0x0080)
440 #define RTS_CONTROL_DISABLE 0
441 #define RTS_CONTROL_ENABLE 1
442 #define RTS_CONTROL_HANDSHAKE 2
443 #define RTS_CONTROL_TOGGLE 3
445 #define DTR_CONTROL_DISABLE 0
446 #define DTR_CONTROL_ENABLE 1
447 #define DTR_CONTROL_HANDSHAKE 2
450 #define LMEM_FIXED 0
451 #define LMEM_MOVEABLE 0x0002
452 #define LMEM_NOCOMPACT 0x0010
453 #define LMEM_NODISCARD 0x0020
454 #define LMEM_ZEROINIT 0x0040
455 #define LMEM_MODIFY 0x0080
456 #define LMEM_DISCARDABLE 0x0F00
457 #define LMEM_DISCARDED 0x4000
458 #define LMEM_INVALID_HANDLE 0x8000
459 #define LMEM_LOCKCOUNT 0x00FF
461 #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
462 #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
464 #define NONZEROLHND (LMEM_MOVEABLE)
465 #define NONZEROLPTR (LMEM_FIXED)
467 #define LocalDiscard(h) (LocalReAlloc((h),0,LMEM_MOVEABLE))
469 #define GMEM_FIXED 0x0000
470 #define GMEM_MOVEABLE 0x0002
471 #define GMEM_NOCOMPACT 0x0010
472 #define GMEM_NODISCARD 0x0020
473 #define GMEM_ZEROINIT 0x0040
474 #define GMEM_MODIFY 0x0080
475 #define GMEM_DISCARDABLE 0x0100
476 #define GMEM_NOT_BANKED 0x1000
477 #define GMEM_SHARE 0x2000
478 #define GMEM_DDESHARE 0x2000
479 #define GMEM_NOTIFY 0x4000
480 #define GMEM_LOWER GMEM_NOT_BANKED
481 #define GMEM_DISCARDED 0x4000
482 #define GMEM_LOCKCOUNT 0x00ff
483 #define GMEM_INVALID_HANDLE 0x8000
485 #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
486 #define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
488 #define GlobalLRUNewest(h) ((HANDLE)(h))
489 #define GlobalLRUOldest(h) ((HANDLE)(h))
490 #define GlobalDiscard(h) (GlobalReAlloc((h),0,GMEM_MOVEABLE))
492 #define INVALID_ATOM ((ATOM)0)
493 #define MAXINTATOM 0xc000
494 #ifdef WINE_NO_UNICODE_MACROS /* force using a cast */
495 #define MAKEINTATOM(atom) ((ULONG_PTR)((WORD)(atom)))
496 #else
497 #define MAKEINTATOM(atom) ((LPTSTR)((ULONG_PTR)((WORD)(atom))))
498 #endif
500 typedef struct tagMEMORYSTATUS
502 DWORD dwLength;
503 DWORD dwMemoryLoad;
504 SIZE_T dwTotalPhys;
505 SIZE_T dwAvailPhys;
506 SIZE_T dwTotalPageFile;
507 SIZE_T dwAvailPageFile;
508 SIZE_T dwTotalVirtual;
509 SIZE_T dwAvailVirtual;
510 } MEMORYSTATUS, *LPMEMORYSTATUS;
512 #include <pshpack8.h>
513 typedef struct tagMEMORYSTATUSEX {
514 DWORD dwLength;
515 DWORD dwMemoryLoad;
516 DWORDLONG DECLSPEC_ALIGN(8) ullTotalPhys;
517 DWORDLONG DECLSPEC_ALIGN(8) ullAvailPhys;
518 DWORDLONG DECLSPEC_ALIGN(8) ullTotalPageFile;
519 DWORDLONG DECLSPEC_ALIGN(8) ullAvailPageFile;
520 DWORDLONG DECLSPEC_ALIGN(8) ullTotalVirtual;
521 DWORDLONG DECLSPEC_ALIGN(8) ullAvailVirtual;
522 DWORDLONG DECLSPEC_ALIGN(8) ullAvailExtendedVirtual;
523 } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
524 #include <poppack.h>
526 typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
527 LowMemoryResourceNotification,
528 HighMemoryResourceNotification
529 } MEMORY_RESOURCE_NOTIFICATION_TYPE;
531 #ifndef _SYSTEMTIME_
532 #define _SYSTEMTIME_
533 typedef struct _SYSTEMTIME{
534 WORD wYear;
535 WORD wMonth;
536 WORD wDayOfWeek;
537 WORD wDay;
538 WORD wHour;
539 WORD wMinute;
540 WORD wSecond;
541 WORD wMilliseconds;
542 } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
543 #endif /* _SYSTEMTIME_ */
545 #include <timezoneapi.h>
547 /* The 'overlapped' data structure used by async I/O functions.
549 typedef struct _OVERLAPPED {
550 #ifdef WORDS_BIGENDIAN
551 ULONG_PTR InternalHigh;
552 ULONG_PTR Internal;
553 #else
554 ULONG_PTR Internal;
555 ULONG_PTR InternalHigh;
556 #endif
557 union {
558 struct {
559 #ifdef WORDS_BIGENDIAN
560 DWORD OffsetHigh;
561 DWORD Offset;
562 #else
563 DWORD Offset;
564 DWORD OffsetHigh;
565 #endif
566 } DUMMYSTRUCTNAME;
567 PVOID Pointer;
568 } DUMMYUNIONNAME;
569 HANDLE hEvent;
570 } OVERLAPPED, *LPOVERLAPPED;
572 typedef struct _OVERLAPPED_ENTRY {
573 ULONG_PTR lpCompletionKey;
574 LPOVERLAPPED lpOverlapped;
575 ULONG_PTR Internal;
576 DWORD dwNumberOfBytesTransferred;
577 } OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
579 typedef VOID (CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
581 /* Process startup information.
584 /* STARTUPINFO.dwFlags */
585 #define STARTF_USESHOWWINDOW 0x00000001
586 #define STARTF_USESIZE 0x00000002
587 #define STARTF_USEPOSITION 0x00000004
588 #define STARTF_USECOUNTCHARS 0x00000008
589 #define STARTF_USEFILLATTRIBUTE 0x00000010
590 #define STARTF_RUNFULLSCREEN 0x00000020
591 #define STARTF_FORCEONFEEDBACK 0x00000040
592 #define STARTF_FORCEOFFFEEDBACK 0x00000080
593 #define STARTF_USESTDHANDLES 0x00000100
594 #define STARTF_USEHOTKEY 0x00000200
596 typedef struct _STARTUPINFOA{
597 DWORD cb; /* 00: size of struct */
598 LPSTR lpReserved; /* 04: */
599 LPSTR lpDesktop; /* 08: */
600 LPSTR lpTitle; /* 0c: */
601 DWORD dwX; /* 10: */
602 DWORD dwY; /* 14: */
603 DWORD dwXSize; /* 18: */
604 DWORD dwYSize; /* 1c: */
605 DWORD dwXCountChars; /* 20: */
606 DWORD dwYCountChars; /* 24: */
607 DWORD dwFillAttribute; /* 28: */
608 DWORD dwFlags; /* 2c: */
609 WORD wShowWindow; /* 30: */
610 WORD cbReserved2; /* 32: */
611 BYTE *lpReserved2; /* 34: */
612 HANDLE hStdInput; /* 38: */
613 HANDLE hStdOutput; /* 3c: */
614 HANDLE hStdError; /* 40: */
615 } STARTUPINFOA, *LPSTARTUPINFOA;
617 typedef struct _STARTUPINFOW{
618 DWORD cb;
619 LPWSTR lpReserved;
620 LPWSTR lpDesktop;
621 LPWSTR lpTitle;
622 DWORD dwX;
623 DWORD dwY;
624 DWORD dwXSize;
625 DWORD dwYSize;
626 DWORD dwXCountChars;
627 DWORD dwYCountChars;
628 DWORD dwFillAttribute;
629 DWORD dwFlags;
630 WORD wShowWindow;
631 WORD cbReserved2;
632 BYTE *lpReserved2;
633 HANDLE hStdInput;
634 HANDLE hStdOutput;
635 HANDLE hStdError;
636 } STARTUPINFOW, *LPSTARTUPINFOW;
638 DECL_WINELIB_TYPE_AW(STARTUPINFO)
639 DECL_WINELIB_TYPE_AW(LPSTARTUPINFO)
641 typedef struct _PROCESS_INFORMATION{
642 HANDLE hProcess;
643 HANDLE hThread;
644 DWORD dwProcessId;
645 DWORD dwThreadId;
646 } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
648 /* CreateProcess: dwCreationFlag values
650 #define DEBUG_PROCESS 0x00000001
651 #define DEBUG_ONLY_THIS_PROCESS 0x00000002
652 #define CREATE_SUSPENDED 0x00000004
653 #define DETACHED_PROCESS 0x00000008
654 #define CREATE_NEW_CONSOLE 0x00000010
655 #define NORMAL_PRIORITY_CLASS 0x00000020
656 #define IDLE_PRIORITY_CLASS 0x00000040
657 #define HIGH_PRIORITY_CLASS 0x00000080
658 #define REALTIME_PRIORITY_CLASS 0x00000100
659 #define CREATE_NEW_PROCESS_GROUP 0x00000200
660 #define CREATE_UNICODE_ENVIRONMENT 0x00000400
661 #define CREATE_SEPARATE_WOW_VDM 0x00000800
662 #define CREATE_SHARED_WOW_VDM 0x00001000
663 #define CREATE_FORCEDOS 0x00002000
664 #define BELOW_NORMAL_PRIORITY_CLASS 0x00004000
665 #define ABOVE_NORMAL_PRIORITY_CLASS 0x00008000
666 #define INHERIT_PARENT_AFFINITY 0x00010000
667 #define INHERIT_CALLER_PRIORITY 0x00020000
668 #define CREATE_PROTECTED_PROCESS 0x00040000
669 #define EXTENDED_STARTUPINFO_PRESENT 0x00080000
670 #define PROCESS_MODE_BACKGROUND_BEGIN 0x00100000
671 #define PROCESS_MODE_BACKGROUND_END 0x00200000
672 #define CREATE_SECURE_PROCESS 0x00400000
673 #define CREATE_BREAKAWAY_FROM_JOB 0x01000000
674 #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x02000000
675 #define CREATE_DEFAULT_ERROR_MODE 0x04000000
676 #define CREATE_NO_WINDOW 0x08000000
677 #define PROFILE_USER 0x10000000
678 #define PROFILE_KERNEL 0x20000000
679 #define PROFILE_SERVER 0x40000000
681 #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
683 /* File object type definitions
685 #define FILE_TYPE_UNKNOWN 0
686 #define FILE_TYPE_DISK 1
687 #define FILE_TYPE_CHAR 2
688 #define FILE_TYPE_PIPE 3
689 #define FILE_TYPE_REMOTE 32768
691 /* File encryption status
693 #define FILE_ENCRYPTABLE 0
694 #define FILE_IS_ENCRYPTED 1
695 #define FILE_SYSTEM_ATTR 2
696 #define FILE_ROOT_DIR 3
697 #define FILE_SYSTEM_DIR 4
698 #define FILE_UNKNOWN 5
699 #define FILE_SYSTEM_NOT_SUPPORT 6
700 #define FILE_USER_DISALLOWED 7
701 #define FILE_READ_ONLY 8
702 #define FILE_DIR_DISALLOWED 9
704 typedef DWORD (WINAPI *PFE_EXPORT_FUNC)(PBYTE,PVOID,ULONG);
705 typedef DWORD (WINAPI *PFE_IMPORT_FUNC)(PBYTE,PVOID,ULONG);
707 #define CREATE_FOR_IMPORT (1)
708 #define CREATE_FOR_DIR (2)
709 #define OVERWRITE_HIDDEN (4)
710 #define EFSRPC_SECURE_ONLY (8)
712 /* File creation flags
714 #define FILE_FLAG_WRITE_THROUGH 0x80000000
715 #define FILE_FLAG_OVERLAPPED 0x40000000
716 #define FILE_FLAG_NO_BUFFERING 0x20000000
717 #define FILE_FLAG_RANDOM_ACCESS 0x10000000
718 #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000
719 #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
720 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000
721 #define FILE_FLAG_POSIX_SEMANTICS 0x01000000
722 #define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000
723 #define FILE_FLAG_OPEN_NO_RECALL 0x00100000
724 #define FILE_FLAG_FIRST_PIPE_INSTANCE 0x00080000
726 #define CREATE_NEW 1
727 #define CREATE_ALWAYS 2
728 #define OPEN_EXISTING 3
729 #define OPEN_ALWAYS 4
730 #define TRUNCATE_EXISTING 5
732 /* Standard handle identifiers
734 #define STD_INPUT_HANDLE ((DWORD) -10)
735 #define STD_OUTPUT_HANDLE ((DWORD) -11)
736 #define STD_ERROR_HANDLE ((DWORD) -12)
738 /* Flags for GetFinalPathNameByHandle
740 #define FILE_NAME_NORMALIZED 0x0
741 #define FILE_NAME_OPENED 0x8
742 #define VOLUME_NAME_DOS 0x0
743 #define VOLUME_NAME_GUID 0x1
744 #define VOLUME_NAME_NT 0x2
745 #define VOLUME_NAME_NONE 0x4
747 typedef struct _BY_HANDLE_FILE_INFORMATION
749 DWORD dwFileAttributes;
750 FILETIME ftCreationTime;
751 FILETIME ftLastAccessTime;
752 FILETIME ftLastWriteTime;
753 DWORD dwVolumeSerialNumber;
754 DWORD nFileSizeHigh;
755 DWORD nFileSizeLow;
756 DWORD nNumberOfLinks;
757 DWORD nFileIndexHigh;
758 DWORD nFileIndexLow;
759 } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION ;
761 typedef enum _FILE_ID_TYPE {
762 FileIdType,
763 ObjectIdType,
764 ExtendedFileIdType,
765 MaximumFileIdType
766 } FILE_ID_TYPE, *PFILE_ID_TYPE;
768 typedef struct _FILE_ID_DESCRIPTOR {
769 DWORD dwSize;
770 FILE_ID_TYPE Type;
771 union {
772 LARGE_INTEGER FileId;
773 GUID ObjectId;
774 } DUMMYUNIONNAME;
775 } FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
777 typedef enum _FILE_INFO_BY_HANDLE_CLASS {
778 FileBasicInfo,
779 FileStandardInfo,
780 FileNameInfo,
781 FileRenameInfo,
782 FileDispositionInfo,
783 FileAllocationInfo,
784 FileEndOfFileInfo,
785 FileStreamInfo,
786 FileCompressionInfo,
787 FileAttributeTagInfo,
788 FileIdBothDirectoryInfo,
789 FileIdBothDirectoryRestartInfo,
790 FileIoPriorityHintInfo,
791 FileRemoteProtocolInfo,
792 FileFullDirectoryInfo,
793 FileFullDirectoryRestartInfo,
794 FileStorageInfo,
795 FileAlignmentInfo,
796 FileIdInfo,
797 FileIdExtdDirectoryInfo,
798 FileIdExtdDirectoryRestartInfo,
799 MaximumFileInfoByHandlesClass
800 } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
802 typedef struct _FILE_ID_BOTH_DIR_INFO {
803 DWORD NextEntryOffset;
804 DWORD FileIndex;
805 LARGE_INTEGER CreationTime;
806 LARGE_INTEGER LastAccessTime;
807 LARGE_INTEGER LastWriteTime;
808 LARGE_INTEGER ChangeTime;
809 LARGE_INTEGER EndOfFile;
810 LARGE_INTEGER AllocationSize;
811 DWORD FileAttributes;
812 DWORD FileNameLength;
813 DWORD EaSize;
814 CCHAR ShortNameLength;
815 WCHAR ShortName[12];
816 LARGE_INTEGER FileId;
817 WCHAR FileName[1];
818 } FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
820 typedef struct _FILE_BASIC_INFO {
821 LARGE_INTEGER CreationTime;
822 LARGE_INTEGER LastAccessTime;
823 LARGE_INTEGER LastWriteTime;
824 LARGE_INTEGER ChangeTime;
825 DWORD FileAttributes;
826 } FILE_BASIC_INFO, *PFILE_BASIC_INFO;
828 typedef struct _FILE_STANDARD_INFO {
829 LARGE_INTEGER AllocationSize;
830 LARGE_INTEGER EndOfFile;
831 DWORD NumberOfLinks;
832 BOOLEAN DeletePending;
833 BOOLEAN Directory;
834 } FILE_STANDARD_INFO, *PFILE_STANDARD_INFO;
836 typedef struct _FILE_NAME_INFO {
837 DWORD FileNameLength;
838 WCHAR FileName[1];
839 } FILE_NAME_INFO, *PFILE_NAME_INFO;
841 typedef enum _PRIORITY_HINT {
842 IoPriorityHintVeryLow,
843 IoPriorityHintLow,
844 IoPriorityHintNormal,
845 MaximumIoPriorityHintType
846 } PRIORITY_HINT;
848 typedef struct _FILE_IO_PRIORITY_HINT_INFO {
849 PRIORITY_HINT PriorityHint;
850 } FILE_IO_PRIORITY_HINT_INFO;
852 typedef struct _FILE_ALLOCATION_INFO {
853 LARGE_INTEGER AllocationSize;
854 } FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO;
856 typedef struct _FILE_DISPOSITION_INFO {
857 BOOLEAN DeleteFile;
858 } FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO;
860 typedef struct _FILE_END_OF_FILE_INFO {
861 LARGE_INTEGER EndOfFile;
862 } FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO;
864 typedef struct _FILE_RENAME_INFO {
865 BOOLEAN ReplaceIfExists;
866 HANDLE RootDirectory;
867 DWORD FileNameLength;
868 WCHAR FileName[1];
869 } FILE_RENAME_INFO, *PFILE_RENAME_INFO;
871 typedef struct _FILE_ATTRIBUTE_TAG_INFO {
872 DWORD FileAttributes;
873 DWORD ReparseTag;
874 } FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
876 typedef struct _FILE_COMPRESSION_INFO {
877 LARGE_INTEGER CompressedFileSize;
878 WORD CompressionFormat;
879 UCHAR CompressionUnitShift;
880 UCHAR ChunkShift;
881 UCHAR ClusterShift;
882 UCHAR Reserved[3];
883 } FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO;
885 typedef struct _FILE_REMOTE_PROTOCOL_INFO {
886 USHORT StructureVersion;
887 USHORT StructureSize;
888 ULONG Protocol;
889 USHORT ProtocolMajorVersion;
890 USHORT ProtocolMinorVersion;
891 USHORT ProtocolRevision;
892 USHORT Reserved;
893 ULONG Flags;
894 struct {
895 ULONG Reserved[8];
896 } GenericReserved;
897 struct {
898 ULONG Reserved[16];
899 } ProtocolSpecificReserved;
900 } FILE_REMOTE_PROTOCOL_INFO, *PFILE_REMOTE_PROTOCOL_INFO;
902 #define PIPE_ACCESS_INBOUND 1
903 #define PIPE_ACCESS_OUTBOUND 2
904 #define PIPE_ACCESS_DUPLEX 3
906 #define PIPE_CLIENT_END 0
907 #define PIPE_SERVER_END 1
908 #define PIPE_READMODE_BYTE 0
909 #define PIPE_READMODE_MESSAGE 2
910 #define PIPE_TYPE_BYTE 0
911 #define PIPE_TYPE_MESSAGE 4
913 #define PIPE_WAIT 0
914 #define PIPE_NOWAIT 1
916 #define PIPE_UNLIMITED_INSTANCES 255
918 #define NMPWAIT_WAIT_FOREVER 0xffffffff
919 #define NMPWAIT_NOWAIT 0x00000001
920 #define NMPWAIT_USE_DEFAULT_WAIT 0x00000000
922 /* Security flags for dwFlagsAndAttributes of CreateFile */
923 #define SECURITY_ANONYMOUS (SecurityAnonymous << 16)
924 #define SECURITY_IDENTIFICATION (SecurityIdentification << 16)
925 #define SECURITY_IMPERSONATION (SecurityImpersonation << 16)
926 #define SECURITY_DELEGATION (SecurityDelegation << 16)
928 #define SECURITY_CONTEXT_TRACKING 0x00040000
929 #define SECURITY_EFFECTIVE_ONLY 0x00080000
931 #define SECURITY_SQOS_PRESENT 0x00100000
932 #define SECURITY_VALID_SQOS_FLAGS 0x001f0000
934 typedef struct _SYSTEM_POWER_STATUS
936 BYTE ACLineStatus;
937 BYTE BatteryFlag;
938 BYTE BatteryLifePercent;
939 BYTE SystemStatusFlag;
940 DWORD BatteryLifeTime;
941 DWORD BatteryFullLifeTime;
942 } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
944 #define AC_LINE_OFFLINE 0x00
945 #define AC_LINE_ONLINE 0x01
946 #define AC_LINE_BACKUP_POWER 0x02
947 #define AC_LINE_UNKNOWN 0xFF
949 #define BATTERY_FLAG_HIGH 0x01
950 #define BATTERY_FLAG_LOW 0x02
951 #define BATTERY_FLAG_CRITICAL 0x04
952 #define BATTERY_FLAG_CHARGING 0x08
953 #define BATTERY_FLAG_NO_BATTERY 0x80
954 #define BATTERY_FLAG_UNKNOWN 0xFF
956 #define BATTERY_PERCENTAGE_UNKNOWN 0xFF
958 #define SYSTEM_STATUS_FLAG_POWER_SAVING_ON 0x01
960 #define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
962 typedef struct _SYSTEM_INFO
964 union {
965 DWORD dwOemId; /* Obsolete field - do not use */
966 struct {
967 WORD wProcessorArchitecture;
968 WORD wReserved;
969 } DUMMYSTRUCTNAME;
970 } DUMMYUNIONNAME;
971 DWORD dwPageSize;
972 LPVOID lpMinimumApplicationAddress;
973 LPVOID lpMaximumApplicationAddress;
974 DWORD_PTR dwActiveProcessorMask;
975 DWORD dwNumberOfProcessors;
976 DWORD dwProcessorType;
977 DWORD dwAllocationGranularity;
978 WORD wProcessorLevel;
979 WORD wProcessorRevision;
980 } SYSTEM_INFO, *LPSYSTEM_INFO;
982 typedef BOOL (CALLBACK *ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG_PTR);
983 typedef BOOL (CALLBACK *ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG_PTR);
984 typedef BOOL (CALLBACK *ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG_PTR);
985 typedef BOOL (CALLBACK *ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG_PTR);
986 typedef BOOL (CALLBACK *ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG_PTR);
987 typedef BOOL (CALLBACK *ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG_PTR);
989 DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC)
990 DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC)
991 DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC)
993 /* flags that can be passed to LoadLibraryEx */
994 #define DONT_RESOLVE_DLL_REFERENCES 0x00000001
995 #define LOAD_LIBRARY_AS_DATAFILE 0x00000002
996 #define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
997 #define LOAD_IGNORE_CODE_AUTHZ_LEVEL 0x00000010
998 #define LOAD_LIBRARY_AS_IMAGE_RESOURCE 0x00000020
999 #define LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE 0x00000040
1000 #define LOAD_LIBRARY_REQUIRE_SIGNED_TARGET 0x00000080
1001 #define LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 0x00000100
1002 #define LOAD_LIBRARY_SEARCH_APPLICATION_DIR 0x00000200
1003 #define LOAD_LIBRARY_SEARCH_USER_DIRS 0x00000400
1004 #define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800
1005 #define LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 0x00001000
1007 #define GET_MODULE_HANDLE_EX_FLAG_PIN 1
1008 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 2
1009 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 4
1011 /* flags for SetSearchPathMode */
1012 #define BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE 0x00001
1013 #define BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE 0x10000
1014 #define BASE_SEARCH_PATH_PERMANENT 0x08000
1015 #define BASE_SEARCH_PATH_INVALID_FLAGS (~0x18001)
1017 typedef PLDT_ENTRY LPLDT_ENTRY;
1019 typedef enum _GET_FILEEX_INFO_LEVELS {
1020 GetFileExInfoStandard
1021 } GET_FILEEX_INFO_LEVELS;
1023 typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
1024 DWORD dwFileAttributes;
1025 FILETIME ftCreationTime;
1026 FILETIME ftLastAccessTime;
1027 FILETIME ftLastWriteTime;
1028 DWORD nFileSizeHigh;
1029 DWORD nFileSizeLow;
1030 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
1033 * This one seems to be a Win32 only definition. It also is defined with
1034 * WINAPI instead of CALLBACK in the windows headers.
1036 typedef DWORD (CALLBACK *LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER,
1037 LARGE_INTEGER, DWORD, DWORD, HANDLE,
1038 HANDLE, LPVOID);
1040 typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)(PVOID);
1042 #define RECOVERY_DEFAULT_PING_INTERVAL 5000
1043 #define RECOVERY_MAX_PING_INTERVAL (5*60*1000)
1045 #define RESTART_MAX_CMD_LINE 1024
1047 #define RESTART_NO_CRASH 1
1048 #define RESTART_NO_HANG 2
1049 #define RESTART_NO_PATCH 4
1050 #define RESTART_NO_REBOOT 8
1052 typedef enum _COPYFILE2_MESSAGE_TYPE
1054 COPYFILE2_CALLBACK_NONE = 0,
1055 COPYFILE2_CALLBACK_CHUNK_STARTED,
1056 COPYFILE2_CALLBACK_CHUNK_FINISHED,
1057 COPYFILE2_CALLBACK_STREAM_STARTED,
1058 COPYFILE2_CALLBACK_STREAM_FINISHED,
1059 COPYFILE2_CALLBACK_POLL_CONTINUE,
1060 COPYFILE2_CALLBACK_ERROR,
1061 COPYFILE2_CALLBACK_MAX,
1062 } COPYFILE2_MESSAGE_TYPE;
1064 typedef enum _COPYFILE2_MESSAGE_ACTION
1066 COPYFILE2_PROGRESS_CONTINUE = 0,
1067 COPYFILE2_PROGRESS_CANCEL,
1068 COPYFILE2_PROGRESS_STOP,
1069 COPYFILE2_PROGRESS_QUIET,
1070 COPYFILE2_PROGRESS_PAUSE,
1071 } COPYFILE2_MESSAGE_ACTION;
1073 typedef enum _COPYFILE2_COPY_PHASE
1075 COPYFILE2_PHASE_NONE = 0,
1076 COPYFILE2_PHASE_PREPARE_SOURCE,
1077 COPYFILE2_PHASE_PREPARE_DEST,
1078 COPYFILE2_PHASE_READ_SOURCE,
1079 COPYFILE2_PHASE_WRITE_DESTINATION,
1080 COPYFILE2_PHASE_SERVER_COPY,
1081 COPYFILE2_PHASE_NAMEGRAFT_COPY,
1082 COPYFILE2_PHASE_MAX,
1083 } COPYFILE2_COPY_PHASE;
1085 typedef struct COPYFILE2_MESSAGE
1087 COPYFILE2_MESSAGE_TYPE Type;
1088 DWORD dwPadding;
1089 union
1091 struct
1093 DWORD dwStreamNumber;
1094 DWORD dwReserved;
1095 HANDLE hSourceFile;
1096 HANDLE hDestinationFile;
1097 ULARGE_INTEGER uliChunkNumber;
1098 ULARGE_INTEGER uliChunkSize;
1099 ULARGE_INTEGER uliStreamSize;
1100 ULARGE_INTEGER uliTotalFileSize;
1101 } ChunkStarted;
1102 struct
1104 DWORD dwStreamNumber;
1105 DWORD dwFlags;
1106 HANDLE hSourceFile;
1107 HANDLE hDestinationFile;
1108 ULARGE_INTEGER uliChunkNumber;
1109 ULARGE_INTEGER uliChunkSize;
1110 ULARGE_INTEGER uliStreamSize;
1111 ULARGE_INTEGER uliStreamBytesTransferred;
1112 ULARGE_INTEGER uliTotalFileSize;
1113 ULARGE_INTEGER uliTotalBytesTransferred;
1114 } ChunkFinished;
1115 struct
1117 DWORD dwStreamNumber;
1118 DWORD dwReserved;
1119 HANDLE hSourceFile;
1120 HANDLE hDestinationFile;
1121 ULARGE_INTEGER uliStreamSize;
1122 ULARGE_INTEGER uliTotalFileSize;
1123 } StreamStarted;
1124 struct
1126 DWORD dwStreamNumber;
1127 DWORD dwReserved;
1128 HANDLE hSourceFile;
1129 HANDLE hDestinationFile;
1130 ULARGE_INTEGER uliStreamSize;
1131 ULARGE_INTEGER uliStreamBytesTransferred;
1132 ULARGE_INTEGER uliTotalFileSize;
1133 ULARGE_INTEGER uliTotalBytesTransferred;
1134 } StreamFinished;
1135 struct
1137 DWORD dwReserved;
1138 } PollContinue;
1139 struct
1141 COPYFILE2_COPY_PHASE CopyPhase;
1142 DWORD dwStreamNumber;
1143 HRESULT hrFailure;
1144 DWORD dwReserved;
1145 ULARGE_INTEGER uliChunkNumber;
1146 ULARGE_INTEGER uliStreamSize;
1147 ULARGE_INTEGER uliStreamBytesTransferred;
1148 ULARGE_INTEGER uliTotalFileSize;
1149 ULARGE_INTEGER uliTotalBytesTransferred;
1150 } Error;
1151 } Info;
1152 } COPYFILE2_MESSAGE;
1154 typedef COPYFILE2_MESSAGE_ACTION (CALLBACK *PCOPYFILE2_PROGRESS_ROUTINE)(const COPYFILE2_MESSAGE*,PVOID);
1156 typedef struct COPYFILE2_EXTENDED_PARAMETERS
1158 DWORD dwSize;
1159 DWORD dwCopyFlags;
1160 BOOL *pfCancel;
1161 PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine;
1162 PVOID pvCallbackContext;
1163 } COPYFILE2_EXTENDED_PARAMETERS;
1165 #define CREATE_EVENT_MANUAL_RESET 1
1166 #define CREATE_EVENT_INITIAL_SET 2
1168 #define CREATE_MUTEX_INITIAL_OWNER 1
1170 #define CREATE_WAITABLE_TIMER_MANUAL_RESET 1
1172 #define WAIT_FAILED 0xffffffff
1173 #define WAIT_OBJECT_0 0
1174 #define WAIT_ABANDONED STATUS_ABANDONED_WAIT_0
1175 #define WAIT_ABANDONED_0 STATUS_ABANDONED_WAIT_0
1176 #define WAIT_IO_COMPLETION STATUS_USER_APC
1177 #define STILL_ACTIVE STATUS_PENDING
1179 #define FILE_BEGIN 0
1180 #define FILE_CURRENT 1
1181 #define FILE_END 2
1183 #define FILE_MAP_COPY 0x00000001
1184 #define FILE_MAP_WRITE 0x00000002
1185 #define FILE_MAP_READ 0x00000004
1186 #define FILE_MAP_ALL_ACCESS 0x000f001f
1187 #define FILE_MAP_EXECUTE 0x00000020
1189 #define MOVEFILE_REPLACE_EXISTING 0x00000001
1190 #define MOVEFILE_COPY_ALLOWED 0x00000002
1191 #define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004
1192 #define MOVEFILE_WRITE_THROUGH 0x00000008
1194 #define REPLACEFILE_WRITE_THROUGH 0x00000001
1195 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002
1197 #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
1198 #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
1199 #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
1200 #define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS
1201 #define FS_VOL_IS_COMPRESSED FILE_VOLUME_IS_COMPRESSED
1202 #define FS_FILE_COMPRESSION FILE_FILE_COMPRESSION
1203 #define FS_FILE_ENCRYPTION FILE_SUPPORTS_ENCRYPTION
1205 #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
1206 #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
1208 #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
1209 #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
1210 #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
1211 #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
1212 #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
1213 #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
1214 #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
1215 #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
1216 #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
1217 #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
1218 #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
1219 #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
1220 #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
1221 #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
1222 #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
1223 #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
1224 #define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
1225 #define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
1226 #define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
1227 #define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
1228 #define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
1229 #define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
1230 #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
1232 #define HANDLE_FLAG_INHERIT 0x00000001
1233 #define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002
1235 #define HINSTANCE_ERROR 32
1237 #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
1238 #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1)
1239 #define THREAD_PRIORITY_NORMAL 0
1240 #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
1241 #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1)
1242 #define THREAD_PRIORITY_ERROR_RETURN (0x7fffffff)
1243 #define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT
1244 #define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE
1246 /* flags to FormatMessage */
1247 #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
1248 #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
1249 #define FORMAT_MESSAGE_FROM_STRING 0x00000400
1250 #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800
1251 #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
1252 #define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000
1253 #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF
1255 /* flags to ACTCTX[AW] */
1256 #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID (0x00000001)
1257 #define ACTCTX_FLAG_LANGID_VALID (0x00000002)
1258 #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID (0x00000004)
1259 #define ACTCTX_FLAG_RESOURCE_NAME_VALID (0x00000008)
1260 #define ACTCTX_FLAG_SET_PROCESS_DEFAULT (0x00000010)
1261 #define ACTCTX_FLAG_APPLICATION_NAME_VALID (0x00000020)
1262 #define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF (0x00000040)
1263 #define ACTCTX_FLAG_HMODULE_VALID (0x00000080)
1265 /* flags to DeactivateActCtx */
1266 #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION (0x00000001)
1268 /* flags to FindActCtxSection{Guid,String[AW]} */
1269 #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX (0x00000001)
1270 #define FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS (0x00000002)
1271 #define FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA (0x00000004)
1273 /* flags to QueryActCtxW */
1274 #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX (0x00000004)
1275 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE (0x00000008)
1276 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS (0x00000010)
1277 #define QUERY_ACTCTX_FLAG_NO_ADDREF (0x80000000)
1279 typedef struct tagACTCTXA {
1280 ULONG cbSize;
1281 DWORD dwFlags;
1282 LPCSTR lpSource;
1283 USHORT wProcessorArchitecture;
1284 LANGID wLangId;
1285 LPCSTR lpAssemblyDirectory;
1286 LPCSTR lpResourceName;
1287 LPCSTR lpApplicationName;
1288 HMODULE hModule;
1289 } ACTCTXA, *PACTCTXA;
1291 typedef struct tagACTCTXW {
1292 ULONG cbSize;
1293 DWORD dwFlags;
1294 LPCWSTR lpSource;
1295 USHORT wProcessorArchitecture;
1296 LANGID wLangId;
1297 LPCWSTR lpAssemblyDirectory;
1298 LPCWSTR lpResourceName;
1299 LPCWSTR lpApplicationName;
1300 HMODULE hModule;
1301 } ACTCTXW, *PACTCTXW;
1303 DECL_WINELIB_TYPE_AW(ACTCTX)
1304 DECL_WINELIB_TYPE_AW(PACTCTX)
1306 typedef const ACTCTXA *PCACTCTXA;
1307 typedef const ACTCTXW *PCACTCTXW;
1308 DECL_WINELIB_TYPE_AW(PCACTCTX)
1310 typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
1311 ULONG cbSize;
1312 ULONG ulDataFormatVersion;
1313 PVOID lpData;
1314 ULONG ulLength;
1315 PVOID lpSectionGlobalData;
1316 ULONG ulSectionGlobalDataLength;
1317 PVOID lpSectionBase;
1318 ULONG ulSectionTotalLength;
1319 HANDLE hActCtx;
1320 ULONG ulAssemblyRosterIndex;
1321 } ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600;
1322 typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
1324 typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
1325 PVOID lpInformation;
1326 PVOID lpSectionBase;
1327 ULONG ulSectionLength;
1328 PVOID lpSectionGlobalDataBase;
1329 ULONG ulSectionGlobalDataLength;
1330 } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1331 typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
1333 typedef struct tagACTCTX_SECTION_KEYED_DATA {
1334 ULONG cbSize;
1335 ULONG ulDataFormatVersion;
1336 PVOID lpData;
1337 ULONG ulLength;
1338 PVOID lpSectionGlobalData;
1339 ULONG ulSectionGlobalDataLength;
1340 PVOID lpSectionBase;
1341 ULONG ulSectionTotalLength;
1342 HANDLE hActCtx;
1343 ULONG ulAssemblyRosterIndex;
1345 /* Non 2600 extra fields */
1346 ULONG ulFlags;
1347 ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
1348 } ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA;
1349 typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
1351 typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
1352 HANDLE hActCtx;
1353 DWORD dwFlags;
1354 } ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION;
1356 typedef BOOL (WINAPI *PQUERYACTCTXW_FUNC)(DWORD,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T *);
1358 typedef struct tagCOMSTAT
1360 DWORD fCtsHold : 1;
1361 DWORD fDsrHold : 1;
1362 DWORD fRlsdHold : 1;
1363 DWORD fXoffHold : 1;
1364 DWORD fXoffSent : 1;
1365 DWORD fEof : 1;
1366 DWORD fTxim : 1;
1367 DWORD fReserved : 25;
1368 DWORD cbInQue;
1369 DWORD cbOutQue;
1370 } COMSTAT, *LPCOMSTAT;
1372 typedef struct tagDCB
1374 DWORD DCBlength;
1375 DWORD BaudRate;
1376 unsigned fBinary :1;
1377 unsigned fParity :1;
1378 unsigned fOutxCtsFlow :1;
1379 unsigned fOutxDsrFlow :1;
1380 unsigned fDtrControl :2;
1381 unsigned fDsrSensitivity :1;
1382 unsigned fTXContinueOnXoff :1;
1383 unsigned fOutX :1;
1384 unsigned fInX :1;
1385 unsigned fErrorChar :1;
1386 unsigned fNull :1;
1387 unsigned fRtsControl :2;
1388 unsigned fAbortOnError :1;
1389 unsigned fDummy2 :17;
1390 WORD wReserved;
1391 WORD XonLim;
1392 WORD XoffLim;
1393 BYTE ByteSize;
1394 BYTE Parity;
1395 BYTE StopBits;
1396 char XonChar;
1397 char XoffChar;
1398 char ErrorChar;
1399 char EofChar;
1400 char EvtChar;
1401 WORD wReserved1;
1402 } DCB, *LPDCB;
1404 typedef struct tagCOMMCONFIG {
1405 DWORD dwSize;
1406 WORD wVersion;
1407 WORD wReserved;
1408 DCB dcb;
1409 DWORD dwProviderSubType;
1410 DWORD dwProviderOffset;
1411 DWORD dwProviderSize;
1412 WCHAR wcProviderData[1];
1413 } COMMCONFIG, *LPCOMMCONFIG;
1415 typedef struct tagCOMMPROP {
1416 WORD wPacketLength;
1417 WORD wPacketVersion;
1418 DWORD dwServiceMask;
1419 DWORD dwReserved1;
1420 DWORD dwMaxTxQueue;
1421 DWORD dwMaxRxQueue;
1422 DWORD dwMaxBaud;
1423 DWORD dwProvSubType;
1424 DWORD dwProvCapabilities;
1425 DWORD dwSettableParams;
1426 DWORD dwSettableBaud;
1427 WORD wSettableData;
1428 WORD wSettableStopParity;
1429 DWORD dwCurrentTxQueue;
1430 DWORD dwCurrentRxQueue;
1431 DWORD dwProvSpec1;
1432 DWORD dwProvSpec2;
1433 WCHAR wcProvChar[1];
1434 } COMMPROP, *LPCOMMPROP;
1436 #define SP_SERIALCOMM ((DWORD)1)
1438 #define BAUD_075 ((DWORD)0x01)
1439 #define BAUD_110 ((DWORD)0x02)
1440 #define BAUD_134_5 ((DWORD)0x04)
1441 #define BAUD_150 ((DWORD)0x08)
1442 #define BAUD_300 ((DWORD)0x10)
1443 #define BAUD_600 ((DWORD)0x20)
1444 #define BAUD_1200 ((DWORD)0x40)
1445 #define BAUD_1800 ((DWORD)0x80)
1446 #define BAUD_2400 ((DWORD)0x100)
1447 #define BAUD_4800 ((DWORD)0x200)
1448 #define BAUD_7200 ((DWORD)0x400)
1449 #define BAUD_9600 ((DWORD)0x800)
1450 #define BAUD_14400 ((DWORD)0x1000)
1451 #define BAUD_19200 ((DWORD)0x2000)
1452 #define BAUD_38400 ((DWORD)0x4000)
1453 #define BAUD_56K ((DWORD)0x8000)
1454 #define BAUD_57600 ((DWORD)0x40000)
1455 #define BAUD_115200 ((DWORD)0x20000)
1456 #define BAUD_128K ((DWORD)0x10000)
1457 #define BAUD_USER ((DWORD)0x10000000)
1459 #define PST_FAX ((DWORD)0x21)
1460 #define PST_LAT ((DWORD)0x101)
1461 #define PST_MODEM ((DWORD)0x06)
1462 #define PST_NETWORK_BRIDGE ((DWORD)0x100)
1463 #define PST_PARALLELPORT ((DWORD)0x02)
1464 #define PST_RS232 ((DWORD)0x01)
1465 #define PST_RS442 ((DWORD)0x03)
1466 #define PST_RS423 ((DWORD)0x04)
1467 #define PST_RS449 ((DWORD)0x06)
1468 #define PST_SCANNER ((DWORD)0x22)
1469 #define PST_TCPIP_TELNET ((DWORD)0x102)
1470 #define PST_UNSPECIFIED ((DWORD)0x00)
1471 #define PST_X25 ((DWORD)0x103)
1473 #define PCF_16BITMODE ((DWORD)0x200)
1474 #define PCF_DTRDSR ((DWORD)0x01)
1475 #define PCF_INTTIMEOUTS ((DWORD)0x80)
1476 #define PCF_PARITY_CHECK ((DWORD)0x08)
1477 #define PCF_RLSD ((DWORD)0x04)
1478 #define PCF_RTSCTS ((DWORD)0x02)
1479 #define PCF_SETXCHAR ((DWORD)0x20)
1480 #define PCF_SPECIALCHARS ((DWORD)0x100)
1481 #define PCF_TOTALTIMEOUTS ((DWORD)0x40)
1482 #define PCF_XONXOFF ((DWORD)0x10)
1484 #define SP_BAUD ((DWORD)0x02)
1485 #define SP_DATABITS ((DWORD)0x04)
1486 #define SP_HANDSHAKING ((DWORD)0x10)
1487 #define SP_PARITY ((DWORD)0x01)
1488 #define SP_PARITY_CHECK ((DWORD)0x20)
1489 #define SP_RLSD ((DWORD)0x40)
1490 #define SP_STOPBITS ((DWORD)0x08)
1492 #define DATABITS_5 ((DWORD)0x01)
1493 #define DATABITS_6 ((DWORD)0x02)
1494 #define DATABITS_7 ((DWORD)0x04)
1495 #define DATABITS_8 ((DWORD)0x08)
1496 #define DATABITS_16 ((DWORD)0x10)
1497 #define DATABITS_16X ((DWORD)0x20)
1499 #define STOPBITS_10 ((DWORD)1)
1500 #define STOPBITS_15 ((DWORD)2)
1501 #define STOPBITS_20 ((DWORD)4)
1503 #undef PARITY_NONE /* defined on Android */
1504 #define PARITY_NONE ((DWORD)0x100)
1505 #define PARITY_ODD ((DWORD)0x200)
1506 #define PARITY_EVEN ((DWORD)0x400)
1507 #define PARITY_MARK ((DWORD)0x800)
1508 #define PARITY_SPACE ((DWORD)0x1000)
1510 typedef struct tagCOMMTIMEOUTS {
1511 DWORD ReadIntervalTimeout;
1512 DWORD ReadTotalTimeoutMultiplier;
1513 DWORD ReadTotalTimeoutConstant;
1514 DWORD WriteTotalTimeoutMultiplier;
1515 DWORD WriteTotalTimeoutConstant;
1516 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
1518 #define GET_TAPE_MEDIA_INFORMATION 0
1519 #define GET_TAPE_DRIVE_INFORMATION 1
1520 #define SET_TAPE_MEDIA_INFORMATION 0
1521 #define SET_TAPE_DRIVE_INFORMATION 1
1523 #define PROCESS_NAME_NATIVE 1
1525 typedef void (CALLBACK *PAPCFUNC)(ULONG_PTR);
1526 typedef void (CALLBACK *PTIMERAPCROUTINE)(LPVOID,DWORD,DWORD);
1528 typedef enum _COMPUTER_NAME_FORMAT
1530 ComputerNameNetBIOS,
1531 ComputerNameDnsHostname,
1532 ComputerNameDnsDomain,
1533 ComputerNameDnsFullyQualified,
1534 ComputerNamePhysicalNetBIOS,
1535 ComputerNamePhysicalDnsHostname,
1536 ComputerNamePhysicalDnsDomain,
1537 ComputerNamePhysicalDnsFullyQualified,
1538 ComputerNameMax
1539 } COMPUTER_NAME_FORMAT;
1541 #define HW_PROFILE_GUIDLEN 39
1542 #define MAX_PROFILE_LEN 80
1544 #define DOCKINFO_UNDOCKED 0x1
1545 #define DOCKINFO_DOCKED 0x2
1546 #define DOCKINFO_USER_SUPPLIED 0x4
1547 #define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED)
1548 #define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED)
1550 typedef struct tagHW_PROFILE_INFOA {
1551 DWORD dwDockInfo;
1552 CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
1553 CHAR szHwProfileName[MAX_PROFILE_LEN];
1554 } HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA;
1556 typedef struct tagHW_PROFILE_INFOW {
1557 DWORD dwDockInfo;
1558 WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
1559 WCHAR szHwProfileName[MAX_PROFILE_LEN];
1560 } HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW;
1562 DECL_WINELIB_TYPE_AW(HW_PROFILE_INFO)
1563 DECL_WINELIB_TYPE_AW(LPHW_PROFILE_INFO)
1565 typedef enum _DEP_SYSTEM_POLICY_TYPE {
1566 AlwaysOff = 0,
1567 AlwaysOn = 1,
1568 OptIn = 2,
1569 OptOut = 3
1570 } DEP_SYSTEM_POLICY_TYPE;
1572 #define PROCESS_DEP_ENABLE 1
1573 #define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION 2
1575 /* Event Logging */
1577 #define EVENTLOG_FULL_INFO 0
1579 typedef struct _EVENTLOG_FULL_INFORMATION {
1580 DWORD dwFull;
1581 } EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION;
1584 /* Stream data structures and defines */
1585 /*the types of backup data -- WIN32_STREAM_ID.dwStreamId below*/
1586 #define BACKUP_INVALID 0
1587 #define BACKUP_DATA 1
1588 #define BACKUP_EA_DATA 2
1589 #define BACKUP_SECURITY_DATA 3
1590 #define BACKUP_ALTERNATE_DATA 4
1591 #define BACKUP_LINK 5
1592 #define BACKUP_PROPERTY_DATA 6
1593 #define BACKUP_OBJECT_ID 7
1594 #define BACKUP_REPARSE_DATA 8
1595 #define BACKUP_SPARSE_BLOCK 9
1597 /*flags for WIN32_STREAM_ID.dwStreamAttributes below*/
1598 #define STREAM_NORMAL_ATTRIBUTE 0
1599 #define STREAM_MODIFIED_WHEN_READ 1
1600 #define STREAM_CONTAINS_SECURITY 2
1601 #define STREAM_CONTAINS_PROPERTIES 4
1602 #define STREAM_SPARSE_ATTRIBUTE 8
1604 #include <pshpack8.h>
1605 typedef struct _WIN32_STREAM_ID {
1606 DWORD dwStreamId;
1607 DWORD dwStreamAttributes;
1608 LARGE_INTEGER DECLSPEC_ALIGN(8) Size;
1609 DWORD dwStreamNameSize;
1610 WCHAR cStreamName[ANYSIZE_ARRAY];
1611 } WIN32_STREAM_ID, *LPWIN32_STREAM_ID;
1612 #include <poppack.h>
1615 /* GetBinaryType return values.
1618 #define SCS_32BIT_BINARY 0
1619 #define SCS_DOS_BINARY 1
1620 #define SCS_WOW_BINARY 2
1621 #define SCS_PIF_BINARY 3
1622 #define SCS_POSIX_BINARY 4
1623 #define SCS_OS216_BINARY 5
1624 #define SCS_64BIT_BINARY 6
1626 /* flags for DefineDosDevice */
1627 #define DDD_RAW_TARGET_PATH 0x00000001
1628 #define DDD_REMOVE_DEFINITION 0x00000002
1629 #define DDD_EXACT_MATCH_ON_REMOVE 0x00000004
1630 #define DDD_NO_BROADCAST_SYSTEM 0x00000008
1631 #define DDD_LUID_BROADCAST_DRIVE 0x00000010
1633 #define LOGON_WITH_PROFILE 0x00000001
1634 #define LOGON_NETCREDENTIALS_ONLY 0x00000002
1635 #define LOGON_ZERO_PASSWORD_BUFFER 0x80000000
1637 /* one-time initialisation API */
1638 typedef RTL_RUN_ONCE INIT_ONCE;
1639 typedef PRTL_RUN_ONCE PINIT_ONCE;
1640 typedef PRTL_RUN_ONCE LPINIT_ONCE;
1641 #define INIT_ONCE_STATIC_INIT RTL_RUN_ONCE_INIT
1642 #define INIT_ONCE_CHECK_ONLY RTL_RUN_ONCE_CHECK_ONLY
1643 #define INIT_ONCE_ASYNC RTL_RUN_ONCE_ASYNC
1644 #define INIT_ONCE_INIT_FAILED RTL_RUN_ONCE_INIT_FAILED
1645 /* initialization callback prototype */
1646 typedef BOOL (WINAPI *PINIT_ONCE_FN)(PINIT_ONCE,PVOID,PVOID*);
1648 typedef struct _REASON_CONTEXT
1650 ULONG Version;
1651 DWORD Flags;
1652 union
1654 struct
1656 HMODULE LocalizedReasonModule;
1657 ULONG LocalizedReasonId;
1658 ULONG ReasonStringCount;
1659 LPWSTR *ReasonStrings;
1660 } Detailed;
1661 LPWSTR SimpleReasonString;
1662 } Reason;
1663 } REASON_CONTEXT, *PREASON_CONTEXT;
1665 #define RESOURCE_ENUM_LN 0x0001
1666 #define RESOURCE_ENUM_MUI 0x0002
1667 #define RESOURCE_ENUM_MUI_SYSTEM 0x0004
1668 #define RESOURCE_ENUM_VALIDATE 0x0008
1670 typedef struct _PROC_THREAD_ATTRIBUTE_LIST
1671 *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST;
1673 #define PROC_THREAD_ATTRIBUTE_NUMBER 0x0000ffff
1674 #define PROC_THREAD_ATTRIBUTE_THREAD 0x00010000
1675 #define PROC_THREAD_ATTRIBUTE_INPUT 0x00020000
1676 #define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x00040000
1678 typedef enum _PROC_THREAD_ATTRIBUTE_NUM
1680 ProcThreadAttributeParentProcess = 0,
1681 ProcThreadAttributeHandleList = 2,
1682 ProcThreadAttributeGroupAffinity = 3,
1683 ProcThreadAttributePreferredNode = 4,
1684 ProcThreadAttributeIdealProcessor = 5,
1685 ProcThreadAttributeUmsThread = 6,
1686 ProcThreadAttributeMitigationPolicy = 7,
1687 ProcThreadAttributeSecurityCapabilities = 9,
1688 ProcThreadAttributeProtectionLevel = 11,
1689 ProcThreadAttributeJobList = 13,
1690 ProcThreadAttributeChildProcessPolicy = 14,
1691 ProcThreadAttributeAllApplicationPackagesPolicy = 15,
1692 ProcThreadAttributeWin32kFilter = 16,
1693 ProcThreadAttributeSafeOpenPromptOriginClaim = 17,
1694 } PROC_THREAD_ATTRIBUTE_NUM;
1696 #define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS (ProcThreadAttributeParentProcess | PROC_THREAD_ATTRIBUTE_INPUT)
1697 #define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
1698 #define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY (ProcThreadAttributeGroupAffinity | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1699 #define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE (ProcThreadAttributePreferredNode | PROC_THREAD_ATTRIBUTE_INPUT)
1700 #define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1701 #define PROC_THREAD_ATTRIBUTE_UMS_THREAD (ProcThreadAttributeUmsThread | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
1702 #define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY (ProcThreadAttributeMitigationPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
1703 #define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES (ProcThreadAttributeSecurityCapabilities | PROC_THREAD_ATTRIBUTE_INPUT)
1704 #define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL (ProcThreadAttributeProtectionLevel | PROC_THREAD_ATTRIBUTE_INPUT)
1705 #define PROC_THREAD_ATTRIBUTE_JOB_LIST (ProcThreadAttributeJobList | PROC_THREAD_ATTRIBUTE_INPUT)
1706 #define PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY (ProcThreadAttributeChildProcessPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
1707 #define PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY (ProcThreadAttributeAllApplicationPackagesPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
1708 #define PROC_THREAD_ATTRIBUTE_WIN32K_FILTER (ProcThreadAttributeWin32kFilter | PROC_THREAD_ATTRIBUTE_INPUT)
1710 #define SYMBOLIC_LINK_FLAG_DIRECTORY (0x1)
1711 #define VALID_SYMBOLIC_LINK_FLAGS SYMBOLIC_LINK_FLAG_DIRECTORY
1713 typedef struct _STARTUPINFOEXA
1715 STARTUPINFOA StartupInfo;
1716 LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
1717 } STARTUPINFOEXA, *LPSTARTUPINFOEXA;
1719 typedef struct _STARTUPINFOEXW
1721 STARTUPINFOW StartupInfo;
1722 LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
1723 } STARTUPINFOEXW, *LPSTARTUPINFOEXW;
1725 DECL_WINELIB_TYPE_AW(STARTUPINFOEX)
1726 DECL_WINELIB_TYPE_AW(LPSTARTUPINFOEX)
1728 typedef void *PUMS_CONTEXT;
1729 typedef void *PUMS_COMPLETION_LIST;
1730 typedef PRTL_UMS_SCHEDULER_ENTRY_POINT PUMS_SCHEDULER_ENTRY_POINT;
1731 typedef struct _UMS_SCHEDULER_STARTUP_INFO
1733 ULONG UmsVersion;
1734 PUMS_COMPLETION_LIST CompletionList;
1735 PUMS_SCHEDULER_ENTRY_POINT SchedulerProc;
1736 PVOID SchedulerParam;
1737 } UMS_SCHEDULER_STARTUP_INFO, *PUMS_SCHEDULER_STARTUP_INFO;
1739 typedef enum _RTL_UMS_SCHEDULER_REASON UMS_SCHEDULER_REASON;
1740 typedef enum _RTL_UMS_THREAD_INFO_CLASS UMS_THREAD_INFO_CLASS, *PUMS_THREAD_INFO_CLASS;
1742 typedef enum _STREAM_INFO_LEVELS
1744 FindStreamInfoStandard,
1745 FindStreamInfoMaxInfoLevel
1746 } STREAM_INFO_LEVELS;
1748 typedef struct _WIN32_FIND_STREAM_DATA {
1749 LARGE_INTEGER StreamSize;
1750 WCHAR cStreamName[MAX_PATH + 36];
1751 } WIN32_FIND_STREAM_DATA,*PWIN32_FIND_STREAM_DATA;
1753 WINBASEAPI BOOL WINAPI ActivateActCtx(HANDLE,ULONG_PTR *);
1754 WINADVAPI BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
1755 WINADVAPI BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1756 WINADVAPI BOOL WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
1757 WINADVAPI BOOL WINAPI AddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
1758 WINADVAPI BOOL WINAPI AddAce(PACL,DWORD,DWORD,LPVOID,DWORD);
1759 WINBASEAPI ATOM WINAPI AddAtomA(LPCSTR);
1760 WINBASEAPI ATOM WINAPI AddAtomW(LPCWSTR);
1761 #define AddAtom WINELIB_NAME_AW(AddAtom)
1762 WINADVAPI BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
1763 WINADVAPI BOOL WINAPI AddAuditAccessAceEx(PACL,DWORD,DWORD,DWORD,PSID,BOOL,BOOL);
1764 WINADVAPI BOOL WINAPI AddMandatoryAce(PACL,DWORD,DWORD,DWORD,PSID);
1765 WINBASEAPI VOID WINAPI AddRefActCtx(HANDLE);
1766 WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
1767 WINADVAPI BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
1768 WINADVAPI BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
1769 WINADVAPI BOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,LPDWORD,LPBOOL,LPBOOL);
1770 WINADVAPI BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,LPDWORD,LPBOOL,LPBOOL);
1771 #define AccessCheckAndAuditAlarm WINELIB_NAME_AW(AccessCheckAndAuditAlarm)
1772 WINADVAPI BOOL WINAPI AccessCheckByType(PSECURITY_DESCRIPTOR,PSID,HANDLE,DWORD,POBJECT_TYPE_LIST,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
1773 WINBASEAPI VOID WINAPI AcquireSRWLockExclusive(PSRWLOCK);
1774 WINBASEAPI VOID WINAPI AcquireSRWLockShared(PSRWLOCK);
1775 WINADVAPI BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
1776 WINADVAPI BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
1777 WINADVAPI BOOL WINAPI AllocateLocallyUniqueId(PLUID);
1778 WINADVAPI BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD);
1779 WINADVAPI BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD);
1780 WINBASEAPI BOOL WINAPI AreFileApisANSI(void);
1781 WINBASEAPI BOOL WINAPI AssignProcessToJobObject(HANDLE,HANDLE);
1782 WINADVAPI BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR);
1783 WINADVAPI BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR);
1784 #define BackupEventLog WINELIB_NAME_AW(BackupEventLog)
1785 WINBASEAPI BOOL WINAPI BackupRead(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1786 WINBASEAPI BOOL WINAPI BackupSeek(HANDLE,DWORD,DWORD,LPDWORD,LPDWORD,LPVOID*);
1787 WINBASEAPI BOOL WINAPI BackupWrite(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1788 WINBASEAPI BOOL WINAPI Beep(DWORD,DWORD);
1789 WINBASEAPI HANDLE WINAPI BeginUpdateResourceA(LPCSTR,BOOL);
1790 WINBASEAPI HANDLE WINAPI BeginUpdateResourceW(LPCWSTR,BOOL);
1791 #define BeginUpdateResource WINELIB_NAME_AW(BeginUpdateResource)
1792 WINBASEAPI BOOL WINAPI BindIoCompletionCallback(HANDLE,LPOVERLAPPED_COMPLETION_ROUTINE,ULONG);
1793 WINBASEAPI BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB);
1794 WINBASEAPI BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB);
1795 #define BuildCommDCB WINELIB_NAME_AW(BuildCommDCB)
1796 WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS);
1797 WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS);
1798 #define BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts)
1799 WINBASEAPI BOOL WINAPI CallNamedPipeA(LPCSTR,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,DWORD);
1800 WINBASEAPI BOOL WINAPI CallNamedPipeW(LPCWSTR,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,DWORD);
1801 #define CallNamedPipe WINELIB_NAME_AW(CallNamedPipe)
1802 WINBASEAPI BOOL WINAPI CancelIo(HANDLE);
1803 WINBASEAPI BOOL WINAPI CancelIoEx(HANDLE,LPOVERLAPPED);
1804 WINBASEAPI BOOL WINAPI CancelSynchronousIo(HANDLE);
1805 WINBASEAPI BOOL WINAPI CancelTimerQueueTimer(HANDLE,HANDLE);
1806 WINBASEAPI BOOL WINAPI CancelWaitableTimer(HANDLE);
1807 WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3A(const char*,char*,DWORD,BOOL*,BOOL*);
1808 WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3W(const WCHAR*, char*,DWORD,BOOL*,BOOL*);
1809 WINBASEAPI BOOL WINAPI CheckRemoteDebuggerPresent(HANDLE,BOOL*);
1810 WINBASEAPI BOOL WINAPI ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG);
1811 WINADVAPI BOOL WINAPI CheckTokenMembership(HANDLE,PSID,PBOOL);
1812 WINBASEAPI BOOL WINAPI ClearCommBreak(HANDLE);
1813 WINBASEAPI BOOL WINAPI ClearCommError(HANDLE,LPDWORD,LPCOMSTAT);
1814 WINADVAPI VOID WINAPI CloseEncryptedFileRaw(PVOID);
1815 WINADVAPI BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR);
1816 WINADVAPI BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR);
1817 #define ClearEventLog WINELIB_NAME_AW(ClearEventLog)
1818 WINADVAPI BOOL WINAPI CloseEventLog(HANDLE);
1819 WINBASEAPI BOOL WINAPI CloseHandle(HANDLE);
1820 WINBASEAPI BOOL WINAPI CommConfigDialogA(LPCSTR,HWND,LPCOMMCONFIG);
1821 WINBASEAPI BOOL WINAPI CommConfigDialogW(LPCWSTR,HWND,LPCOMMCONFIG);
1822 #define CommConfigDialog WINELIB_NAME_AW(CommConfigDialog)
1823 WINBASEAPI BOOL WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED);
1824 WINBASEAPI BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
1825 WINBASEAPI HANDLE WINAPI ConvertToGlobalHandle(HANDLE hSrc);
1826 WINBASEAPI BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,BOOL);
1827 WINBASEAPI BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,BOOL);
1828 #define CopyFile WINELIB_NAME_AW(CopyFile)
1829 WINBASEAPI HRESULT WINAPI CopyFile2(PCWSTR,PCWSTR,COPYFILE2_EXTENDED_PARAMETERS*);
1830 WINBASEAPI BOOL WINAPI CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1831 WINBASEAPI BOOL WINAPI CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1832 #define CopyFileEx WINELIB_NAME_AW(CopyFileEx)
1833 WINADVAPI BOOL WINAPI CopySid(DWORD,PSID,PSID);
1834 WINBASEAPI INT WINAPI CompareFileTime(const FILETIME*,const FILETIME*);
1835 WINBASEAPI BOOL WINAPI ConvertFiberToThread(void);
1836 WINBASEAPI LPVOID WINAPI ConvertThreadToFiber(LPVOID);
1837 WINBASEAPI LPVOID WINAPI ConvertThreadToFiberEx(LPVOID,DWORD);
1838 WINADVAPI BOOL WINAPI ConvertToAutoInheritPrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,GUID*,BOOL,PGENERIC_MAPPING);
1839 WINBASEAPI HANDLE WINAPI CreateActCtxA(PCACTCTXA);
1840 WINBASEAPI HANDLE WINAPI CreateActCtxW(PCACTCTXW);
1841 #define CreateActCtx WINELIB_NAME_AW(CreateActCtx)
1842 WINBASEAPI BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
1843 WINBASEAPI BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
1844 #define CreateDirectory WINELIB_NAME_AW(CreateDirectory)
1845 WINBASEAPI BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1846 WINBASEAPI BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1847 #define CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx)
1848 WINBASEAPI HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1849 WINBASEAPI HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1850 #define CreateEvent WINELIB_NAME_AW(CreateEvent)
1851 WINBASEAPI HANDLE WINAPI CreateEventExA(SECURITY_ATTRIBUTES*,LPCSTR,DWORD,DWORD);
1852 WINBASEAPI HANDLE WINAPI CreateEventExW(SECURITY_ATTRIBUTES*,LPCWSTR,DWORD,DWORD);
1853 #define CreateEventEx WINELIB_NAME_AW(CreateEventEx)
1854 WINBASEAPI LPVOID WINAPI CreateFiber(SIZE_T,LPFIBER_START_ROUTINE,LPVOID);
1855 WINBASEAPI LPVOID WINAPI CreateFiberEx(SIZE_T,SIZE_T,DWORD,LPFIBER_START_ROUTINE,LPVOID);
1856 WINBASEAPI HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1857 WINBASEAPI HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
1858 #define CreateFile WINELIB_NAME_AW(CreateFile)
1859 WINBASEAPI HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR);
1860 WINBASEAPI HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR);
1861 #define CreateFileMapping WINELIB_NAME_AW(CreateFileMapping)
1862 WINBASEAPI HANDLE WINAPI CreateIoCompletionPort(HANDLE,HANDLE,ULONG_PTR,DWORD);
1863 WINBASEAPI HANDLE WINAPI CreateJobObjectA(LPSECURITY_ATTRIBUTES,LPCSTR);
1864 WINBASEAPI HANDLE WINAPI CreateJobObjectW(LPSECURITY_ATTRIBUTES,LPCWSTR);
1865 #define CreateJobObject WINELIB_NAME_AW(CreateJobObject)
1866 WINBASEAPI HANDLE WINAPI CreateMailslotA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1867 WINBASEAPI HANDLE WINAPI CreateMailslotW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1868 #define CreateMailslot WINELIB_NAME_AW(CreateMailslot)
1869 WINBASEAPI HANDLE WINAPI CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE);
1870 WINBASEAPI HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1871 WINBASEAPI HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1872 #define CreateMutex WINELIB_NAME_AW(CreateMutex)
1873 WINBASEAPI HANDLE WINAPI CreateMutexExA(SECURITY_ATTRIBUTES*,LPCSTR,DWORD,DWORD);
1874 WINBASEAPI HANDLE WINAPI CreateMutexExW(SECURITY_ATTRIBUTES*,LPCWSTR,DWORD,DWORD);
1875 #define CreateMutexEx WINELIB_NAME_AW(CreateMutexEx)
1876 WINBASEAPI HANDLE WINAPI CreateNamedPipeA(LPCSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1877 WINBASEAPI HANDLE WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
1878 #define CreateNamedPipe WINELIB_NAME_AW(CreateNamedPipe)
1879 WINBASEAPI BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1880 WINADVAPI BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
1881 WINADVAPI BOOL WINAPI CreatePrivateObjectSecurityEx(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,GUID*,BOOL,ULONG,HANDLE,PGENERIC_MAPPING);
1882 WINADVAPI BOOL WINAPI CreatePrivateObjectSecurityWithMultipleInheritance(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,GUID**,ULONG,BOOL,ULONG,HANDLE,PGENERIC_MAPPING);
1883 WINBASEAPI BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1884 WINBASEAPI BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1885 #define CreateProcess WINELIB_NAME_AW(CreateProcess)
1886 WINADVAPI BOOL WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1887 WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1888 #define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
1889 WINBASEAPI BOOL WINAPI CreateProcessInternalA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION,HANDLE*);
1890 WINBASEAPI BOOL WINAPI CreateProcessInternalW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION,HANDLE*);
1891 #define CreateProcessInternal WINELIB_NAME_AW(CreateProcessInternal)
1892 WINADVAPI BOOL WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1893 WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1894 WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPPROC_THREAD_ATTRIBUTE_LIST,LPDWORD);
1895 WINADVAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
1896 WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
1897 WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
1898 #define CreateSemaphore WINELIB_NAME_AW(CreateSemaphore)
1899 WINBASEAPI HANDLE WINAPI CreateSemaphoreExA(SECURITY_ATTRIBUTES*,LONG,LONG,LPCSTR,DWORD,DWORD);
1900 WINBASEAPI HANDLE WINAPI CreateSemaphoreExW(SECURITY_ATTRIBUTES*,LONG,LONG,LPCWSTR,DWORD,DWORD);
1901 #define CreateSemaphoreEx WINELIB_NAME_AW(CreateSemaphoreEx)
1902 WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkA(LPCSTR,LPCSTR,DWORD);
1903 WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkW(LPCWSTR,LPCWSTR,DWORD);
1904 #define CreateSymbolicLink WINELIB_NAME_AW(CreateSymbolicLink)
1905 WINBASEAPI BOOL WINAPI CreateHardLinkA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1906 WINBASEAPI BOOL WINAPI CreateHardLinkW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1907 #define CreateHardLink WINELIB_NAME_AW(CreateHardLink)
1908 WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
1909 WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1910 WINBASEAPI HANDLE WINAPI CreateTimerQueue(void);
1911 WINBASEAPI BOOL WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
1912 WINBASEAPI BOOL WINAPI CreateUmsCompletionList(PUMS_COMPLETION_LIST*);
1913 WINBASEAPI BOOL WINAPI CreateUmsThreadContext(PUMS_CONTEXT*);
1914 WINBASEAPI HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1915 WINBASEAPI HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1916 #define CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer)
1917 WINBASEAPI HANDLE WINAPI CreateWaitableTimerExA(SECURITY_ATTRIBUTES*,LPCSTR,DWORD,DWORD);
1918 WINBASEAPI HANDLE WINAPI CreateWaitableTimerExW(SECURITY_ATTRIBUTES*,LPCWSTR,DWORD,DWORD);
1919 #define CreateWaitableTimerEx WINELIB_NAME_AW(CreateWaitableTimerEx)
1920 WINADVAPI BOOL WINAPI CreateWellKnownSid(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*);
1921 WINBASEAPI BOOL WINAPI DeactivateActCtx(DWORD,ULONG_PTR);
1922 WINBASEAPI BOOL WINAPI DebugActiveProcess(DWORD);
1923 WINBASEAPI BOOL WINAPI DebugActiveProcessStop(DWORD);
1924 WINBASEAPI void WINAPI DebugBreak(void);
1925 WINBASEAPI BOOL WINAPI DebugBreakProcess(HANDLE);
1926 WINBASEAPI BOOL WINAPI DebugSetProcessKillOnExit(BOOL);
1927 WINBASEAPI void * WINAPI DecodePointer(void *);
1928 WINBASEAPI void * WINAPI DecodeSystemPointer(void *);
1929 WINADVAPI BOOL WINAPI DecryptFileA(LPCSTR,DWORD);
1930 WINADVAPI BOOL WINAPI DecryptFileW(LPCWSTR,DWORD);
1931 #define DecryptFile WINELIB_NAME_AW(DecryptFile)
1932 WINBASEAPI BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR);
1933 WINBASEAPI BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1934 #define DefineDosDevice WINELIB_NAME_AW(DefineDosDevice)
1935 #define DefineHandleTable(w) ((w),TRUE)
1936 WINADVAPI BOOL WINAPI DeleteAce(PACL,DWORD);
1937 WINBASEAPI ATOM WINAPI DeleteAtom(ATOM);
1938 WINBASEAPI void WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
1939 WINBASEAPI void WINAPI DeleteFiber(LPVOID);
1940 WINBASEAPI BOOL WINAPI DeleteFileA(LPCSTR);
1941 WINBASEAPI BOOL WINAPI DeleteFileW(LPCWSTR);
1942 #define DeleteFile WINELIB_NAME_AW(DeleteFile)
1943 WINBASEAPI void WINAPI DeleteProcThreadAttributeList(struct _PROC_THREAD_ATTRIBUTE_LIST*);
1944 WINBASEAPI BOOL WINAPI DeleteTimerQueue(HANDLE);
1945 WINBASEAPI BOOL WINAPI DeleteTimerQueueEx(HANDLE,HANDLE);
1946 WINBASEAPI BOOL WINAPI DeleteTimerQueueTimer(HANDLE,HANDLE,HANDLE);
1947 WINBASEAPI BOOL WINAPI DeleteUmsCompletionList(PUMS_COMPLETION_LIST);
1948 WINBASEAPI BOOL WINAPI DeleteUmsThreadContext(PUMS_CONTEXT);
1949 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointA(LPCSTR);
1950 WINBASEAPI BOOL WINAPI DeleteVolumeMountPointW(LPCWSTR);
1951 #define DeleteVolumeMountPoint WINELIB_NAME_AW(DeleteVolumeMountPoint)
1952 WINBASEAPI BOOL WINAPI DequeueUmsCompletionListItems(void *, DWORD, PUMS_CONTEXT *);
1953 WINADVAPI BOOL WINAPI DeregisterEventSource(HANDLE);
1954 WINADVAPI BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
1955 WINBASEAPI BOOL WINAPI DeviceIoControl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
1956 WINBASEAPI BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
1957 WINBASEAPI BOOL WINAPI DisconnectNamedPipe(HANDLE);
1958 WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameA(LPCSTR,LPSTR,LPDWORD);
1959 WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR,LPWSTR,LPDWORD);
1960 #define DnsHostnameToComputerName WINELIB_NAME_AW(DnsHostnameToComputerName)
1961 WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameExW(LPCWSTR,LPWSTR,LPDWORD);
1962 WINBASEAPI BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
1963 WINBASEAPI BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD,BOOL,DWORD);
1964 WINADVAPI BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
1965 WINADVAPI BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
1966 WINBASEAPI BOOL WINAPI EscapeCommFunction(HANDLE,DWORD);
1967 WINBASEAPI void * WINAPI EncodePointer(void *);
1968 WINBASEAPI void * WINAPI EncodeSystemPointer(void *);
1969 WINADVAPI BOOL WINAPI EncryptFileA(LPCSTR);
1970 WINADVAPI BOOL WINAPI EncryptFileW(LPCWSTR);
1971 #define EncryptFile WINELIB_NAME_AW(EncryptFile)
1972 WINBASEAPI BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
1973 WINBASEAPI BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
1974 #define EndUpdateResource WINELIB_NAME_AW(EndUpdateResource)
1975 WINBASEAPI void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);
1976 WINBASEAPI BOOL WINAPI EnterUmsSchedulingMode(PUMS_SCHEDULER_STARTUP_INFO);
1977 WINBASEAPI BOOL WINAPI EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG_PTR);
1978 WINBASEAPI BOOL WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG_PTR);
1979 #define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
1980 WINBASEAPI BOOL WINAPI EnumResourceLanguagesExA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG_PTR,DWORD,LANGID);
1981 WINBASEAPI BOOL WINAPI EnumResourceLanguagesExW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG_PTR,DWORD,LANGID);
1982 #define EnumResourceLanguagesEx WINELIB_NAME_AW(EnumResourceLanguagesEx)
1983 WINBASEAPI BOOL WINAPI EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG_PTR);
1984 WINBASEAPI BOOL WINAPI EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG_PTR);
1985 #define EnumResourceNames WINELIB_NAME_AW(EnumResourceNames)
1986 WINBASEAPI BOOL WINAPI EnumResourceNamesExA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG_PTR,DWORD,LANGID);
1987 WINBASEAPI BOOL WINAPI EnumResourceNamesExW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG_PTR,DWORD,LANGID);
1988 #define EnumResourceNamesEx WINELIB_NAME_AW(EnumResourceNamesEx)
1989 WINBASEAPI BOOL WINAPI EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG_PTR);
1990 WINBASEAPI BOOL WINAPI EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG_PTR);
1991 #define EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes)
1992 WINBASEAPI BOOL WINAPI EnumResourceTypesExA(HMODULE,ENUMRESTYPEPROCA,LONG_PTR,DWORD,LANGID);
1993 WINBASEAPI BOOL WINAPI EnumResourceTypesExW(HMODULE,ENUMRESTYPEPROCW,LONG_PTR,DWORD,LANGID);
1994 #define EnumResourceTypesEx WINELIB_NAME_AW(EnumResourceTypesEx)
1995 WINADVAPI BOOL WINAPI EqualDomainSid(PSID,PSID,BOOL*);
1996 WINADVAPI BOOL WINAPI EqualSid(PSID, PSID);
1997 WINADVAPI BOOL WINAPI EqualPrefixSid(PSID,PSID);
1998 WINBASEAPI DWORD WINAPI EraseTape(HANDLE,DWORD,BOOL);
1999 WINBASEAPI VOID DECLSPEC_NORETURN WINAPI ExitProcess(DWORD);
2000 WINBASEAPI VOID DECLSPEC_NORETURN WINAPI ExitThread(DWORD);
2001 WINBASEAPI BOOL WINAPI ExecuteUmsThread(PUMS_CONTEXT);
2002 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
2003 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
2004 #define ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings)
2005 WINBASEAPI void WINAPI FatalAppExitA(UINT,LPCSTR);
2006 WINBASEAPI void WINAPI FatalAppExitW(UINT,LPCWSTR);
2007 WINBASEAPI void WINAPI FatalExit(int);
2008 #define FatalAppExit WINELIB_NAME_AW(FatalAppExit)
2009 WINADVAPI BOOL WINAPI FileEncryptionStatusA(LPCSTR,LPDWORD);
2010 WINADVAPI BOOL WINAPI FileEncryptionStatusW(LPCWSTR,LPDWORD);
2011 #define FileEncryptionStatus WINELIB_NAME_AW(FileEncryptionStatus)
2012 WINBASEAPI BOOL WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD);
2013 WINBASEAPI BOOL WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME);
2014 WINBASEAPI BOOL WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME);
2015 WINBASEAPI BOOL WINAPI FindActCtxSectionStringA(DWORD,const GUID *,ULONG,LPCSTR,PACTCTX_SECTION_KEYED_DATA);
2016 WINBASEAPI BOOL WINAPI FindActCtxSectionStringW(DWORD,const GUID *,ULONG,LPCWSTR,PACTCTX_SECTION_KEYED_DATA);
2017 #define FindActCtxSectionString WINELIB_NAME_AW(FindActCtxSectionString)
2018 WINBASEAPI BOOL WINAPI FindActCtxSectionGuid(DWORD,const GUID *,ULONG,const GUID *,PACTCTX_SECTION_KEYED_DATA);
2019 WINBASEAPI ATOM WINAPI FindAtomA(LPCSTR);
2020 WINBASEAPI ATOM WINAPI FindAtomW(LPCWSTR);
2021 #define FindAtom WINELIB_NAME_AW(FindAtom)
2022 WINBASEAPI BOOL WINAPI FindClose(HANDLE);
2023 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
2024 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
2025 #define FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification)
2026 WINBASEAPI HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
2027 WINBASEAPI HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
2028 #define FindFirstFile WINELIB_NAME_AW(FindFirstFile)
2029 WINBASEAPI HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
2030 WINBASEAPI HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
2031 #define FindFirstFileEx WINELIB_NAME_AW(FindFirstFileEx)
2032 WINADVAPI BOOL WINAPI FindFirstFreeAce(PACL,LPVOID*);
2033 WINBASEAPI HANDLE WINAPI FindFirstStreamW(LPCWSTR,STREAM_INFO_LEVELS,void*,DWORD);
2034 WINBASEAPI BOOL WINAPI FindNextChangeNotification(HANDLE);
2035 WINBASEAPI BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
2036 WINBASEAPI BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
2037 #define FindNextFile WINELIB_NAME_AW(FindNextFile)
2038 WINBASEAPI BOOL WINAPI FindNextStreamW(HANDLE,void*);
2039 WINBASEAPI BOOL WINAPI FindCloseChangeNotification(HANDLE);
2040 WINBASEAPI HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR);
2041 WINBASEAPI HRSRC WINAPI FindResourceW(HMODULE,LPCWSTR,LPCWSTR);
2042 #define FindResource WINELIB_NAME_AW(FindResource)
2043 WINBASEAPI HRSRC WINAPI FindResourceExA(HMODULE,LPCSTR,LPCSTR,WORD);
2044 WINBASEAPI HRSRC WINAPI FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD);
2045 #define FindResourceEx WINELIB_NAME_AW(FindResourceEx)
2046 WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPSTR,DWORD);
2047 WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPWSTR,DWORD);
2048 #define FindFirstVolume WINELIB_NAME_AW(FindFirstVolume)
2049 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA(LPCSTR,LPSTR,DWORD);
2050 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW(LPCWSTR,LPWSTR,DWORD);
2051 #define FindFirstVolumeMountPoint WINELIB_NAME_AW(FindFirstVolumeMountPoint)
2052 WINBASEAPI BOOL WINAPI FindNextVolumeA(HANDLE,LPSTR,DWORD);
2053 WINBASEAPI BOOL WINAPI FindNextVolumeW(HANDLE,LPWSTR,DWORD);
2054 #define FindNextVolume WINELIB_NAME_AW(FindNextVolume)
2055 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointA(HANDLE,LPSTR,DWORD);
2056 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW(HANDLE,LPWSTR,DWORD);
2057 #define FindNextVolumeMountPoint WINELIB_NAME_AW(FindNextVolumeMountPoint)
2058 WINBASEAPI BOOL WINAPI FindVolumeClose(HANDLE);
2059 WINBASEAPI BOOL WINAPI FindVolumeMountPointClose(HANDLE);
2060 WINBASEAPI DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION);
2061 WINBASEAPI BOOL WINAPI FlsFree(DWORD);
2062 WINBASEAPI PVOID WINAPI FlsGetValue(DWORD);
2063 WINBASEAPI BOOL WINAPI FlsSetValue(DWORD,PVOID);
2064 WINBASEAPI BOOL WINAPI FlushFileBuffers(HANDLE);
2065 WINBASEAPI BOOL WINAPI FlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
2066 WINBASEAPI VOID WINAPI FlushProcessWriteBuffers(void);
2067 WINBASEAPI BOOL WINAPI FlushViewOfFile(LPCVOID,SIZE_T);
2068 WINBASEAPI DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,__ms_va_list*);
2069 WINBASEAPI DWORD WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,DWORD,__ms_va_list*);
2070 #define FormatMessage WINELIB_NAME_AW(FormatMessage)
2071 WINBASEAPI BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
2072 WINBASEAPI BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
2073 #define FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
2074 WINBASEAPI BOOL WINAPI FreeLibrary(HMODULE);
2075 WINBASEAPI VOID DECLSPEC_NORETURN WINAPI FreeLibraryAndExitThread(HINSTANCE,DWORD);
2076 #define FreeModule(handle) FreeLibrary(handle)
2077 #define FreeProcInstance(proc) /*nothing*/
2078 WINBASEAPI BOOL WINAPI FreeResource(HGLOBAL);
2079 WINADVAPI PVOID WINAPI FreeSid(PSID);
2080 WINADVAPI BOOL WINAPI GetAce(PACL,DWORD,LPVOID*);
2081 WINADVAPI BOOL WINAPI GetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
2082 WINBASEAPI DWORD WINAPI GetActiveProcessorCount(WORD);
2083 WINBASEAPI HRESULT WINAPI GetApplicationRestartSettings(HANDLE,WCHAR*,DWORD*,DWORD*);
2084 WINBASEAPI UINT WINAPI GetAtomNameA(ATOM,LPSTR,INT);
2085 WINBASEAPI UINT WINAPI GetAtomNameW(ATOM,LPWSTR,INT);
2086 #define GetAtomName WINELIB_NAME_AW(GetAtomName)
2087 WINBASEAPI BOOL WINAPI GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType );
2088 WINBASEAPI BOOL WINAPI GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType );
2089 #define GetBinaryType WINELIB_NAME_AW(GetBinaryType)
2090 WINBASEAPI BOOL WINAPI GetCurrentActCtx(HANDLE *);
2091 WINBASEAPI BOOL WINAPI GetCommConfig(HANDLE,LPCOMMCONFIG,LPDWORD);
2092 WINBASEAPI BOOL WINAPI GetCommMask(HANDLE,LPDWORD);
2093 WINBASEAPI BOOL WINAPI GetCommModemStatus(HANDLE,LPDWORD);
2094 WINBASEAPI BOOL WINAPI GetCommProperties(HANDLE,LPCOMMPROP);
2095 WINBASEAPI BOOL WINAPI GetCommState(HANDLE,LPDCB);
2096 WINBASEAPI BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
2097 WINBASEAPI LPSTR WINAPI GetCommandLineA(void);
2098 WINBASEAPI LPWSTR WINAPI GetCommandLineW(void);
2099 #define GetCommandLine WINELIB_NAME_AW(GetCommandLine)
2100 WINBASEAPI DWORD WINAPI GetCompressedFileSizeA(LPCSTR,LPDWORD);
2101 WINBASEAPI DWORD WINAPI GetCompressedFileSizeW(LPCWSTR,LPDWORD);
2102 #define GetCompressedFileSize WINELIB_NAME_AW(GetCompressedFileSize)
2103 WINBASEAPI BOOL WINAPI GetComputerNameA(LPSTR,LPDWORD);
2104 WINBASEAPI BOOL WINAPI GetComputerNameW(LPWSTR,LPDWORD);
2105 #define GetComputerName WINELIB_NAME_AW(GetComputerName)
2106 WINBASEAPI BOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT,LPSTR,LPDWORD);
2107 WINBASEAPI BOOL WINAPI GetComputerNameExW(COMPUTER_NAME_FORMAT,LPWSTR,LPDWORD);
2108 #define GetComputerNameEx WINELIB_NAME_AW(GetComputerNameEx)
2109 WINBASEAPI UINT WINAPI GetCurrentDirectoryA(UINT,LPSTR);
2110 WINBASEAPI UINT WINAPI GetCurrentDirectoryW(UINT,LPWSTR);
2111 #define GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory)
2112 WINADVAPI BOOL WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA);
2113 WINADVAPI BOOL WINAPI GetCurrentHwProfileW(LPHW_PROFILE_INFOW);
2114 #define GetCurrentHwProfile WINELIB_NAME_AW(GetCurrentHwProfile)
2115 WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber(void);
2116 WINBASEAPI VOID WINAPI GetCurrentProcessorNumberEx(PPROCESSOR_NUMBER);
2117 #define GetCurrentTime() GetTickCount()
2118 WINBASEAPI PUMS_CONTEXT WINAPI GetCurrentUmsThread(void);
2119 WINBASEAPI BOOL WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,LPDWORD);
2120 WINBASEAPI BOOL WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,LPDWORD);
2121 #define GetDefaultCommConfig WINELIB_NAME_AW(GetDefaultCommConfig)
2122 WINBASEAPI BOOL WINAPI GetDevicePowerState(HANDLE,BOOL*);
2123 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
2124 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
2125 #define GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace)
2126 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2127 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2128 #define GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx)
2129 WINBASEAPI DWORD WINAPI GetDllDirectoryA(DWORD,LPSTR);
2130 WINBASEAPI DWORD WINAPI GetDllDirectoryW(DWORD,LPWSTR);
2131 #define GetDllDirectory WINELIB_NAME_AW(GetDllDirectory)
2132 WINBASEAPI UINT WINAPI GetDriveTypeA(LPCSTR);
2133 WINBASEAPI UINT WINAPI GetDriveTypeW(LPCWSTR);
2134 #define GetDriveType WINELIB_NAME_AW(GetDriveType)
2135 WINBASEAPI LPSTR WINAPI GetEnvironmentStringsA(void);
2136 WINBASEAPI LPWSTR WINAPI GetEnvironmentStringsW(void);
2137 #define GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings)
2138 WINBASEAPI DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
2139 WINBASEAPI DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
2140 #define GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
2141 WINBASEAPI UINT WINAPI GetErrorMode(void);
2142 WINADVAPI BOOL WINAPI GetEventLogInformation(HANDLE,DWORD,LPVOID,DWORD,LPDWORD);
2143 WINBASEAPI BOOL WINAPI GetExitCodeProcess(HANDLE,LPDWORD);
2144 WINBASEAPI BOOL WINAPI GetExitCodeThread(HANDLE,LPDWORD);
2145 WINBASEAPI DWORD WINAPI GetFileAttributesA(LPCSTR);
2146 WINBASEAPI DWORD WINAPI GetFileAttributesW(LPCWSTR);
2147 #define GetFileAttributes WINELIB_NAME_AW(GetFileAttributes)
2148 WINBASEAPI BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
2149 WINBASEAPI BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
2150 #define GetFileAttributesEx WINELIB_NAME_AW(GetFileAttributesEx)
2151 WINBASEAPI BOOL WINAPI GetFileInformationByHandle(HANDLE,BY_HANDLE_FILE_INFORMATION*);
2152 WINBASEAPI BOOL WINAPI GetFileInformationByHandleEx(HANDLE,FILE_INFO_BY_HANDLE_CLASS,LPVOID,DWORD);
2153 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleA(HANDLE,LPSTR,DWORD,DWORD);
2154 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleW(HANDLE,LPWSTR,DWORD,DWORD);
2155 #define GetFinalPathNameByHandle WINELIB_NAME_AW(GetFinalPathNameByHandle)
2156 WINADVAPI BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
2157 WINADVAPI BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
2158 #define GetFileSecurity WINELIB_NAME_AW(GetFileSecurity)
2159 WINBASEAPI DWORD WINAPI GetFileSize(HANDLE,LPDWORD);
2160 WINBASEAPI BOOL WINAPI GetFileSizeEx(HANDLE,PLARGE_INTEGER);
2161 WINBASEAPI BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
2162 WINBASEAPI DWORD WINAPI GetFileType(HANDLE);
2163 #define GetFreeSpace(w) (__MSABI_LONG(0x100000))
2164 WINBASEAPI DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
2165 WINBASEAPI DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
2166 #define GetFullPathName WINELIB_NAME_AW(GetFullPathName)
2167 WINBASEAPI BOOL WINAPI GetHandleInformation(HANDLE,LPDWORD);
2168 WINADVAPI BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
2169 WINADVAPI DWORD WINAPI GetLengthSid(PSID);
2170 WINBASEAPI VOID WINAPI GetLocalTime(LPSYSTEMTIME);
2171 WINBASEAPI DWORD WINAPI GetLogicalDrives(void);
2172 WINBASEAPI UINT WINAPI GetLogicalDriveStringsA(UINT,LPSTR);
2173 WINBASEAPI UINT WINAPI GetLogicalDriveStringsW(UINT,LPWSTR);
2174 #define GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings)
2175 WINBASEAPI DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
2176 WINBASEAPI DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
2177 #define GetLongPathName WINELIB_NAME_AW(GetLongPathName)
2178 WINBASEAPI BOOL WINAPI GetMailslotInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
2179 WINBASEAPI DWORD WINAPI GetModuleFileNameA(HMODULE,LPSTR,DWORD);
2180 WINBASEAPI DWORD WINAPI GetModuleFileNameW(HMODULE,LPWSTR,DWORD);
2181 #define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
2182 WINBASEAPI HMODULE WINAPI GetModuleHandleA(LPCSTR);
2183 WINBASEAPI HMODULE WINAPI GetModuleHandleW(LPCWSTR);
2184 #define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
2185 WINBASEAPI BOOL WINAPI GetModuleHandleExA(DWORD,LPCSTR,HMODULE*);
2186 WINBASEAPI BOOL WINAPI GetModuleHandleExW(DWORD,LPCWSTR,HMODULE*);
2187 #define GetModuleHandleEx WINELIB_NAME_AW(GetModuleHandleEx)
2188 WINBASEAPI BOOL WINAPI GetNamedPipeClientProcessId(HANDLE,PULONG);
2189 WINBASEAPI BOOL WINAPI GetNamedPipeClientSessionId(HANDLE,PULONG);
2190 WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateA(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
2191 WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateW(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
2192 #define GetNamedPipeHandleState WINELIB_NAME_AW(GetNamedPipeHandleState)
2193 WINBASEAPI BOOL WINAPI GetNamedPipeInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
2194 WINBASEAPI BOOL WINAPI GetNamedPipeServerProcessId(HANDLE,PULONG);
2195 WINBASEAPI BOOL WINAPI GetNamedPipeServerSessionId(HANDLE,PULONG);
2196 WINBASEAPI VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
2197 WINBASEAPI PUMS_CONTEXT WINAPI GetNextUmsListItem(PUMS_CONTEXT);
2198 WINBASEAPI BOOL WINAPI GetNumaAvailableMemoryNode(UCHAR,PULONGLONG);
2199 WINBASEAPI BOOL WINAPI GetNumaAvailableMemoryNodeEx(USHORT,PULONGLONG);
2200 WINBASEAPI BOOL WINAPI GetNumaNodeProcessorMaskEx(USHORT,PGROUP_AFFINITY);
2201 WINBASEAPI BOOL WINAPI GetNumaProcessorNode(UCHAR,PUCHAR);
2202 WINBASEAPI BOOL WINAPI GetNumaProcessorNodeEx(PPROCESSOR_NUMBER,PUSHORT);
2203 WINBASEAPI BOOL WINAPI GetNumaProximityNode(ULONG,PUCHAR);
2204 WINBASEAPI BOOL WINAPI GetNumaProximityNodeEx(ULONG,PUSHORT);
2205 WINADVAPI BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
2206 WINADVAPI BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
2207 WINBASEAPI BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,BOOL);
2208 WINBASEAPI BOOL WINAPI GetOverlappedResultEx(HANDLE,OVERLAPPED*,DWORD*,DWORD,BOOL);
2209 WINBASEAPI DWORD WINAPI GetPriorityClass(HANDLE);
2210 WINADVAPI BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
2211 WINBASEAPI UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR);
2212 WINBASEAPI UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR);
2213 #define GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt)
2214 WINBASEAPI INT WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR);
2215 WINBASEAPI INT WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
2216 #define GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection)
2217 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR);
2218 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR);
2219 #define GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames)
2220 WINBASEAPI INT WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT,LPCSTR);
2221 WINBASEAPI INT WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT,LPCWSTR);
2222 #define GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString)
2223 WINBASEAPI BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
2224 WINBASEAPI BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
2225 #define GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct)
2226 WINBASEAPI FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR);
2227 WINBASEAPI BOOL WINAPI GetProcessAffinityMask(HANDLE,PDWORD_PTR,PDWORD_PTR);
2228 WINBASEAPI BOOL WINAPI GetLogicalProcessorInformation(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,PDWORD);
2229 WINBASEAPI BOOL WINAPI GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP,PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX,PDWORD);
2230 WINBASEAPI DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
2231 WINBASEAPI DWORD WINAPI GetProcessId(HANDLE);
2232 WINBASEAPI DWORD WINAPI GetProcessIdOfThread(HANDLE);
2233 WINBASEAPI BOOL WINAPI GetProcessIoCounters(HANDLE,PIO_COUNTERS);
2234 WINBASEAPI BOOL WINAPI GetProcessPriorityBoost(HANDLE,PBOOL);
2235 WINBASEAPI BOOL WINAPI GetProcessShutdownParameters(LPDWORD,LPDWORD);
2236 WINBASEAPI BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
2237 WINBASEAPI DWORD WINAPI GetProcessVersion(DWORD);
2238 WINBASEAPI BOOL WINAPI GetProcessWorkingSetSize(HANDLE,PSIZE_T,PSIZE_T);
2239 WINBASEAPI BOOL WINAPI GetProcessWorkingSetSizeEx(HANDLE,SIZE_T*,SIZE_T*,DWORD*);
2240 WINBASEAPI BOOL WINAPI GetProductInfo(DWORD,DWORD,DWORD,DWORD,PDWORD);
2241 WINBASEAPI UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT);
2242 WINBASEAPI UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT);
2243 #define GetProfileInt WINELIB_NAME_AW(GetProfileInt)
2244 WINBASEAPI INT WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD);
2245 WINBASEAPI INT WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD);
2246 #define GetProfileSection WINELIB_NAME_AW(GetProfileSection)
2247 WINBASEAPI INT WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT);
2248 WINBASEAPI INT WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT);
2249 #define GetProfileString WINELIB_NAME_AW(GetProfileString)
2250 WINBASEAPI BOOL WINAPI GetQueuedCompletionStatus(HANDLE,LPDWORD,PULONG_PTR,LPOVERLAPPED*,DWORD);
2251 WINBASEAPI BOOL WINAPI GetQueuedCompletionStatusEx(HANDLE,OVERLAPPED_ENTRY*,ULONG,ULONG*,DWORD,BOOL);
2252 WINADVAPI BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
2253 WINADVAPI BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL *,LPBOOL);
2254 WINADVAPI BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
2255 WINADVAPI DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
2256 WINADVAPI BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
2257 WINADVAPI BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL *,LPBOOL);
2258 WINADVAPI PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
2259 WINADVAPI DWORD WINAPI GetSidLengthRequired(BYTE);
2260 WINADVAPI PDWORD WINAPI GetSidSubAuthority(PSID,DWORD);
2261 WINADVAPI PUCHAR WINAPI GetSidSubAuthorityCount(PSID);
2262 WINBASEAPI DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD);
2263 WINBASEAPI DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
2264 #define GetShortPathName WINELIB_NAME_AW(GetShortPathName)
2265 WINBASEAPI VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA);
2266 WINBASEAPI VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW);
2267 #define GetStartupInfo WINELIB_NAME_AW(GetStartupInfo)
2268 WINBASEAPI HANDLE WINAPI GetStdHandle(DWORD);
2269 WINBASEAPI UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
2270 WINBASEAPI UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
2271 #define GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
2272 WINBASEAPI UINT WINAPI GetSystemFirmwareTable(DWORD,DWORD,PVOID,DWORD);
2273 WINBASEAPI VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
2274 WINBASEAPI BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
2275 WINBASEAPI BOOL WINAPI GetSystemRegistryQuota(PDWORD,PDWORD);
2276 WINBASEAPI VOID WINAPI GetSystemTime(LPSYSTEMTIME);
2277 WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
2278 WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME);
2279 WINBASEAPI VOID WINAPI GetSystemTimePreciseAsFileTime(LPFILETIME);
2280 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT);
2281 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT);
2282 #define GetSystemWindowsDirectory WINELIB_NAME_AW(GetSystemWindowsDirectory)
2283 WINBASEAPI UINT WINAPI GetSystemWow64Directory2A(LPSTR,UINT,WORD);
2284 WINBASEAPI UINT WINAPI GetSystemWow64Directory2W(LPWSTR,UINT,WORD);
2285 #define GetSystemWow64Directory2 WINELIB_NAME_AW(GetSystemWow64Directory2)
2286 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA(LPSTR,UINT);
2287 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW(LPWSTR,UINT);
2288 #define GetSystemWow64Directory WINELIB_NAME_AW(GetSystemWow64Directory)
2289 WINBASEAPI DWORD WINAPI GetTapeParameters(HANDLE,DWORD,LPDWORD,LPVOID);
2290 WINBASEAPI DWORD WINAPI GetTapePosition(HANDLE,DWORD,LPDWORD,LPDWORD,LPDWORD);
2291 WINBASEAPI DWORD WINAPI GetTapeStatus(HANDLE);
2292 WINBASEAPI UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR);
2293 WINBASEAPI UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
2294 #define GetTempFileName WINELIB_NAME_AW(GetTempFileName)
2295 WINBASEAPI DWORD WINAPI GetTempPathA(DWORD,LPSTR);
2296 WINBASEAPI DWORD WINAPI GetTempPathW(DWORD,LPWSTR);
2297 #define GetTempPath WINELIB_NAME_AW(GetTempPath)
2298 WINBASEAPI BOOL WINAPI GetThreadContext(HANDLE,CONTEXT *);
2299 WINBASEAPI DWORD WINAPI GetThreadErrorMode(void);
2300 WINBASEAPI DWORD WINAPI GetThreadId(HANDLE);
2301 WINBASEAPI BOOL WINAPI GetThreadIOPendingFlag(HANDLE,PBOOL);
2302 WINBASEAPI INT WINAPI GetThreadPriority(HANDLE);
2303 WINBASEAPI BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
2304 WINBASEAPI BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
2305 WINBASEAPI BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
2306 WINBASEAPI DWORD WINAPI GetTickCount(void);
2307 WINBASEAPI ULONGLONG WINAPI GetTickCount64(void);
2308 WINADVAPI BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,LPDWORD);
2309 WINBASEAPI BOOL WINAPI GetUmsCompletionListEvent(PUMS_COMPLETION_LIST, PHANDLE);
2310 WINADVAPI BOOL WINAPI GetUserNameA(LPSTR,LPDWORD);
2311 WINADVAPI BOOL WINAPI GetUserNameW(LPWSTR,LPDWORD);
2312 #define GetUserName WINELIB_NAME_AW(GetUserName)
2313 WINBASEAPI DWORD WINAPI GetVersion(void);
2314 WINBASEAPI BOOL WINAPI GetVersionExA(OSVERSIONINFOA*);
2315 WINBASEAPI BOOL WINAPI GetVersionExW(OSVERSIONINFOW*);
2316 #define GetVersionEx WINELIB_NAME_AW(GetVersionEx)
2317 WINBASEAPI BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
2318 WINBASEAPI BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
2319 #define GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation)
2320 WINBASEAPI BOOL WINAPI GetVolumeInformationByHandleW(HANDLE,WCHAR *,DWORD,DWORD *,DWORD *,DWORD *,WCHAR *,DWORD);
2321 WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointA(LPCSTR,LPSTR,DWORD);
2322 WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR,LPWSTR,DWORD);
2323 #define GetVolumeNameForVolumeMountPoint WINELIB_NAME_AW(GetVolumeNameForVolumeMountPoint)
2324 WINBASEAPI BOOL WINAPI GetVolumePathNameA(LPCSTR,LPSTR,DWORD);
2325 WINBASEAPI BOOL WINAPI GetVolumePathNameW(LPCWSTR,LPWSTR,DWORD);
2326 #define GetVolumePathName WINELIB_NAME_AW(GetVolumePathName)
2327 WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameA(LPCSTR,LPSTR,DWORD,PDWORD);
2328 WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR,LPWSTR,DWORD,PDWORD);
2329 #define GetVolumePathNamesForVolumeName WINELIB_NAME_AW(GetVolumePathNamesForVolumeName)
2330 WINADVAPI BOOL WINAPI GetWindowsAccountDomainSid(PSID,PSID,DWORD*);
2331 WINBASEAPI UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
2332 WINBASEAPI UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
2333 #define GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory)
2334 WINBASEAPI UINT WINAPI GetWriteWatch(DWORD,LPVOID,SIZE_T,LPVOID*,ULONG_PTR*,ULONG*);
2335 WINBASEAPI ATOM WINAPI GlobalAddAtomA(LPCSTR);
2336 WINBASEAPI ATOM WINAPI GlobalAddAtomW(LPCWSTR);
2337 #define GlobalAddAtom WINELIB_NAME_AW(GlobalAddAtom)
2338 WINBASEAPI HGLOBAL WINAPI GlobalAlloc(UINT,SIZE_T) __WINE_ALLOC_SIZE(2);
2339 WINBASEAPI SIZE_T WINAPI GlobalCompact(DWORD);
2340 WINBASEAPI ATOM WINAPI GlobalDeleteAtom(ATOM);
2341 WINBASEAPI ATOM WINAPI GlobalFindAtomA(LPCSTR);
2342 WINBASEAPI ATOM WINAPI GlobalFindAtomW(LPCWSTR);
2343 #define GlobalFindAtom WINELIB_NAME_AW(GlobalFindAtom)
2344 WINBASEAPI VOID WINAPI GlobalFix(HGLOBAL);
2345 WINBASEAPI UINT WINAPI GlobalFlags(HGLOBAL);
2346 WINBASEAPI HGLOBAL WINAPI GlobalFree(HGLOBAL);
2347 WINBASEAPI UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,INT);
2348 WINBASEAPI UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,INT);
2349 #define GlobalGetAtomName WINELIB_NAME_AW(GlobalGetAtomName)
2350 WINBASEAPI HGLOBAL WINAPI GlobalHandle(LPCVOID);
2351 WINBASEAPI LPVOID WINAPI GlobalLock(HGLOBAL);
2352 WINBASEAPI VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
2353 WINBASEAPI BOOL WINAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX);
2354 WINBASEAPI HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,SIZE_T,UINT) __WINE_ALLOC_SIZE(2);
2355 WINBASEAPI SIZE_T WINAPI GlobalSize(HGLOBAL);
2356 WINBASEAPI VOID WINAPI GlobalUnfix(HGLOBAL);
2357 WINBASEAPI BOOL WINAPI GlobalUnlock(HGLOBAL);
2358 WINBASEAPI BOOL WINAPI GlobalUnWire(HGLOBAL);
2359 WINBASEAPI LPVOID WINAPI GlobalWire(HGLOBAL);
2360 #define HasOverlappedIoCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING)
2361 WINBASEAPI LPVOID WINAPI HeapAlloc(HANDLE,DWORD,SIZE_T) __WINE_ALLOC_SIZE(3);
2362 WINBASEAPI SIZE_T WINAPI HeapCompact(HANDLE,DWORD);
2363 WINBASEAPI HANDLE WINAPI HeapCreate(DWORD,SIZE_T,SIZE_T);
2364 WINBASEAPI BOOL WINAPI HeapDestroy(HANDLE);
2365 WINBASEAPI BOOL WINAPI HeapFree(HANDLE,DWORD,LPVOID);
2366 WINBASEAPI BOOL WINAPI HeapLock(HANDLE);
2367 WINBASEAPI LPVOID WINAPI HeapReAlloc(HANDLE,DWORD,LPVOID,SIZE_T) __WINE_ALLOC_SIZE(4);
2368 WINBASEAPI BOOL WINAPI HeapQueryInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T,PSIZE_T);
2369 WINBASEAPI BOOL WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
2370 WINBASEAPI SIZE_T WINAPI HeapSize(HANDLE,DWORD,LPCVOID);
2371 WINBASEAPI BOOL WINAPI HeapUnlock(HANDLE);
2372 WINBASEAPI BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID);
2373 WINBASEAPI BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
2374 WINBASEAPI BOOL WINAPI InitAtomTable(DWORD);
2375 WINADVAPI BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD);
2376 WINBASEAPI VOID WINAPI InitializeConditionVariable(PCONDITION_VARIABLE);
2377 WINBASEAPI void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
2378 WINBASEAPI BOOL WINAPI InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION *,DWORD);
2379 WINBASEAPI BOOL WINAPI InitializeCriticalSectionEx(CRITICAL_SECTION *,DWORD,DWORD);
2380 WINBASEAPI BOOL WINAPI InitializeProcThreadAttributeList(struct _PROC_THREAD_ATTRIBUTE_LIST*,DWORD,DWORD,SIZE_T*);
2381 WINADVAPI BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
2382 WINADVAPI BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
2383 WINBASEAPI VOID WINAPI InitializeSListHead(PSLIST_HEADER);
2384 WINBASEAPI VOID WINAPI InitializeSRWLock(PSRWLOCK);
2385 WINBASEAPI BOOL WINAPI InitOnceBeginInitialize(PINIT_ONCE, DWORD, PBOOL, PVOID*);
2386 WINBASEAPI BOOL WINAPI InitOnceComplete(PINIT_ONCE, DWORD, PVOID);
2387 WINBASEAPI BOOL WINAPI InitOnceExecuteOnce(PINIT_ONCE,PINIT_ONCE_FN,PVOID,PVOID*);
2388 WINBASEAPI VOID WINAPI InitOnceInitialize(PINIT_ONCE);
2389 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER);
2390 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER);
2391 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY);
2392 WINBASEAPI BOOL WINAPI IsBadCodePtr(FARPROC);
2393 WINBASEAPI BOOL WINAPI IsBadHugeReadPtr(LPCVOID,UINT_PTR);
2394 WINBASEAPI BOOL WINAPI IsBadHugeWritePtr(LPVOID,UINT_PTR);
2395 WINBASEAPI BOOL WINAPI IsBadReadPtr(LPCVOID,UINT_PTR);
2396 WINBASEAPI BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT_PTR);
2397 WINBASEAPI BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT_PTR);
2398 #define IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr)
2399 WINBASEAPI BOOL WINAPI IsBadWritePtr(LPVOID,UINT_PTR);
2400 WINBASEAPI BOOL WINAPI IsDebuggerPresent(void);
2401 WINBASEAPI BOOL WINAPI IsSystemResumeAutomatic(void);
2402 WINADVAPI BOOL WINAPI IsTextUnicode(LPCVOID,INT,LPINT);
2403 WINADVAPI BOOL WINAPI IsTokenRestricted(HANDLE);
2404 WINADVAPI BOOL WINAPI IsValidAcl(PACL);
2405 WINADVAPI BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
2406 WINADVAPI BOOL WINAPI IsValidSid(PSID);
2407 WINADVAPI BOOL WINAPI IsWellKnownSid(PSID,WELL_KNOWN_SID_TYPE);
2408 WINBASEAPI BOOL WINAPI IsWow64Process(HANDLE,PBOOL);
2409 WINBASEAPI BOOL WINAPI IsWow64Process2(HANDLE,USHORT*,USHORT*);
2410 WINADVAPI BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
2411 WINADVAPI BOOL WINAPI ImpersonateNamedPipeClient(HANDLE);
2412 WINADVAPI BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
2413 WINBASEAPI BOOL WINAPI IsProcessInJob(HANDLE,HANDLE,PBOOL);
2414 WINBASEAPI BOOL WINAPI IsProcessorFeaturePresent(DWORD);
2415 WINBASEAPI void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
2416 WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR);
2417 WINBASEAPI HMODULE WINAPI LoadLibraryW(LPCWSTR);
2418 #define LoadLibrary WINELIB_NAME_AW(LoadLibrary)
2419 WINBASEAPI HMODULE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD);
2420 WINBASEAPI HMODULE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD);
2421 #define LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
2422 WINBASEAPI DWORD WINAPI LoadModule(LPCSTR,LPVOID);
2423 WINBASEAPI HMODULE WINAPI LoadPackagedLibrary(LPCWSTR,DWORD);
2424 WINBASEAPI HGLOBAL WINAPI LoadResource(HMODULE,HRSRC);
2425 WINBASEAPI HLOCAL WINAPI LocalAlloc(UINT,SIZE_T) __WINE_ALLOC_SIZE(2);
2426 WINBASEAPI SIZE_T WINAPI LocalCompact(UINT);
2427 WINBASEAPI UINT WINAPI LocalFlags(HLOCAL);
2428 WINBASEAPI HLOCAL WINAPI LocalFree(HLOCAL);
2429 WINBASEAPI HLOCAL WINAPI LocalHandle(LPCVOID);
2430 WINBASEAPI LPVOID WINAPI LocalLock(HLOCAL);
2431 WINBASEAPI HLOCAL WINAPI LocalReAlloc(HLOCAL,SIZE_T,UINT) __WINE_ALLOC_SIZE(2);
2432 WINBASEAPI SIZE_T WINAPI LocalShrink(HGLOBAL,UINT);
2433 WINBASEAPI SIZE_T WINAPI LocalSize(HLOCAL);
2434 WINBASEAPI BOOL WINAPI LocalUnlock(HLOCAL);
2435 WINBASEAPI LPVOID WINAPI LockResource(HGLOBAL);
2436 #define LockSegment(handle) GlobalFix((HANDLE)(handle))
2437 WINADVAPI BOOL WINAPI LookupAccountNameA(LPCSTR,LPCSTR,PSID,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE);
2438 WINADVAPI BOOL WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE);
2439 #define LookupAccountName WINELIB_NAME_AW(LookupAccountName)
2440 WINADVAPI BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE);
2441 WINADVAPI BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE);
2442 #define LookupAccountSid WINELIB_NAME_AW(LookupAccountSid)
2443 WINADVAPI BOOL WINAPI LookupAccountSidLocalA(PSID,LPSTR,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE);
2444 WINADVAPI BOOL WINAPI LookupAccountSidLocalW(PSID,LPWSTR,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE);
2445 #define LookupAccountSidLocal WINELIB_NAME_AW(LookupAccountSidLocal)
2446 WINBASEAPI BOOL WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
2447 WINBASEAPI BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
2448 WINBASEAPI BOOL WINAPI LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
2449 WINADVAPI BOOL WINAPI LogonUserA(LPCSTR,LPCSTR,LPCSTR,DWORD,DWORD,PHANDLE);
2450 WINADVAPI BOOL WINAPI LogonUserW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,PHANDLE);
2451 #define LogonUser WINELIB_NAME_AW(LogonUser)
2452 WINADVAPI BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR,LPCSTR,LPSTR,LPDWORD,LPDWORD);
2453 WINADVAPI BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,LPDWORD);
2454 #define LookupPrivilegeDisplayName WINELIB_NAME_AW(LookupPrivilegeDisplayName)
2455 WINADVAPI BOOL WINAPI LookupPrivilegeNameA(LPCSTR,PLUID,LPSTR,LPDWORD);
2456 WINADVAPI BOOL WINAPI LookupPrivilegeNameW(LPCWSTR,PLUID,LPWSTR,LPDWORD);
2457 #define LookupPrivilegeName WINELIB_NAME_AW(LookupPrivilegeName)
2458 WINADVAPI BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,PLUID);
2459 WINADVAPI BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,PLUID);
2460 #define LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue)
2461 WINADVAPI BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD,PACL,LPDWORD,PACL,LPDWORD,PSID,LPDWORD,PSID,LPDWORD);
2462 WINBASEAPI void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit);
2463 #define MakeProcInstance(proc,inst) (proc)
2464 WINADVAPI BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD);
2465 WINADVAPI VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING);
2466 WINBASEAPI HMODULE WINAPI MapHModuleSL(WORD);
2467 WINBASEAPI WORD WINAPI MapHModuleLS(HMODULE);
2468 WINBASEAPI BOOL WINAPI MapUserPhysicalPages(PVOID,ULONG_PTR,PULONG_PTR);
2469 WINBASEAPI LPVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,SIZE_T);
2470 WINBASEAPI LPVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,SIZE_T,LPVOID);
2471 WINBASEAPI BOOL WINAPI MoveFileA(LPCSTR,LPCSTR);
2472 WINBASEAPI BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR);
2473 #define MoveFile WINELIB_NAME_AW(MoveFile)
2474 WINBASEAPI BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD);
2475 WINBASEAPI BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD);
2476 #define MoveFileEx WINELIB_NAME_AW(MoveFileEx)
2477 WINBASEAPI BOOL WINAPI MoveFileTransactedA(const char*,const char*,LPPROGRESS_ROUTINE,void*,DWORD,HANDLE);
2478 WINBASEAPI BOOL WINAPI MoveFileTransactedW(const WCHAR*,const WCHAR*,LPPROGRESS_ROUTINE,void*,DWORD,HANDLE);
2479 #define MoveFileTransacted WINELIB_NAME_AW(MoveFiletransacted)
2480 WINBASEAPI BOOL WINAPI MoveFileWithProgressA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID,DWORD);
2481 WINBASEAPI BOOL WINAPI MoveFileWithProgressW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,DWORD);
2482 #define MoveFileWithProgress WINELIB_NAME_AW(MoveFileWithProgress)
2483 WINBASEAPI INT WINAPI MulDiv(INT,INT,INT);
2484 WINBASEAPI BOOL WINAPI NeedCurrentDirectoryForExePathA(LPCSTR);
2485 WINBASEAPI BOOL WINAPI NeedCurrentDirectoryForExePathW(LPCWSTR);
2486 #define NeedCurrentDirectoryForExePath WINELIB_NAME_AW(NeedCurrentDirectoryForExePath)
2487 WINADVAPI BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE);
2488 WINADVAPI BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR,LPVOID,BOOL);
2489 WINADVAPI BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,LPVOID,BOOL);
2490 #define ObjectCloseAuditAlarm WINELIB_NAME_AW(ObjectCloseAuditAlarm)
2491 WINADVAPI BOOL WINAPI ObjectDeleteAuditAlarmA(LPCSTR,LPVOID,BOOL);
2492 WINADVAPI BOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,LPVOID,BOOL);
2493 #define ObjectDeleteAuditAlarm WINELIB_NAME_AW(ObjectDeleteAuditAlarm)
2494 WINADVAPI BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,LPBOOL);
2495 WINADVAPI BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,LPBOOL);
2496 #define ObjectOpenAuditAlarm WINELIB_NAME_AW(ObjectOpenAuditAlarm)
2497 WINADVAPI BOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR,LPVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
2498 WINADVAPI BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,LPVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL);
2499 #define ObjectPrivilegeAuditAlarm WINELIB_NAME_AW(ObjectPrivilegeAuditAlarm)
2500 WINADVAPI HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR);
2501 WINADVAPI HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR);
2502 #define OpenBackupEventLog WINELIB_NAME_AW(OpenBackupEventLog)
2503 WINADVAPI DWORD WINAPI OpenEncryptedFileRawA(LPCSTR,ULONG,PVOID*);
2504 WINADVAPI DWORD WINAPI OpenEncryptedFileRawW(LPCWSTR,ULONG,PVOID*);
2505 #define OpenEncryptedFileRaw WINELIB_NAME_AW(OpenEncryptedFileRaw)
2506 WINBASEAPI HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
2507 WINBASEAPI HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
2508 #define OpenEvent WINELIB_NAME_AW(OpenEvent)
2509 WINADVAPI HANDLE WINAPI OpenEventLogA(LPCSTR,LPCSTR);
2510 WINADVAPI HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR);
2511 #define OpenEventLog WINELIB_NAME_AW(OpenEventLog)
2512 WINBASEAPI HFILE WINAPI OpenFile(LPCSTR,OFSTRUCT*,UINT);
2513 WINBASEAPI HANDLE WINAPI OpenFileMappingA(DWORD,BOOL,LPCSTR);
2514 WINBASEAPI HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
2515 #define OpenFileMapping WINELIB_NAME_AW(OpenFileMapping)
2516 WINBASEAPI HANDLE WINAPI OpenJobObjectA(DWORD,BOOL,LPCSTR);
2517 WINBASEAPI HANDLE WINAPI OpenJobObjectW(DWORD,BOOL,LPCWSTR);
2518 #define OpenJobObject WINELIB_NAME_AW(OpenJobObject)
2519 WINBASEAPI HANDLE WINAPI OpenMutexA(DWORD,BOOL,LPCSTR);
2520 WINBASEAPI HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
2521 #define OpenMutex WINELIB_NAME_AW(OpenMutex)
2522 WINBASEAPI HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD);
2523 WINADVAPI BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
2524 WINBASEAPI HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
2525 WINBASEAPI HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
2526 #define OpenSemaphore WINELIB_NAME_AW(OpenSemaphore)
2527 WINBASEAPI HANDLE WINAPI OpenThread(DWORD,BOOL,DWORD);
2528 WINADVAPI BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
2529 WINBASEAPI HANDLE WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR);
2530 WINBASEAPI HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
2531 #define OpenWaitableTimer WINELIB_NAME_AW(OpenWaitableTimer)
2532 WINBASEAPI VOID WINAPI OutputDebugStringA(LPCSTR);
2533 WINBASEAPI VOID WINAPI OutputDebugStringW(LPCWSTR);
2534 #define OutputDebugString WINELIB_NAME_AW(OutputDebugString)
2535 WINBASEAPI BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD);
2536 WINBASEAPI BOOL WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,ULONG_PTR,LPOVERLAPPED);
2537 WINBASEAPI DWORD WINAPI PrepareTape(HANDLE,DWORD,BOOL);
2538 WINBASEAPI BOOL WINAPI ProcessIdToSessionId(DWORD,DWORD*);
2539 WINADVAPI BOOL WINAPI PrivilegeCheck(HANDLE,PPRIVILEGE_SET,LPBOOL);
2540 WINADVAPI BOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR,LPCSTR,HANDLE,PPRIVILEGE_SET,BOOL);
2541 WINADVAPI BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL);
2542 #define PrivilegedServiceAuditAlarm WINELIB_NAME_AW(PrivilegedServiceAuditAlarm)
2543 WINBASEAPI BOOL WINAPI PulseEvent(HANDLE);
2544 WINBASEAPI BOOL WINAPI PurgeComm(HANDLE,DWORD);
2545 WINBASEAPI BOOL WINAPI QueryActCtxSettingsW(DWORD,HANDLE,const WCHAR*,const WCHAR*,WCHAR*,SIZE_T,SIZE_T*);
2546 WINBASEAPI BOOL WINAPI QueryActCtxW(DWORD,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T *);
2547 WINBASEAPI USHORT WINAPI QueryDepthSList(PSLIST_HEADER);
2548 WINBASEAPI DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
2549 WINBASEAPI DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
2550 #define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
2551 WINBASEAPI BOOL WINAPI QueryFullProcessImageNameA(HANDLE,DWORD,LPSTR,PDWORD);
2552 WINBASEAPI BOOL WINAPI QueryFullProcessImageNameW(HANDLE,DWORD,LPWSTR,PDWORD);
2553 #define QueryFullProcessImageName WINELIB_NAME_AW(QueryFullProcessImageName)
2554 WINBASEAPI BOOL WINAPI QueryInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,LPVOID,DWORD,DWORD*);
2555 WINBASEAPI BOOL WINAPI QueryMemoryResourceNotification(HANDLE,PBOOL);
2556 WINBASEAPI BOOL WINAPI QueryPerformanceCounter(LARGE_INTEGER*);
2557 WINBASEAPI BOOL WINAPI QueryPerformanceFrequency(LARGE_INTEGER*);
2558 WINBASEAPI BOOL WINAPI QueryThreadCycleTime(HANDLE,PULONG64);
2559 WINBASEAPI BOOL WINAPI QueryUmsThreadInformation(PUMS_CONTEXT,UMS_THREAD_INFO_CLASS,PVOID,ULONG,PULONG);
2560 WINBASEAPI DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
2561 WINBASEAPI BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
2562 WINBASEAPI void WINAPI RaiseException(DWORD,DWORD,DWORD,const ULONG_PTR *);
2563 WINADVAPI BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
2564 WINADVAPI BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
2565 #define ReadEventLog WINELIB_NAME_AW(ReadEventLog)
2566 WINBASEAPI BOOL WINAPI ReadDirectoryChangesW(HANDLE,LPVOID,DWORD,BOOL,DWORD,LPDWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2567 WINADVAPI DWORD WINAPI ReadEncryptedFileRaw(PFE_EXPORT_FUNC,PVOID,PVOID);
2568 WINBASEAPI BOOL WINAPI ReadFile(HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
2569 WINBASEAPI BOOL WINAPI ReadFileEx(HANDLE,LPVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2570 WINBASEAPI BOOL WINAPI ReadFileScatter(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
2571 WINBASEAPI BOOL WINAPI ReadProcessMemory(HANDLE,LPCVOID,LPVOID,SIZE_T,SIZE_T*);
2572 WINADVAPI HANDLE WINAPI RegisterEventSourceA(LPCSTR,LPCSTR);
2573 WINADVAPI HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR);
2574 #define RegisterEventSource WINELIB_NAME_AW(RegisterEventSource)
2575 WINBASEAPI BOOL WINAPI RegisterWaitForSingleObject(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2576 WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
2577 WINBASEAPI VOID WINAPI ReleaseActCtx(HANDLE);
2578 WINBASEAPI BOOL WINAPI ReleaseMutex(HANDLE);
2579 WINBASEAPI BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
2580 WINBASEAPI VOID WINAPI ReleaseSRWLockExclusive(PSRWLOCK);
2581 WINBASEAPI VOID WINAPI ReleaseSRWLockShared(PSRWLOCK);
2582 WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler(PVOID);
2583 WINBASEAPI BOOL WINAPI ReplaceFileA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPVOID,LPVOID);
2584 WINBASEAPI BOOL WINAPI ReplaceFileW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPVOID,LPVOID);
2585 #define ReplaceFile WINELIB_NAME_AW(ReplaceFile)
2586 WINBASEAPI BOOL WINAPI RemoveDirectoryA(LPCSTR);
2587 WINBASEAPI BOOL WINAPI RemoveDirectoryW(LPCWSTR);
2588 #define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
2589 WINADVAPI BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR *,LPVOID);
2590 WINADVAPI BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *,LPVOID);
2591 WINBASEAPI BOOL WINAPI RequestDeviceWakeup(HANDLE);
2592 WINBASEAPI BOOL WINAPI RequestWakeupLatency(LATENCY_TIME latency);
2593 #define ReportEvent WINELIB_NAME_AW(ReportEvent)
2594 WINBASEAPI BOOL WINAPI ResetEvent(HANDLE);
2595 WINBASEAPI UINT WINAPI ResetWriteWatch(LPVOID,SIZE_T);
2596 WINBASEAPI DWORD WINAPI ResumeThread(HANDLE);
2597 WINADVAPI BOOL WINAPI RevertToSelf(void);
2598 WINBASEAPI DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
2599 WINBASEAPI DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
2600 #define SearchPath WINELIB_NAME_AW(SearchPath)
2601 WINADVAPI BOOL WINAPI SetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
2602 WINBASEAPI BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD);
2603 WINBASEAPI BOOL WINAPI SetCommBreak(HANDLE);
2604 WINBASEAPI BOOL WINAPI SetCommMask(HANDLE,DWORD);
2605 WINBASEAPI BOOL WINAPI SetCommState(HANDLE,LPDCB);
2606 WINBASEAPI BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
2607 WINBASEAPI BOOL WINAPI SetComputerNameA(LPCSTR);
2608 WINBASEAPI BOOL WINAPI SetComputerNameW(LPCWSTR);
2609 #define SetComputerName WINELIB_NAME_AW(SetComputerName)
2610 WINBASEAPI BOOL WINAPI SetComputerNameExA(COMPUTER_NAME_FORMAT,LPCSTR);
2611 WINBASEAPI BOOL WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT,LPCWSTR);
2612 #define SetComputerNameEx WINELIB_NAME_AW(SetComputerNameEx)
2613 WINBASEAPI DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD);
2614 WINBASEAPI BOOL WINAPI SetCurrentDirectoryA(LPCSTR);
2615 WINBASEAPI BOOL WINAPI SetCurrentDirectoryW(LPCWSTR);
2616 #define SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory)
2617 WINBASEAPI BOOL WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
2618 WINBASEAPI BOOL WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
2619 #define SetDefaultCommConfig WINELIB_NAME_AW(SetDefaultCommConfig)
2620 WINBASEAPI BOOL WINAPI SetDllDirectoryA(LPCSTR);
2621 WINBASEAPI BOOL WINAPI SetDllDirectoryW(LPCWSTR);
2622 #define SetDllDirectory WINELIB_NAME_AW(SetDllDirectory)
2623 WINBASEAPI BOOL WINAPI SetEndOfFile(HANDLE);
2624 WINBASEAPI BOOL WINAPI SetEnvironmentStringsA(char *);
2625 WINBASEAPI BOOL WINAPI SetEnvironmentStringsW(WCHAR *);
2626 #define SetEnvironmentStrings WINELIB_NAME_AW(SetEnvironmentStrings)
2627 WINBASEAPI BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
2628 WINBASEAPI BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
2629 #define SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
2630 WINBASEAPI UINT WINAPI SetErrorMode(UINT);
2631 WINBASEAPI BOOL WINAPI SetEvent(HANDLE);
2632 WINBASEAPI VOID WINAPI SetFileApisToANSI(void);
2633 WINBASEAPI VOID WINAPI SetFileApisToOEM(void);
2634 WINBASEAPI BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
2635 WINBASEAPI BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
2636 #define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
2637 WINBASEAPI BOOL WINAPI SetFileCompletionNotificationModes(HANDLE,UCHAR);
2638 WINBASEAPI BOOL WINAPI SetFileInformationByHandle(HANDLE,FILE_INFO_BY_HANDLE_CLASS,LPVOID,DWORD);
2639 WINBASEAPI DWORD WINAPI SetFilePointer(HANDLE,LONG,LPLONG,DWORD);
2640 WINBASEAPI BOOL WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,LARGE_INTEGER*,DWORD);
2641 WINADVAPI BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
2642 WINADVAPI BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
2643 #define SetFileSecurity WINELIB_NAME_AW(SetFileSecurity)
2644 WINBASEAPI BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
2645 WINBASEAPI BOOL WINAPI SetFileValidData(HANDLE,LONGLONG);
2646 WINBASEAPI UINT WINAPI SetHandleCount(UINT);
2647 WINBASEAPI BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
2648 WINBASEAPI BOOL WINAPI SetInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,LPVOID,DWORD);
2649 WINADVAPI BOOL WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
2650 WINBASEAPI BOOL WINAPI SetLocalTime(const SYSTEMTIME*);
2651 WINBASEAPI BOOL WINAPI SetMailslotInfo(HANDLE,DWORD);
2652 WINBASEAPI BOOL WINAPI SetNamedPipeHandleState(HANDLE,LPDWORD,LPDWORD,LPDWORD);
2653 WINBASEAPI BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
2654 WINADVAPI BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,PGENERIC_MAPPING,HANDLE);
2655 WINADVAPI BOOL WINAPI SetPrivateObjectSecurityEx(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,ULONG,PGENERIC_MAPPING,HANDLE);
2656 WINBASEAPI BOOL WINAPI SetProcessAffinityMask(HANDLE,DWORD_PTR);
2657 WINBASEAPI BOOL WINAPI SetProcessPriorityBoost(HANDLE,BOOL);
2658 WINBASEAPI BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD);
2659 WINBASEAPI BOOL WINAPI SetProcessWorkingSetSize(HANDLE,SIZE_T,SIZE_T);
2660 WINBASEAPI BOOL WINAPI SetProcessWorkingSetSizeEx(HANDLE,SIZE_T,SIZE_T,DWORD);
2661 WINBASEAPI BOOL WINAPI SetSearchPathMode(DWORD);
2662 WINADVAPI BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
2663 WINADVAPI BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
2664 WINADVAPI BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
2665 WINADVAPI BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
2666 WINADVAPI BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
2667 WINBASEAPI BOOL WINAPI SetStdHandle(DWORD,HANDLE);
2668 WINBASEAPI BOOL WINAPI SetStdHandleEx(DWORD,HANDLE,HANDLE*);
2669 #define SetSwapAreaSize(w) (w)
2670 WINBASEAPI BOOL WINAPI SetSystemPowerState(BOOL,BOOL);
2671 WINBASEAPI BOOL WINAPI SetSystemTime(const SYSTEMTIME*);
2672 WINBASEAPI BOOL WINAPI SetSystemTimeAdjustment(DWORD,BOOL);
2673 WINBASEAPI DWORD WINAPI SetTapeParameters(HANDLE,DWORD,LPVOID);
2674 WINBASEAPI DWORD WINAPI SetTapePosition(HANDLE,DWORD,DWORD,DWORD,DWORD,BOOL);
2675 WINBASEAPI DWORD_PTR WINAPI SetThreadAffinityMask(HANDLE,DWORD_PTR);
2676 WINBASEAPI BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT *);
2677 WINBASEAPI BOOL WINAPI SetThreadErrorMode(DWORD,LPDWORD);
2678 WINBASEAPI DWORD WINAPI SetThreadExecutionState(EXECUTION_STATE);
2679 WINBASEAPI DWORD WINAPI SetThreadIdealProcessor(HANDLE,DWORD);
2680 WINBASEAPI BOOL WINAPI SetThreadPriority(HANDLE,INT);
2681 WINBASEAPI BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
2682 WINADVAPI BOOL WINAPI SetThreadToken(PHANDLE,HANDLE);
2683 WINBASEAPI HANDLE WINAPI SetTimerQueueTimer(HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,BOOL);
2684 WINADVAPI BOOL WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD);
2685 WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
2686 WINBASEAPI BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR);
2687 WINBASEAPI BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR);
2688 #define SetVolumeLabel WINELIB_NAME_AW(SetVolumeLabel)
2689 WINBASEAPI BOOL WINAPI SetVolumeMountPointA(LPCSTR,LPCSTR);
2690 WINBASEAPI BOOL WINAPI SetVolumeMountPointW(LPCWSTR,LPCWSTR);
2691 #define SetVolumeMountPoint WINELIB_NAME_AW(SetVolumeMountPoint)
2692 WINBASEAPI BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,BOOL);
2693 WINBASEAPI BOOL WINAPI SetWaitableTimerEx(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,REASON_CONTEXT*,ULONG);
2694 WINBASEAPI BOOL WINAPI SetUmsThreadInformation(PUMS_CONTEXT,UMS_THREAD_INFO_CLASS,void *,ULONG);
2695 WINBASEAPI BOOL WINAPI SetupComm(HANDLE,DWORD,DWORD);
2696 WINBASEAPI DWORD WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL);
2697 WINBASEAPI DWORD WINAPI SizeofResource(HMODULE,HRSRC);
2698 WINBASEAPI VOID WINAPI Sleep(DWORD);
2699 WINBASEAPI BOOL WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE,PCRITICAL_SECTION,DWORD);
2700 WINBASEAPI BOOL WINAPI SleepConditionVariableSRW(PCONDITION_VARIABLE,PSRWLOCK,DWORD,ULONG);
2701 WINBASEAPI DWORD WINAPI SleepEx(DWORD,BOOL);
2702 WINBASEAPI DWORD WINAPI SuspendThread(HANDLE);
2703 WINBASEAPI void WINAPI SwitchToFiber(LPVOID);
2704 WINBASEAPI BOOL WINAPI SwitchToThread(void);
2705 WINBASEAPI BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
2706 WINBASEAPI BOOL WINAPI TerminateJobObject(HANDLE,UINT);
2707 WINBASEAPI BOOL WINAPI TerminateProcess(HANDLE,DWORD);
2708 WINBASEAPI BOOL WINAPI TerminateThread(HANDLE,DWORD);
2709 WINBASEAPI DWORD WINAPI TlsAlloc(void);
2710 WINBASEAPI BOOL WINAPI TlsFree(DWORD);
2711 WINBASEAPI LPVOID WINAPI TlsGetValue(DWORD);
2712 WINBASEAPI BOOL WINAPI TlsSetValue(DWORD,LPVOID);
2713 WINBASEAPI BOOL WINAPI TransactNamedPipe(HANDLE,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
2714 WINBASEAPI BOOL WINAPI TransmitCommChar(HANDLE,CHAR);
2715 WINBASEAPI BOOLEAN WINAPI TryAcquireSRWLockExclusive(PSRWLOCK);
2716 WINBASEAPI BOOLEAN WINAPI TryAcquireSRWLockShared(PSRWLOCK);
2717 WINBASEAPI BOOL WINAPI TryEnterCriticalSection(CRITICAL_SECTION *lpCrit);
2718 WINBASEAPI LONG WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS);
2719 WINBASEAPI BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
2720 WINBASEAPI BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
2721 #define UnlockResource(handle) ((handle), 0)
2722 #define UnlockSegment(handle) GlobalUnfix((HANDLE)(handle))
2723 WINBASEAPI BOOL WINAPI UnmapViewOfFile(LPCVOID);
2724 WINBASEAPI BOOL WINAPI UmsThreadYield(void *);
2725 WINBASEAPI HRESULT WINAPI UnregisterApplicationRestart(void);
2726 WINBASEAPI BOOL WINAPI UnregisterWait(HANDLE);
2727 WINBASEAPI BOOL WINAPI UnregisterWaitEx(HANDLE,HANDLE);
2728 WINBASEAPI BOOL WINAPI UpdateProcThreadAttribute(struct _PROC_THREAD_ATTRIBUTE_LIST*,DWORD,DWORD_PTR,void*,SIZE_T,void*,SIZE_T*);
2729 WINBASEAPI BOOL WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,LPVOID,DWORD);
2730 WINBASEAPI BOOL WINAPI UpdateResourceW(HANDLE,LPCWSTR,LPCWSTR,WORD,LPVOID,DWORD);
2731 #define UpdateResource WINELIB_NAME_AW(UpdateResource)
2732 WINBASEAPI BOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA,DWORD,DWORDLONG);
2733 WINBASEAPI BOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDLONG);
2734 #define VerifyVersionInfo WINELIB_NAME_AW(VerifyVersionInfo)
2735 WINBASEAPI LPVOID WINAPI VirtualAlloc(LPVOID,SIZE_T,DWORD,DWORD);
2736 WINBASEAPI LPVOID WINAPI VirtualAllocEx(HANDLE,LPVOID,SIZE_T,DWORD,DWORD);
2737 WINBASEAPI LPVOID WINAPI VirtualAllocExNuma(HANDLE,void*,SIZE_T,DWORD,DWORD,DWORD);
2738 WINBASEAPI BOOL WINAPI VirtualFree(LPVOID,SIZE_T,DWORD);
2739 WINBASEAPI BOOL WINAPI VirtualFreeEx(HANDLE,LPVOID,SIZE_T,DWORD);
2740 WINBASEAPI BOOL WINAPI VirtualLock(LPVOID,SIZE_T);
2741 WINBASEAPI BOOL WINAPI VirtualProtect(LPVOID,SIZE_T,DWORD,LPDWORD);
2742 WINBASEAPI BOOL WINAPI VirtualProtectEx(HANDLE,LPVOID,SIZE_T,DWORD,LPDWORD);
2743 WINBASEAPI SIZE_T WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
2744 WINBASEAPI SIZE_T WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,SIZE_T);
2745 WINBASEAPI BOOL WINAPI VirtualUnlock(LPVOID,SIZE_T);
2746 WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId(void);
2747 WINBASEAPI BOOL WINAPI WaitCommEvent(HANDLE,LPDWORD,LPOVERLAPPED);
2748 WINBASEAPI BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
2749 WINBASEAPI DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,BOOL,DWORD);
2750 WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
2751 WINBASEAPI DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
2752 WINBASEAPI DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
2753 WINBASEAPI BOOL WINAPI WaitNamedPipeA(LPCSTR,DWORD);
2754 WINBASEAPI BOOL WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
2755 #define WaitNamedPipe WINELIB_NAME_AW(WaitNamedPipe)
2756 WINBASEAPI VOID WINAPI WakeAllConditionVariable(PCONDITION_VARIABLE);
2757 WINBASEAPI VOID WINAPI WakeConditionVariable(PCONDITION_VARIABLE);
2758 WINBASEAPI UINT WINAPI WinExec(LPCSTR,UINT);
2759 WINBASEAPI BOOL WINAPI Wow64DisableWow64FsRedirection(PVOID*);
2760 WINBASEAPI BOOLEAN WINAPI Wow64EnableWow64FsRedirection(BOOLEAN);
2761 WINBASEAPI BOOL WINAPI Wow64GetThreadContext(HANDLE, WOW64_CONTEXT *);
2762 WINBASEAPI BOOL WINAPI Wow64RevertWow64FsRedirection(PVOID);
2763 WINBASEAPI BOOL WINAPI Wow64SetThreadContext(HANDLE, const WOW64_CONTEXT *);
2764 WINADVAPI DWORD WINAPI WriteEncryptedFileRaw(PFE_IMPORT_FUNC,PVOID,PVOID);
2765 WINBASEAPI BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
2766 WINBASEAPI BOOL WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
2767 WINBASEAPI BOOL WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
2768 WINBASEAPI BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
2769 WINBASEAPI BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
2770 #define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
2771 WINBASEAPI BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
2772 WINBASEAPI BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
2773 #define WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString)
2774 WINBASEAPI BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
2775 WINBASEAPI BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
2776 #define WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct)
2777 WINBASEAPI BOOL WINAPI WriteProcessMemory(HANDLE,LPVOID,LPCVOID,SIZE_T,SIZE_T*);
2778 WINBASEAPI BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR);
2779 WINBASEAPI BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR);
2780 #define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
2781 WINBASEAPI BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR);
2782 WINBASEAPI BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR);
2783 #define WriteProfileString WINELIB_NAME_AW(WriteProfileString)
2784 WINBASEAPI DWORD WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
2785 #define Yield()
2786 WINBASEAPI BOOL WINAPI ZombifyActCtx(HANDLE);
2788 WINBASEAPI INT WINAPI lstrcmpA(LPCSTR,LPCSTR);
2789 WINBASEAPI INT WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
2790 WINBASEAPI INT WINAPI lstrcmpiA(LPCSTR,LPCSTR);
2791 WINBASEAPI INT WINAPI lstrcmpiW(LPCWSTR,LPCWSTR);
2793 #if !defined(__WINESRC__) || defined(WINE_NO_INLINE_STRING)
2795 WINBASEAPI LPSTR WINAPI lstrcatA(LPSTR,LPCSTR);
2796 WINBASEAPI LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR);
2797 WINBASEAPI LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR);
2798 WINBASEAPI LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR);
2799 WINBASEAPI LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,INT);
2800 WINBASEAPI LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,INT);
2801 WINBASEAPI INT WINAPI lstrlenA(LPCSTR);
2802 WINBASEAPI INT WINAPI lstrlenW(LPCWSTR);
2804 #else
2806 /* string functions without the exception handler */
2808 static inline LPWSTR WINAPI lstrcpynW( LPWSTR dst, LPCWSTR src, INT n )
2810 LPWSTR d = dst;
2811 LPCWSTR s = src;
2812 UINT count = n;
2814 while ((count > 1) && *s)
2816 count--;
2817 *d++ = *s++;
2819 if (count) *d = 0;
2820 return dst;
2823 static inline LPSTR WINAPI lstrcpynA( LPSTR dst, LPCSTR src, INT n )
2825 LPSTR d = dst;
2826 LPCSTR s = src;
2827 UINT count = n;
2829 while ((count > 1) && *s)
2831 count--;
2832 *d++ = *s++;
2834 if (count) *d = 0;
2835 return dst;
2838 static inline INT WINAPI lstrlenW( LPCWSTR str )
2840 const WCHAR *s = str;
2841 while (*s) s++;
2842 return s - str;
2845 static inline INT WINAPI lstrlenA( LPCSTR str )
2847 return strlen( str );
2850 static inline LPWSTR WINAPI lstrcpyW( LPWSTR dst, LPCWSTR src )
2852 WCHAR *p = dst;
2853 while ((*p++ = *src++));
2854 return dst;
2857 static inline LPSTR WINAPI lstrcpyA( LPSTR dst, LPCSTR src )
2859 return strcpy( dst, src );
2862 static inline LPWSTR WINAPI lstrcatW( LPWSTR dst, LPCWSTR src )
2864 WCHAR *p = dst;
2865 while (*p) p++;
2866 while ((*p++ = *src++));
2867 return dst;
2870 static inline LPSTR WINAPI lstrcatA( LPSTR dst, LPCSTR src )
2872 return strcat( dst, src );
2875 /* strncpy doesn't do what you think, don't use it */
2876 #undef strncpy
2877 #define strncpy(d,s,n) error do_not_use_strncpy_use_lstrcpynA_or_memcpy_instead
2879 #endif /* !defined(__WINESRC__) || defined(WINE_NO_INLINE_STRING) */
2881 #define lstrcat WINELIB_NAME_AW(lstrcat)
2882 #define lstrcmp WINELIB_NAME_AW(lstrcmp)
2883 #define lstrcmpi WINELIB_NAME_AW(lstrcmpi)
2884 #define lstrcpy WINELIB_NAME_AW(lstrcpy)
2885 #define lstrcpyn WINELIB_NAME_AW(lstrcpyn)
2886 #define lstrlen WINELIB_NAME_AW(lstrlen)
2888 WINBASEAPI LONG WINAPI _hread(HFILE,LPVOID,LONG);
2889 WINBASEAPI LONG WINAPI _hwrite(HFILE,LPCSTR,LONG);
2890 WINBASEAPI HFILE WINAPI _lcreat(LPCSTR,INT);
2891 WINBASEAPI HFILE WINAPI _lclose(HFILE);
2892 WINBASEAPI LONG WINAPI _llseek(HFILE,LONG,INT);
2893 WINBASEAPI HFILE WINAPI _lopen(LPCSTR,INT);
2894 WINBASEAPI UINT WINAPI _lread(HFILE,LPVOID,UINT);
2895 WINBASEAPI UINT WINAPI _lwrite(HFILE,LPCSTR,UINT);
2897 /* compatibility macros */
2898 #define FillMemory RtlFillMemory
2899 #define MoveMemory RtlMoveMemory
2900 #define ZeroMemory RtlZeroMemory
2901 #define CopyMemory RtlCopyMemory
2902 #define SecureZeroMemory RtlSecureZeroMemory
2904 /* Wine internal functions */
2906 extern char * CDECL wine_get_unix_file_name( LPCWSTR dos );
2907 extern WCHAR * CDECL wine_get_dos_file_name( LPCSTR str );
2910 /* Interlocked functions */
2912 #ifdef _MSC_VER
2914 #pragma intrinsic(_InterlockedCompareExchange)
2915 #pragma intrinsic(_InterlockedCompareExchange64)
2916 #pragma intrinsic(_InterlockedExchange)
2917 #pragma intrinsic(_InterlockedExchangeAdd)
2918 #pragma intrinsic(_InterlockedIncrement)
2919 #pragma intrinsic(_InterlockedDecrement)
2921 long _InterlockedCompareExchange(long volatile*,long,long);
2922 long long _InterlockedCompareExchange64(long long volatile*,long long,long long);
2923 long _InterlockedDecrement(long volatile*);
2924 long _InterlockedExchange(long volatile*,long);
2925 long _InterlockedExchangeAdd(long volatile*,long);
2926 long _InterlockedIncrement(long volatile*);
2928 static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare )
2930 return _InterlockedCompareExchange( (long volatile *)dest, xchg, compare );
2933 static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare )
2935 return _InterlockedCompareExchange64( (long long volatile *)dest, compare, xchg );
2938 static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val )
2940 return _InterlockedExchange( (long volatile *)dest, val );
2943 static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr )
2945 return _InterlockedExchangeAdd( (long volatile *)dest, incr );
2948 static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest )
2950 return _InterlockedIncrement( (long volatile *)dest );
2953 static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest )
2955 return _InterlockedDecrement( (long volatile *)dest );
2958 #ifndef __i386__
2960 #pragma intrinsic(_InterlockedCompareExchangePointer)
2961 #pragma intrinsic(_InterlockedExchangePointer)
2963 #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
2964 #define InterlockedExchangePointer _InterlockedExchangePointer
2966 void *InterlockedCompareExchangePointer(void *volatile*,void*,void*);
2967 void *InterlockedExchangePointer(void *volatile*,void*);
2969 #else
2971 static FORCEINLINE void *WINAPI InterlockedCompareExchangePointer( void *volatile *dest, void *xchg, void *compare )
2973 return (void *)_InterlockedCompareExchange( (long volatile*)dest, (long)xchg, (long)compare );
2976 static FORCEINLINE void *WINAPI InterlockedExchangePointer( void *volatile *dest, void *val )
2978 return (void *)_InterlockedExchange( (long volatile*)dest, (long)val );
2981 #endif
2983 #elif defined(__GNUC__)
2985 static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare )
2987 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
2988 return __sync_val_compare_and_swap( dest, compare, xchg );
2989 #else
2990 LONG ret;
2991 __asm__ __volatile__( "lock; cmpxchgl %2,(%1)"
2992 : "=a" (ret) : "r" (dest), "r" (xchg), "0" (compare) : "memory" );
2993 return ret;
2994 #endif
2997 static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val )
2999 LONG ret;
3000 #if defined(__i386__) || defined(__x86_64__)
3001 __asm__ __volatile__( "lock; xchgl %0,(%1)"
3002 : "=r" (ret) :"r" (dest), "0" (val) : "memory" );
3003 #else
3004 do ret = *dest; while (!__sync_bool_compare_and_swap( dest, ret, val ));
3005 #endif
3006 return ret;
3009 static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr )
3011 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
3012 return __sync_fetch_and_add( dest, incr );
3013 #else
3014 LONG ret;
3015 __asm__ __volatile__( "lock; xaddl %0,(%1)"
3016 : "=r" (ret) : "r" (dest), "0" (incr) : "memory" );
3017 return ret;
3018 #endif
3021 static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest )
3023 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
3024 return __sync_add_and_fetch( dest, 1 );
3025 #else
3026 return InterlockedExchangeAdd( dest, 1 ) + 1;
3027 #endif
3030 static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest )
3032 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
3033 return __sync_add_and_fetch( dest, -1 );
3034 #else
3035 return InterlockedExchangeAdd( dest, -1 ) - 1;
3036 #endif
3039 #ifdef _WIN64
3041 static FORCEINLINE PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare )
3043 return __sync_val_compare_and_swap( dest, compare, xchg );
3046 static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare )
3048 return __sync_val_compare_and_swap( dest, compare, xchg );
3051 static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVOID val )
3053 PVOID ret;
3054 #ifdef __x86_64__
3055 __asm__ __volatile__( "lock; xchgq %0,(%1)" : "=r" (ret) :"r" (dest), "0" (val) : "memory" );
3056 #else
3057 do ret = *dest; while (!__sync_bool_compare_and_swap( dest, ret, val ));
3058 #endif
3059 return ret;
3062 #else
3064 static FORCEINLINE PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare )
3066 return (PVOID)InterlockedCompareExchange( (LONG volatile*)dest, (LONG)xchg, (LONG)compare );
3069 static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVOID val )
3071 return (PVOID)InterlockedExchange( (LONG volatile*)dest, (LONG)val );
3074 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
3075 static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare )
3077 return __sync_val_compare_and_swap( dest, compare, xchg );
3079 #else
3080 WINBASEAPI LONGLONG WINAPI InterlockedCompareExchange64(LONGLONG volatile*,LONGLONG,LONGLONG);
3081 #endif
3083 #endif
3085 #endif /* __GNUC__ */
3087 #ifdef __WINESRC__
3089 static FORCEINLINE HANDLE WINAPI GetCurrentProcess(void)
3091 return (HANDLE)~(ULONG_PTR)0;
3094 static FORCEINLINE DWORD WINAPI GetCurrentProcessId(void)
3096 return HandleToULong( ((HANDLE *)NtCurrentTeb())[8] );
3099 static FORCEINLINE HANDLE WINAPI GetCurrentThread(void)
3101 return (HANDLE)~(ULONG_PTR)1;
3104 static FORCEINLINE DWORD WINAPI GetCurrentThreadId(void)
3106 return HandleToULong( ((HANDLE *)NtCurrentTeb())[9] );
3109 static FORCEINLINE DWORD WINAPI GetLastError(void)
3111 return *(DWORD *)((void **)NtCurrentTeb() + 13);
3114 static FORCEINLINE HANDLE WINAPI GetProcessHeap(void)
3116 return ((HANDLE **)NtCurrentTeb())[12][6];
3119 static FORCEINLINE void WINAPI SetLastError( DWORD err )
3121 *(DWORD *)((void **)NtCurrentTeb() + 13) = err;
3124 #else /* __WINESRC__ */
3126 WINBASEAPI HANDLE WINAPI GetCurrentProcess(void);
3127 WINBASEAPI DWORD WINAPI GetCurrentProcessId(void);
3128 WINBASEAPI HANDLE WINAPI GetCurrentThread(void);
3129 WINBASEAPI DWORD WINAPI GetCurrentThreadId(void);
3130 WINBASEAPI DWORD WINAPI GetLastError(void);
3131 WINBASEAPI HANDLE WINAPI GetProcessHeap(void);
3132 WINBASEAPI VOID WINAPI SetLastError(DWORD);
3134 #endif /* __WINESRC__ */
3136 static FORCEINLINE HANDLE WINAPI GetCurrentProcessToken(void)
3138 return (HANDLE)~(ULONG_PTR)3;
3141 static FORCEINLINE HANDLE WINAPI GetCurrentThreadToken(void)
3143 return (HANDLE)~(ULONG_PTR)4;
3146 static FORCEINLINE HANDLE WINAPI GetCurrentThreadEffectiveToken(void)
3148 return (HANDLE)~(ULONG_PTR)5;
3151 /* WinMain(entry point) must be declared in winbase.h. */
3152 /* If this is not declared, we cannot compile many sources written with C++. */
3153 int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
3154 int WINAPI wWinMain(HINSTANCE,HINSTANCE,LPWSTR,int);
3156 #ifdef __WINESRC__
3157 /* shouldn't be here, but is nice for type checking */
3158 BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved ) DECLSPEC_HIDDEN;
3159 #endif
3161 #ifdef __cplusplus
3163 #endif
3165 #endif /* __WINE_WINBASE_H */