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