i386-gen: preserve fp control word in gen_cvt_ftoi
[tinycc.git] / win32 / include / winapi / winbase.h
blob4a38006ef5b58e0cf519dfb2fa1f407ea2a8f046
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _WINBASE_
7 #define _WINBASE_
9 #define WINADVAPI DECLSPEC_IMPORT
10 #define WINBASEAPI DECLSPEC_IMPORT
11 #define ZAWPROXYAPI DECLSPEC_IMPORT
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
17 #define DefineHandleTable(w) ((w),TRUE)
18 #define LimitEmsPages(dw)
19 #define SetSwapAreaSize(w) (w)
20 #define LockSegment(w) GlobalFix((HANDLE)(w))
21 #define UnlockSegment(w) GlobalUnfix((HANDLE)(w))
22 #define GetCurrentTime() GetTickCount()
24 #define Yield()
26 #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
27 #define INVALID_FILE_SIZE ((DWORD)0xffffffff)
28 #define INVALID_SET_FILE_POINTER ((DWORD)-1)
29 #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
31 #define FILE_BEGIN 0
32 #define FILE_CURRENT 1
33 #define FILE_END 2
35 #define TIME_ZONE_ID_INVALID ((DWORD)0xffffffff)
37 #define WAIT_FAILED ((DWORD)0xffffffff)
38 #define WAIT_OBJECT_0 ((STATUS_WAIT_0) + 0)
39 #define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0) + 0)
40 #define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0) + 0)
41 #define WAIT_IO_COMPLETION STATUS_USER_APC
42 #define STILL_ACTIVE STATUS_PENDING
43 #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
44 #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
45 #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
46 #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
47 #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
48 #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
49 #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
50 #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
51 #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
52 #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
53 #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
54 #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
55 #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
56 #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
57 #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
58 #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
59 #define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
60 #define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
61 #define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
62 #define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
63 #define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
64 #define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
65 #define EXCEPTION_POSSIBLE_DEADLOCK STATUS_POSSIBLE_DEADLOCK
66 #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
67 #define MoveMemory RtlMoveMemory
68 #define CopyMemory RtlCopyMemory
69 #define FillMemory RtlFillMemory
70 #define ZeroMemory RtlZeroMemory
71 #define SecureZeroMemory RtlSecureZeroMemory
73 #define FILE_FLAG_WRITE_THROUGH 0x80000000
74 #define FILE_FLAG_OVERLAPPED 0x40000000
75 #define FILE_FLAG_NO_BUFFERING 0x20000000
76 #define FILE_FLAG_RANDOM_ACCESS 0x10000000
77 #define FILE_FLAG_SEQUENTIAL_SCAN 0x8000000
78 #define FILE_FLAG_DELETE_ON_CLOSE 0x4000000
79 #define FILE_FLAG_BACKUP_SEMANTICS 0x2000000
80 #define FILE_FLAG_POSIX_SEMANTICS 0x1000000
81 #define FILE_FLAG_OPEN_REPARSE_POINT 0x200000
82 #define FILE_FLAG_OPEN_NO_RECALL 0x100000
83 #define FILE_FLAG_FIRST_PIPE_INSTANCE 0x80000
85 #define CREATE_NEW 1
86 #define CREATE_ALWAYS 2
87 #define OPEN_EXISTING 3
88 #define OPEN_ALWAYS 4
89 #define TRUNCATE_EXISTING 5
91 #define PROGRESS_CONTINUE 0
92 #define PROGRESS_CANCEL 1
93 #define PROGRESS_STOP 2
94 #define PROGRESS_QUIET 3
96 #define CALLBACK_CHUNK_FINISHED 0x0
97 #define CALLBACK_STREAM_SWITCH 0x1
99 #define COPY_FILE_FAIL_IF_EXISTS 0x1
100 #define COPY_FILE_RESTARTABLE 0x2
101 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x4
102 #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x8
104 #define REPLACEFILE_WRITE_THROUGH 0x1
105 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x2
107 #define PIPE_ACCESS_INBOUND 0x1
108 #define PIPE_ACCESS_OUTBOUND 0x2
109 #define PIPE_ACCESS_DUPLEX 0x3
111 #define PIPE_CLIENT_END 0x0
112 #define PIPE_SERVER_END 0x1
114 #define PIPE_WAIT 0x0
115 #define PIPE_NOWAIT 0x1
116 #define PIPE_READMODE_BYTE 0x0
117 #define PIPE_READMODE_MESSAGE 0x2
118 #define PIPE_TYPE_BYTE 0x0
119 #define PIPE_TYPE_MESSAGE 0x4
121 #define PIPE_UNLIMITED_INSTANCES 255
123 #define SECURITY_ANONYMOUS (SecurityAnonymous << 16)
124 #define SECURITY_IDENTIFICATION (SecurityIdentification << 16)
125 #define SECURITY_IMPERSONATION (SecurityImpersonation << 16)
126 #define SECURITY_DELEGATION (SecurityDelegation << 16)
128 #define SECURITY_CONTEXT_TRACKING 0x40000
129 #define SECURITY_EFFECTIVE_ONLY 0x80000
131 #define SECURITY_SQOS_PRESENT 0x100000
132 #define SECURITY_VALID_SQOS_FLAGS 0x1f0000
134 typedef struct _OVERLAPPED {
135 ULONG_PTR Internal;
136 ULONG_PTR InternalHigh;
137 union {
138 struct {
139 DWORD Offset;
140 DWORD OffsetHigh;
142 PVOID Pointer;
144 HANDLE hEvent;
145 } OVERLAPPED,*LPOVERLAPPED;
147 typedef struct _SECURITY_ATTRIBUTES {
148 DWORD nLength;
149 LPVOID lpSecurityDescriptor;
150 WINBOOL bInheritHandle;
151 } SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
153 typedef struct _PROCESS_INFORMATION {
154 HANDLE hProcess;
155 HANDLE hThread;
156 DWORD dwProcessId;
157 DWORD dwThreadId;
158 } PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
160 #ifndef _FILETIME_
161 #define _FILETIME_
162 typedef struct _FILETIME {
163 DWORD dwLowDateTime;
164 DWORD dwHighDateTime;
165 } FILETIME,*PFILETIME,*LPFILETIME;
166 #endif
168 typedef struct _SYSTEMTIME {
169 WORD wYear;
170 WORD wMonth;
171 WORD wDayOfWeek;
172 WORD wDay;
173 WORD wHour;
174 WORD wMinute;
175 WORD wSecond;
176 WORD wMilliseconds;
177 } SYSTEMTIME,*PSYSTEMTIME,*LPSYSTEMTIME;
179 typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter);
180 typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
181 typedef VOID (WINAPI *PFIBER_START_ROUTINE)(LPVOID lpFiberParameter);
182 typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
184 typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
185 typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
186 typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
187 typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
188 typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
189 typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
191 WINBASEAPI PVOID WINAPI EncodePointer(PVOID Ptr);
192 WINBASEAPI PVOID WINAPI DecodePointer(PVOID Ptr);
193 WINBASEAPI PVOID WINAPI EncodeSystemPointer(PVOID Ptr);
194 WINBASEAPI PVOID WINAPI DecodeSystemPointer(PVOID Ptr);
196 #ifdef I_X86_
197 typedef PLDT_ENTRY LPLDT_ENTRY;
198 #else
199 typedef LPVOID LPLDT_ENTRY;
200 #endif
202 #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
203 #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
205 #define SP_SERIALCOMM ((DWORD)0x1)
207 #define PST_UNSPECIFIED ((DWORD)0x0)
208 #define PST_RS232 ((DWORD)0x1)
209 #define PST_PARALLELPORT ((DWORD)0x2)
210 #define PST_RS422 ((DWORD)0x3)
211 #define PST_RS423 ((DWORD)0x4)
212 #define PST_RS449 ((DWORD)0x5)
213 #define PST_MODEM ((DWORD)0x6)
214 #define PST_FAX ((DWORD)0x21)
215 #define PST_SCANNER ((DWORD)0x22)
216 #define PST_NETWORK_BRIDGE ((DWORD)0x100)
217 #define PST_LAT ((DWORD)0x101)
218 #define PST_TCPIP_TELNET ((DWORD)0x102)
219 #define PST_X25 ((DWORD)0x103)
221 #define PCF_DTRDSR ((DWORD)0x1)
222 #define PCF_RTSCTS ((DWORD)0x2)
223 #define PCF_RLSD ((DWORD)0x4)
224 #define PCF_PARITY_CHECK ((DWORD)0x8)
225 #define PCF_XONXOFF ((DWORD)0x10)
226 #define PCF_SETXCHAR ((DWORD)0x20)
227 #define PCF_TOTALTIMEOUTS ((DWORD)0x40)
228 #define PCF_INTTIMEOUTS ((DWORD)0x80)
229 #define PCF_SPECIALCHARS ((DWORD)0x100)
230 #define PCF_16BITMODE ((DWORD)0x200)
232 #define SP_PARITY ((DWORD)0x1)
233 #define SP_BAUD ((DWORD)0x2)
234 #define SP_DATABITS ((DWORD)0x4)
235 #define SP_STOPBITS ((DWORD)0x8)
236 #define SP_HANDSHAKING ((DWORD)0x10)
237 #define SP_PARITY_CHECK ((DWORD)0x20)
238 #define SP_RLSD ((DWORD)0x40)
240 #define BAUD_075 ((DWORD)0x1)
241 #define BAUD_110 ((DWORD)0x2)
242 #define BAUD_134_5 ((DWORD)0x4)
243 #define BAUD_150 ((DWORD)0x8)
244 #define BAUD_300 ((DWORD)0x10)
245 #define BAUD_600 ((DWORD)0x20)
246 #define BAUD_1200 ((DWORD)0x40)
247 #define BAUD_1800 ((DWORD)0x80)
248 #define BAUD_2400 ((DWORD)0x100)
249 #define BAUD_4800 ((DWORD)0x200)
250 #define BAUD_7200 ((DWORD)0x400)
251 #define BAUD_9600 ((DWORD)0x800)
252 #define BAUD_14400 ((DWORD)0x1000)
253 #define BAUD_19200 ((DWORD)0x2000)
254 #define BAUD_38400 ((DWORD)0x4000)
255 #define BAUD_56K ((DWORD)0x8000)
256 #define BAUD_128K ((DWORD)0x10000)
257 #define BAUD_115200 ((DWORD)0x20000)
258 #define BAUD_57600 ((DWORD)0x40000)
259 #define BAUD_USER ((DWORD)0x10000000)
261 #define DATABITS_5 ((WORD)0x1)
262 #define DATABITS_6 ((WORD)0x2)
263 #define DATABITS_7 ((WORD)0x4)
264 #define DATABITS_8 ((WORD)0x8)
265 #define DATABITS_16 ((WORD)0x10)
266 #define DATABITS_16X ((WORD)0x20)
268 #define STOPBITS_10 ((WORD)0x1)
269 #define STOPBITS_15 ((WORD)0x2)
270 #define STOPBITS_20 ((WORD)0x4)
271 #define PARITY_NONE ((WORD)0x100)
272 #define PARITY_ODD ((WORD)0x200)
273 #define PARITY_EVEN ((WORD)0x400)
274 #define PARITY_MARK ((WORD)0x800)
275 #define PARITY_SPACE ((WORD)0x1000)
277 typedef struct _COMMPROP {
278 WORD wPacketLength;
279 WORD wPacketVersion;
280 DWORD dwServiceMask;
281 DWORD dwReserved1;
282 DWORD dwMaxTxQueue;
283 DWORD dwMaxRxQueue;
284 DWORD dwMaxBaud;
285 DWORD dwProvSubType;
286 DWORD dwProvCapabilities;
287 DWORD dwSettableParams;
288 DWORD dwSettableBaud;
289 WORD wSettableData;
290 WORD wSettableStopParity;
291 DWORD dwCurrentTxQueue;
292 DWORD dwCurrentRxQueue;
293 DWORD dwProvSpec1;
294 DWORD dwProvSpec2;
295 WCHAR wcProvChar[1];
296 } COMMPROP,*LPCOMMPROP;
298 #define COMMPROP_INITIALIZED ((DWORD)0xE73CF52E)
300 typedef struct _COMSTAT {
301 DWORD fCtsHold : 1;
302 DWORD fDsrHold : 1;
303 DWORD fRlsdHold : 1;
304 DWORD fXoffHold : 1;
305 DWORD fXoffSent : 1;
306 DWORD fEof : 1;
307 DWORD fTxim : 1;
308 DWORD fReserved : 25;
309 DWORD cbInQue;
310 DWORD cbOutQue;
311 } COMSTAT,*LPCOMSTAT;
313 #define DTR_CONTROL_DISABLE 0x0
314 #define DTR_CONTROL_ENABLE 0x1
315 #define DTR_CONTROL_HANDSHAKE 0x2
317 #define RTS_CONTROL_DISABLE 0x0
318 #define RTS_CONTROL_ENABLE 0x1
319 #define RTS_CONTROL_HANDSHAKE 0x2
320 #define RTS_CONTROL_TOGGLE 0x3
322 typedef struct _DCB {
323 DWORD DCBlength;
324 DWORD BaudRate;
325 DWORD fBinary: 1;
326 DWORD fParity: 1;
327 DWORD fOutxCtsFlow:1;
328 DWORD fOutxDsrFlow:1;
329 DWORD fDtrControl:2;
330 DWORD fDsrSensitivity:1;
331 DWORD fTXContinueOnXoff: 1;
332 DWORD fOutX: 1;
333 DWORD fInX: 1;
334 DWORD fErrorChar: 1;
335 DWORD fNull: 1;
336 DWORD fRtsControl:2;
337 DWORD fAbortOnError:1;
338 DWORD fDummy2:17;
339 WORD wReserved;
340 WORD XonLim;
341 WORD XoffLim;
342 BYTE ByteSize;
343 BYTE Parity;
344 BYTE StopBits;
345 char XonChar;
346 char XoffChar;
347 char ErrorChar;
348 char EofChar;
349 char EvtChar;
350 WORD wReserved1;
351 } DCB,*LPDCB;
353 typedef struct _COMMTIMEOUTS {
354 DWORD ReadIntervalTimeout;
355 DWORD ReadTotalTimeoutMultiplier;
356 DWORD ReadTotalTimeoutConstant;
357 DWORD WriteTotalTimeoutMultiplier;
358 DWORD WriteTotalTimeoutConstant;
359 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
361 typedef struct _COMMCONFIG {
362 DWORD dwSize;
363 WORD wVersion;
364 WORD wReserved;
365 DCB dcb;
366 DWORD dwProviderSubType;
367 DWORD dwProviderOffset;
368 DWORD dwProviderSize;
369 WCHAR wcProviderData[1];
370 } COMMCONFIG,*LPCOMMCONFIG;
372 typedef struct _SYSTEM_INFO {
373 union {
374 DWORD dwOemId;
375 struct {
376 WORD wProcessorArchitecture;
377 WORD wReserved;
380 DWORD dwPageSize;
381 LPVOID lpMinimumApplicationAddress;
382 LPVOID lpMaximumApplicationAddress;
383 DWORD_PTR dwActiveProcessorMask;
384 DWORD dwNumberOfProcessors;
385 DWORD dwProcessorType;
386 DWORD dwAllocationGranularity;
387 WORD wProcessorLevel;
388 WORD wProcessorRevision;
389 } SYSTEM_INFO,*LPSYSTEM_INFO;
391 #define FreeModule(hLibModule) FreeLibrary((hLibModule))
392 #define MakeProcInstance(lpProc,hInstance) (lpProc)
393 #define FreeProcInstance(lpProc) (lpProc)
395 #define GMEM_FIXED 0x0
396 #define GMEM_MOVEABLE 0x2
397 #define GMEM_NOCOMPACT 0x10
398 #define GMEM_NODISCARD 0x20
399 #define GMEM_ZEROINIT 0x40
400 #define GMEM_MODIFY 0x80
401 #define GMEM_DISCARDABLE 0x100
402 #define GMEM_NOT_BANKED 0x1000
403 #define GMEM_SHARE 0x2000
404 #define GMEM_DDESHARE 0x2000
405 #define GMEM_NOTIFY 0x4000
406 #define GMEM_LOWER GMEM_NOT_BANKED
407 #define GMEM_VALID_FLAGS 0x7F72
408 #define GMEM_INVALID_HANDLE 0x8000
410 #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
411 #define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
413 #define GlobalLRUNewest(h) ((HANDLE)(h))
414 #define GlobalLRUOldest(h) ((HANDLE)(h))
415 #define GlobalDiscard(h) GlobalReAlloc((h),0,GMEM_MOVEABLE)
417 #define GMEM_DISCARDED 0x4000
418 #define GMEM_LOCKCOUNT 0xff
420 typedef struct _MEMORYSTATUS {
421 DWORD dwLength;
422 DWORD dwMemoryLoad;
423 SIZE_T dwTotalPhys;
424 SIZE_T dwAvailPhys;
425 SIZE_T dwTotalPageFile;
426 SIZE_T dwAvailPageFile;
427 SIZE_T dwTotalVirtual;
428 SIZE_T dwAvailVirtual;
429 } MEMORYSTATUS,*LPMEMORYSTATUS;
431 #define LMEM_FIXED 0x0
432 #define LMEM_MOVEABLE 0x2
433 #define LMEM_NOCOMPACT 0x10
434 #define LMEM_NODISCARD 0x20
435 #define LMEM_ZEROINIT 0x40
436 #define LMEM_MODIFY 0x80
437 #define LMEM_DISCARDABLE 0xf00
438 #define LMEM_VALID_FLAGS 0xf72
439 #define LMEM_INVALID_HANDLE 0x8000
441 #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
442 #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
444 #define NONZEROLHND (LMEM_MOVEABLE)
445 #define NONZEROLPTR (LMEM_FIXED)
447 #define LocalDiscard(h) LocalReAlloc((h),0,LMEM_MOVEABLE)
449 #define LMEM_DISCARDED 0x4000
450 #define LMEM_LOCKCOUNT 0xff
452 #define DEBUG_PROCESS 0x1
453 #define DEBUG_ONLY_THIS_PROCESS 0x2
454 #define CREATE_SUSPENDED 0x4
455 #define DETACHED_PROCESS 0x8
456 #define CREATE_NEW_CONSOLE 0x10
457 #define NORMAL_PRIORITY_CLASS 0x20
458 #define IDLE_PRIORITY_CLASS 0x40
459 #define HIGH_PRIORITY_CLASS 0x80
460 #define REALTIME_PRIORITY_CLASS 0x100
461 #define CREATE_NEW_PROCESS_GROUP 0x200
462 #define CREATE_UNICODE_ENVIRONMENT 0x400
463 #define CREATE_SEPARATE_WOW_VDM 0x800
464 #define CREATE_SHARED_WOW_VDM 0x1000
465 #define CREATE_FORCEDOS 0x2000
466 #define BELOW_NORMAL_PRIORITY_CLASS 0x4000
467 #define ABOVE_NORMAL_PRIORITY_CLASS 0x8000
468 #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x10000
470 #define CREATE_BREAKAWAY_FROM_JOB 0x1000000
471 #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x2000000
473 #define CREATE_DEFAULT_ERROR_MODE 0x4000000
474 #define CREATE_NO_WINDOW 0x8000000
476 #define PROFILE_USER 0x10000000
477 #define PROFILE_KERNEL 0x20000000
478 #define PROFILE_SERVER 0x40000000
480 #define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000
482 #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
483 #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1)
484 #define THREAD_PRIORITY_NORMAL 0
485 #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
486 #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1)
487 #define THREAD_PRIORITY_ERROR_RETURN (MAXLONG)
489 #define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT
490 #define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE
492 #define EXCEPTION_DEBUG_EVENT 1
493 #define CREATE_THREAD_DEBUG_EVENT 2
494 #define CREATE_PROCESS_DEBUG_EVENT 3
495 #define EXIT_THREAD_DEBUG_EVENT 4
496 #define EXIT_PROCESS_DEBUG_EVENT 5
497 #define LOAD_DLL_DEBUG_EVENT 6
498 #define UNLOAD_DLL_DEBUG_EVENT 7
499 #define OUTPUT_DEBUG_STRING_EVENT 8
500 #define RIP_EVENT 9
502 typedef struct _EXCEPTION_DEBUG_INFO {
503 EXCEPTION_RECORD ExceptionRecord;
504 DWORD dwFirstChance;
505 } EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
507 typedef struct _CREATE_THREAD_DEBUG_INFO {
508 HANDLE hThread;
509 LPVOID lpThreadLocalBase;
510 LPTHREAD_START_ROUTINE lpStartAddress;
511 } CREATE_THREAD_DEBUG_INFO,*LPCREATE_THREAD_DEBUG_INFO;
513 typedef struct _CREATE_PROCESS_DEBUG_INFO {
514 HANDLE hFile;
515 HANDLE hProcess;
516 HANDLE hThread;
517 LPVOID lpBaseOfImage;
518 DWORD dwDebugInfoFileOffset;
519 DWORD nDebugInfoSize;
520 LPVOID lpThreadLocalBase;
521 LPTHREAD_START_ROUTINE lpStartAddress;
522 LPVOID lpImageName;
523 WORD fUnicode;
524 } CREATE_PROCESS_DEBUG_INFO,*LPCREATE_PROCESS_DEBUG_INFO;
526 typedef struct _EXIT_THREAD_DEBUG_INFO {
527 DWORD dwExitCode;
528 } EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
530 typedef struct _EXIT_PROCESS_DEBUG_INFO {
531 DWORD dwExitCode;
532 } EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
534 typedef struct _LOAD_DLL_DEBUG_INFO {
535 HANDLE hFile;
536 LPVOID lpBaseOfDll;
537 DWORD dwDebugInfoFileOffset;
538 DWORD nDebugInfoSize;
539 LPVOID lpImageName;
540 WORD fUnicode;
541 } LOAD_DLL_DEBUG_INFO,*LPLOAD_DLL_DEBUG_INFO;
543 typedef struct _UNLOAD_DLL_DEBUG_INFO {
544 LPVOID lpBaseOfDll;
545 } UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
547 typedef struct _OUTPUT_DEBUG_STRING_INFO {
548 LPSTR lpDebugStringData;
549 WORD fUnicode;
550 WORD nDebugStringLength;
551 } OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO;
553 typedef struct _RIP_INFO {
554 DWORD dwError;
555 DWORD dwType;
556 } RIP_INFO,*LPRIP_INFO;
558 typedef struct _DEBUG_EVENT {
559 DWORD dwDebugEventCode;
560 DWORD dwProcessId;
561 DWORD dwThreadId;
562 union {
563 EXCEPTION_DEBUG_INFO Exception;
564 CREATE_THREAD_DEBUG_INFO CreateThread;
565 CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
566 EXIT_THREAD_DEBUG_INFO ExitThread;
567 EXIT_PROCESS_DEBUG_INFO ExitProcess;
568 LOAD_DLL_DEBUG_INFO LoadDll;
569 UNLOAD_DLL_DEBUG_INFO UnloadDll;
570 OUTPUT_DEBUG_STRING_INFO DebugString;
571 RIP_INFO RipInfo;
572 } u;
573 } DEBUG_EVENT,*LPDEBUG_EVENT;
575 typedef PCONTEXT LPCONTEXT;
576 typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
577 typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
579 #define DRIVE_UNKNOWN 0
580 #define DRIVE_NO_ROOT_DIR 1
581 #define DRIVE_REMOVABLE 2
582 #define DRIVE_FIXED 3
583 #define DRIVE_REMOTE 4
584 #define DRIVE_CDROM 5
585 #define DRIVE_RAMDISK 6
587 #define GetFreeSpace(w) (0x100000L)
588 #define FILE_TYPE_UNKNOWN 0x0
589 #define FILE_TYPE_DISK 0x1
590 #define FILE_TYPE_CHAR 0x2
591 #define FILE_TYPE_PIPE 0x3
592 #define FILE_TYPE_REMOTE 0x8000
594 #define STD_INPUT_HANDLE ((DWORD)-10)
595 #define STD_OUTPUT_HANDLE ((DWORD)-11)
596 #define STD_ERROR_HANDLE ((DWORD)-12)
598 #define NOPARITY 0
599 #define ODDPARITY 1
600 #define EVENPARITY 2
601 #define MARKPARITY 3
602 #define SPACEPARITY 4
604 #define ONESTOPBIT 0
605 #define ONE5STOPBITS 1
606 #define TWOSTOPBITS 2
608 #define IGNORE 0
609 #define INFINITE 0xffffffff
611 #define CBR_110 110
612 #define CBR_300 300
613 #define CBR_600 600
614 #define CBR_1200 1200
615 #define CBR_2400 2400
616 #define CBR_4800 4800
617 #define CBR_9600 9600
618 #define CBR_14400 14400
619 #define CBR_19200 19200
620 #define CBR_38400 38400
621 #define CBR_56000 56000
622 #define CBR_57600 57600
623 #define CBR_115200 115200
624 #define CBR_128000 128000
625 #define CBR_256000 256000
627 #define CE_RXOVER 0x1
628 #define CE_OVERRUN 0x2
629 #define CE_RXPARITY 0x4
630 #define CE_FRAME 0x8
631 #define CE_BREAK 0x10
632 #define CE_TXFULL 0x100
633 #define CE_PTO 0x200
634 #define CE_IOE 0x400
635 #define CE_DNS 0x800
636 #define CE_OOP 0x1000
637 #define CE_MODE 0x8000
639 #define IE_BADID (-1)
640 #define IE_OPEN (-2)
641 #define IE_NOPEN (-3)
642 #define IE_MEMORY (-4)
643 #define IE_DEFAULT (-5)
644 #define IE_HARDWARE (-10)
645 #define IE_BYTESIZE (-11)
646 #define IE_BAUDRATE (-12)
648 #define EV_RXCHAR 0x1
649 #define EV_RXFLAG 0x2
650 #define EV_TXEMPTY 0x4
651 #define EV_CTS 0x8
652 #define EV_DSR 0x10
653 #define EV_RLSD 0x20
654 #define EV_BREAK 0x40
655 #define EV_ERR 0x80
656 #define EV_RING 0x100
657 #define EV_PERR 0x200
658 #define EV_RX80FULL 0x400
659 #define EV_EVENT1 0x800
660 #define EV_EVENT2 0x1000
662 #define SETXOFF 1
663 #define SETXON 2
664 #define SETRTS 3
665 #define CLRRTS 4
666 #define SETDTR 5
667 #define CLRDTR 6
668 #define RESETDEV 7
669 #define SETBREAK 8
670 #define CLRBREAK 9
672 #define PURGE_TXABORT 0x1
673 #define PURGE_RXABORT 0x2
674 #define PURGE_TXCLEAR 0x4
675 #define PURGE_RXCLEAR 0x8
677 #define LPTx 0x80
679 #define MS_CTS_ON ((DWORD)0x10)
680 #define MS_DSR_ON ((DWORD)0x20)
681 #define MS_RING_ON ((DWORD)0x40)
682 #define MS_RLSD_ON ((DWORD)0x80)
684 #define S_QUEUEEMPTY 0
685 #define S_THRESHOLD 1
686 #define S_ALLTHRESHOLD 2
688 #define S_NORMAL 0
689 #define S_LEGATO 1
690 #define S_STACCATO 2
692 #define S_PERIOD512 0
693 #define S_PERIOD1024 1
694 #define S_PERIOD2048 2
695 #define S_PERIODVOICE 3
696 #define S_WHITE512 4
697 #define S_WHITE1024 5
698 #define S_WHITE2048 6
699 #define S_WHITEVOICE 7
701 #define S_SERDVNA (-1)
702 #define S_SEROFM (-2)
703 #define S_SERMACT (-3)
704 #define S_SERQFUL (-4)
705 #define S_SERBDNT (-5)
706 #define S_SERDLN (-6)
707 #define S_SERDCC (-7)
708 #define S_SERDTP (-8)
709 #define S_SERDVL (-9)
710 #define S_SERDMD (-10)
711 #define S_SERDSH (-11)
712 #define S_SERDPT (-12)
713 #define S_SERDFQ (-13)
714 #define S_SERDDR (-14)
715 #define S_SERDSR (-15)
716 #define S_SERDST (-16)
718 #define NMPWAIT_WAIT_FOREVER 0xffffffff
719 #define NMPWAIT_NOWAIT 0x1
720 #define NMPWAIT_USE_DEFAULT_WAIT 0x0
722 #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
723 #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
724 #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
725 #define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS
726 #define FS_VOL_IS_COMPRESSED FILE_VOLUME_IS_COMPRESSED
727 #define FS_FILE_COMPRESSION FILE_FILE_COMPRESSION
728 #define FS_FILE_ENCRYPTION FILE_SUPPORTS_ENCRYPTION
730 #define FILE_MAP_COPY SECTION_QUERY
731 #define FILE_MAP_WRITE SECTION_MAP_WRITE
732 #define FILE_MAP_READ SECTION_MAP_READ
733 #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
734 #define FILE_MAP_EXECUTE SECTION_MAP_EXECUTE_EXPLICIT
736 #define OF_READ 0x0
737 #define OF_WRITE 0x1
738 #define OF_READWRITE 0x2
739 #define OF_SHARE_COMPAT 0x0
740 #define OF_SHARE_EXCLUSIVE 0x10
741 #define OF_SHARE_DENY_WRITE 0x20
742 #define OF_SHARE_DENY_READ 0x30
743 #define OF_SHARE_DENY_NONE 0x40
744 #define OF_PARSE 0x100
745 #define OF_DELETE 0x200
746 #define OF_VERIFY 0x400
747 #define OF_CANCEL 0x800
748 #define OF_CREATE 0x1000
749 #define OF_PROMPT 0x2000
750 #define OF_EXIST 0x4000
751 #define OF_REOPEN 0x8000
753 #define OFS_MAXPATHNAME 128
754 typedef struct _OFSTRUCT {
755 BYTE cBytes;
756 BYTE fFixedDisk;
757 WORD nErrCode;
758 WORD Reserved1;
759 WORD Reserved2;
760 CHAR szPathName[OFS_MAXPATHNAME];
761 } OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
763 #ifndef NOWINBASEINTERLOCK
765 #ifndef _NTOS_
767 #if defined(__ia64__) && !defined(RC_INVOKED)
769 #define InterlockedIncrement _InterlockedIncrement
770 #define InterlockedIncrementAcquire _InterlockedIncrement_acq
771 #define InterlockedIncrementRelease _InterlockedIncrement_rel
772 #define InterlockedDecrement _InterlockedDecrement
773 #define InterlockedDecrementAcquire _InterlockedDecrement_acq
774 #define InterlockedDecrementRelease _InterlockedDecrement_rel
775 #define InterlockedExchange _InterlockedExchange
776 #define InterlockedExchangeAdd _InterlockedExchangeAdd
777 #define InterlockedCompareExchange _InterlockedCompareExchange
778 #define InterlockedCompareExchangeAcquire _InterlockedCompareExchange_acq
779 #define InterlockedCompareExchangeRelease _InterlockedCompareExchange_rel
780 #define InterlockedExchangePointer _InterlockedExchangePointer
781 #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
782 #define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer_rel
783 #define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer_acq
785 #define InterlockedIncrement64 _InterlockedIncrement64
786 #define InterlockedDecrement64 _InterlockedDecrement64
787 #define InterlockedExchange64 _InterlockedExchange64
788 #define InterlockedExchangeAcquire64 _InterlockedExchange64_acq
789 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
790 #define InterlockedCompareExchange64 _InterlockedCompareExchange64
791 #define InterlockedCompareExchangeAcquire64 _InterlockedCompareExchange64_acq
792 #define InterlockedCompareExchangeRelease64 _InterlockedCompareExchange64_rel
794 LONGLONG __cdecl InterlockedIncrement64(LONGLONG volatile *Addend);
795 LONGLONG __cdecl InterlockedDecrement64(LONGLONG volatile *Addend);
796 LONG __cdecl InterlockedIncrementAcquire(LONG volatile *Addend);
797 LONG __cdecl InterlockedDecrementAcquire(LONG volatile *Addend);
798 LONG __cdecl InterlockedIncrementRelease(LONG volatile *Addend);
799 LONG __cdecl InterlockedDecrementRelease(LONG volatile *Addend);
800 LONGLONG __cdecl InterlockedExchange64 (LONGLONG volatile *Target,LONGLONG Value);
801 LONGLONG __cdecl InterlockedExchangeAcquire64 (LONGLONG volatile *Target,LONGLONG Value);
802 LONGLONG __cdecl InterlockedExchangeAdd64 (LONGLONG volatile *Addend,LONGLONG Value);
803 LONGLONG __cdecl InterlockedCompareExchange64 (LONGLONG volatile *Destination,LONGLONG ExChange,LONGLONG Comperand);
804 LONGLONG __cdecl InterlockedCompareExchangeAcquire64 (LONGLONG volatile *Destination,LONGLONG ExChange,LONGLONG Comperand);
805 LONGLONG __cdecl InterlockedCompareExchangeRelease64 (LONGLONG volatile *Destination,LONGLONG ExChange,LONGLONG Comperand);
806 LONG __cdecl InterlockedIncrement(LONG volatile *lpAddend);
807 LONG __cdecl InterlockedDecrement(LONG volatile *lpAddend);
808 LONG __cdecl InterlockedExchange(LONG volatile *Target,LONG Value);
809 LONG __cdecl InterlockedExchangeAdd(LONG volatile *Addend,LONG Value);
810 LONG __cdecl InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
811 LONG __cdecl InterlockedCompareExchangeRelease(LONG volatile *Destination,LONG ExChange,LONG Comperand);
812 LONG __cdecl InterlockedCompareExchangeAcquire(LONG volatile *Destination,LONG ExChange,LONG Comperand);
813 PVOID __cdecl InterlockedExchangePointer(PVOID volatile *Target,PVOID Value);
814 PVOID __cdecl InterlockedCompareExchangePointer(PVOID volatile *Destination,PVOID ExChange,PVOID Comperand);
815 PVOID __cdecl InterlockedCompareExchangePointerAcquire(PVOID volatile *Destination,PVOID Exchange,PVOID Comperand);
816 PVOID __cdecl InterlockedCompareExchangePointerRelease(PVOID volatile *Destination,PVOID Exchange,PVOID Comperand);
818 #ifndef InterlockedAnd
819 #define InterlockedAnd InterlockedAnd_Inline
820 __CRT_INLINE LONG InterlockedAnd_Inline(LONG volatile *Target,LONG Set) {
821 LONG i;
822 LONG j;
823 j = *Target;
824 do {
825 i = j;
826 j = InterlockedCompareExchange(Target,i & Set,i);
827 } while(i!=j);
828 return j;
830 #endif
832 #ifndef InterlockedOr
833 #define InterlockedOr InterlockedOr_Inline
835 __CRT_INLINE LONG InterlockedOr_Inline(LONG volatile *Target,LONG Set) {
836 LONG i;
837 LONG j;
838 j = *Target;
839 do {
840 i = j;
841 j = InterlockedCompareExchange(Target,i | Set,i);
842 } while(i!=j);
843 return j;
845 #endif
847 #ifndef InterlockedXor
848 #define InterlockedXor InterlockedXor_Inline
850 __CRT_INLINE LONG InterlockedXor_Inline(LONG volatile *Target,LONG Set) {
851 LONG i;
852 LONG j;
853 j = *Target;
854 do {
855 i = j;
856 j = InterlockedCompareExchange(Target,i ^ Set,i);
857 } while(i!=j);
858 return j;
860 #endif
862 #ifndef !defined (InterlockedAnd64)
863 #define InterlockedAnd64 InterlockedAnd64_Inline
865 __CRT_INLINE LONGLONG InterlockedAnd64_Inline (LONGLONG volatile *Destination,LONGLONG Value) {
866 LONGLONG Old;
867 do {
868 Old = *Destination;
869 } while(InterlockedCompareExchange64(Destination,Old & Value,Old)!=Old);
870 return Old;
872 #endif
874 #ifndef InterlockedOr64
875 #define InterlockedOr64 InterlockedOr64_Inline
877 __CRT_INLINE LONGLONG InterlockedOr64_Inline (LONGLONG volatile *Destination,LONGLONG Value) {
878 LONGLONG Old;
879 do {
880 Old = *Destination;
881 } while(InterlockedCompareExchange64(Destination,Old | Value,Old)!=Old);
882 return Old;
884 #endif
886 #ifndef InterlockedXor64
887 #define InterlockedXor64 InterlockedXor64_Inline
889 __CRT_INLINE LONGLONG InterlockedXor64_Inline (LONGLONG volatile *Destination,LONGLONG Value) {
890 LONGLONG Old;
891 do {
892 Old = *Destination;
893 } while(InterlockedCompareExchange64(Destination,Old ^ Value,Old)!=Old);
894 return Old;
896 #endif
898 #ifndef InterlockedBitTestAndSet
899 #define InterlockedBitTestAndSet InterlockedBitTestAndSet_Inline
901 __CRT_INLINE BOOLEAN InterlockedBitTestAndSet_Inline(LONG *Base,LONG Bit) {
902 LONG tBit;
903 tBit = 1<<(Bit & (sizeof (*Base)*8-1));
904 return (BOOLEAN)((InterlockedOr(&Base[Bit/(sizeof(*Base)*8)],tBit)&tBit)!=0);
906 #endif
908 #ifndef InterlockedBitTestAndReset
909 #define InterlockedBitTestAndReset InterlockedBitTestAndReset_Inline
911 __CRT_INLINE BOOLEAN InterlockedBitTestAndReset_Inline(LONG *Base,LONG Bit) {
912 LONG tBit;
913 tBit = 1<<(Bit & (sizeof (*Base)*8-1));
914 return (BOOLEAN)((InterlockedAnd(&Base[Bit/(sizeof(*Base)*8)],~tBit)&tBit)!=0);
916 #endif
918 #ifndef InterlockedBitTestAndComplement
919 #define InterlockedBitTestAndComplement InterlockedBitTestAndComplement_Inline
921 __CRT_INLINE BOOLEAN InterlockedBitTestAndComplement_Inline(LONG *Base,LONG Bit) {
922 LONG tBit;
923 tBit = 1<<(Bit & (sizeof (*Base)*8-1));
924 return (BOOLEAN)((InterlockedXor(&Base[Bit/(sizeof(*Base)*8)],tBit)&tBit)!=0);
926 #endif
927 #elif defined(__x86_64) && !defined(RC_INVOKED)
929 #define InterlockedIncrement _InterlockedIncrement
930 #define InterlockedIncrementAcquire InterlockedIncrement
931 #define InterlockedIncrementRelease InterlockedIncrement
932 #define InterlockedDecrement _InterlockedDecrement
933 #define InterlockedDecrementAcquire InterlockedDecrement
934 #define InterlockedDecrementRelease InterlockedDecrement
935 #define InterlockedExchange _InterlockedExchange
936 #define InterlockedExchangeAdd _InterlockedExchangeAdd
937 #define InterlockedCompareExchange _InterlockedCompareExchange
938 #define InterlockedCompareExchangeAcquire InterlockedCompareExchange
939 #define InterlockedCompareExchangeRelease InterlockedCompareExchange
940 #define InterlockedExchangePointer _InterlockedExchangePointer
941 #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
942 #define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer
943 #define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer
944 #define InterlockedAnd64 _InterlockedAnd64
945 #define InterlockedOr64 _InterlockedOr64
946 #define InterlockedXor64 _InterlockedXor64
947 #define InterlockedIncrement64 _InterlockedIncrement64
948 #define InterlockedDecrement64 _InterlockedDecrement64
949 #define InterlockedExchange64 _InterlockedExchange64
950 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
951 #define InterlockedCompareExchange64 _InterlockedCompareExchange64
952 #define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64
953 #define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64
955 LONG InterlockedIncrement(LONG volatile *Addend);
956 LONG InterlockedDecrement(LONG volatile *Addend);
957 LONG InterlockedExchange(LONG volatile *Target,LONG Value);
958 LONG InterlockedExchangeAdd(LONG volatile *Addend,LONG Value);
959 LONG InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
960 PVOID InterlockedCompareExchangePointer(PVOID volatile *Destination,PVOID Exchange,PVOID Comperand);
961 PVOID InterlockedExchangePointer(PVOID volatile *Target,PVOID Value);
962 LONG64 InterlockedAnd64(LONG64 volatile *Destination,LONG64 Value);
963 LONG64 InterlockedOr64(LONG64 volatile *Destination,LONG64 Value);
964 LONG64 InterlockedXor64(LONG64 volatile *Destination,LONG64 Value);
965 LONG64 InterlockedIncrement64(LONG64 volatile *Addend);
966 LONG64 InterlockedDecrement64(LONG64 volatile *Addend);
967 LONG64 InterlockedExchange64(LONG64 volatile *Target,LONG64 Value);
968 LONG64 InterlockedExchangeAdd64(LONG64 volatile *Addend,LONG64 Value);
969 LONG64 InterlockedCompareExchange64(LONG64 volatile *Destination,LONG64 ExChange,LONG64 Comperand);
970 #else
971 LONG WINAPI InterlockedIncrement(LONG volatile *lpAddend);
972 LONG WINAPI InterlockedDecrement(LONG volatile *lpAddend);
973 LONG WINAPI InterlockedExchange(LONG volatile *Target,LONG Value);
975 #define InterlockedExchangePointer(Target,Value) (PVOID)InterlockedExchange((PLONG)(Target),(LONG)(Value))
977 LONG WINAPI InterlockedExchangeAdd(LONG volatile *Addend,LONG Value);
978 LONG WINAPI InterlockedCompareExchange(LONG volatile *Destination,LONG Exchange,LONG Comperand);
979 LONGLONG WINAPI InterlockedCompareExchange64(LONGLONG volatile *Destination,LONGLONG Exchange,LONGLONG Comperand);
981 __CRT_INLINE LONGLONG InterlockedAnd64 (LONGLONG volatile *Destination,LONGLONG Value) {
982 LONGLONG Old;
983 do {
984 Old = *Destination;
985 } while(InterlockedCompareExchange64(Destination,Old & Value,Old)!=Old);
986 return Old;
989 __CRT_INLINE LONGLONG InterlockedOr64 (LONGLONG volatile *Destination,LONGLONG Value) {
990 LONGLONG Old;
991 do {
992 Old = *Destination;
993 } while(InterlockedCompareExchange64(Destination,Old | Value,Old)!=Old);
994 return Old;
997 __CRT_INLINE LONGLONG InterlockedXor64 (LONGLONG volatile *Destination,LONGLONG Value) {
998 LONGLONG Old;
999 do {
1000 Old = *Destination;
1001 } while(InterlockedCompareExchange64(Destination,Old ^ Value,Old)!=Old);
1003 return Old;
1006 __CRT_INLINE LONGLONG InterlockedIncrement64(LONGLONG volatile *Addend) {
1007 LONGLONG Old;
1008 do {
1009 Old = *Addend;
1010 } while(InterlockedCompareExchange64(Addend,Old + 1,Old)!=Old);
1011 return Old + 1;
1014 __CRT_INLINE LONGLONG InterlockedDecrement64(LONGLONG volatile *Addend) {
1015 LONGLONG Old;
1016 do {
1017 Old = *Addend;
1018 } while(InterlockedCompareExchange64(Addend,Old - 1,Old)!=Old);
1019 return Old - 1;
1022 __CRT_INLINE LONGLONG InterlockedExchange64(LONGLONG volatile *Target,LONGLONG Value) {
1023 LONGLONG Old;
1024 do {
1025 Old = *Target;
1026 } while(InterlockedCompareExchange64(Target,Value,Old)!=Old);
1027 return Old;
1030 __CRT_INLINE LONGLONG InterlockedExchangeAdd64(LONGLONG volatile *Addend,LONGLONG Value) {
1031 LONGLONG Old;
1032 do {
1033 Old = *Addend;
1034 } while(InterlockedCompareExchange64(Addend,Old + Value,Old)!=Old);
1035 return Old;
1038 #ifdef __cplusplus
1039 __CRT_INLINE PVOID __cdecl __InlineInterlockedCompareExchangePointer(PVOID volatile *Destination,PVOID ExChange,PVOID Comperand) {
1040 return((PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)Destination,(LONG)(LONG_PTR)ExChange,(LONG)(LONG_PTR)Comperand));
1042 #define InterlockedCompareExchangePointer __InlineInterlockedCompareExchangePointer
1043 #else
1044 #define InterlockedCompareExchangePointer(Destination,ExChange,Comperand)(PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)(Destination),(LONG)(LONG_PTR)(ExChange),(LONG)(LONG_PTR)(Comperand))
1045 #endif
1047 #define InterlockedIncrementAcquire InterlockedIncrement
1048 #define InterlockedIncrementRelease InterlockedIncrement
1049 #define InterlockedDecrementAcquire InterlockedDecrement
1050 #define InterlockedDecrementRelease InterlockedDecrement
1051 #define InterlockedIncrementAcquire InterlockedIncrement
1052 #define InterlockedIncrementRelease InterlockedIncrement
1053 #define InterlockedCompareExchangeAcquire InterlockedCompareExchange
1054 #define InterlockedCompareExchangeRelease InterlockedCompareExchange
1055 #define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64
1056 #define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64
1057 #define InterlockedCompareExchangePointerAcquire InterlockedCompareExchangePointer
1058 #define InterlockedCompareExchangePointerRelease InterlockedCompareExchangePointer
1059 #endif
1061 #if defined(_SLIST_HEADER_) && !defined(_NTOSP_)
1062 WINBASEAPI VOID WINAPI InitializeSListHead(PSLIST_HEADER ListHead);
1063 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER ListHead);
1064 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER ListHead,PSLIST_ENTRY ListEntry);
1065 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER ListHead);
1066 WINBASEAPI USHORT WINAPI QueryDepthSList(PSLIST_HEADER ListHead);
1067 #endif
1068 #endif
1069 #endif
1071 WINBASEAPI WINBOOL WINAPI FreeResource(HGLOBAL hResData);
1072 WINBASEAPI LPVOID WINAPI LockResource(HGLOBAL hResData);
1074 #define UnlockResource(hResData) ((hResData),0)
1075 #define MAXINTATOM 0xC000
1076 #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
1077 #define INVALID_ATOM ((ATOM)0)
1079 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd);
1080 WINBASEAPI WINBOOL WINAPI FreeLibrary(HMODULE hLibModule);
1081 WINBASEAPI DECLSPEC_NORETURN VOID WINAPI FreeLibraryAndExitThread(HMODULE hLibModule,DWORD dwExitCode);
1082 WINBASEAPI WINBOOL WINAPI DisableThreadLibraryCalls(HMODULE hLibModule);
1083 WINBASEAPI FARPROC WINAPI GetProcAddress(HMODULE hModule,LPCSTR lpProcName);
1084 WINBASEAPI DWORD WINAPI GetVersion(VOID);
1085 WINBASEAPI HGLOBAL WINAPI GlobalAlloc(UINT uFlags,SIZE_T dwBytes);
1086 WINBASEAPI HGLOBAL WINAPI GlobalReAlloc(HGLOBAL hMem,SIZE_T dwBytes,UINT uFlags);
1087 WINBASEAPI SIZE_T WINAPI GlobalSize(HGLOBAL hMem);
1088 WINBASEAPI UINT WINAPI GlobalFlags(HGLOBAL hMem);
1089 WINBASEAPI LPVOID WINAPI GlobalLock(HGLOBAL hMem);
1090 WINBASEAPI HGLOBAL WINAPI GlobalHandle(LPCVOID pMem);
1091 WINBASEAPI WINBOOL WINAPI GlobalUnlock(HGLOBAL hMem);
1092 WINBASEAPI HGLOBAL WINAPI GlobalFree(HGLOBAL hMem);
1093 WINBASEAPI SIZE_T WINAPI GlobalCompact(DWORD dwMinFree);
1094 WINBASEAPI VOID WINAPI GlobalFix(HGLOBAL hMem);
1095 WINBASEAPI VOID WINAPI GlobalUnfix(HGLOBAL hMem);
1096 WINBASEAPI LPVOID WINAPI GlobalWire(HGLOBAL hMem);
1097 WINBASEAPI WINBOOL WINAPI GlobalUnWire(HGLOBAL hMem);
1098 WINBASEAPI VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer);
1100 typedef struct _MEMORYSTATUSEX {
1101 DWORD dwLength;
1102 DWORD dwMemoryLoad;
1103 DWORDLONG ullTotalPhys;
1104 DWORDLONG ullAvailPhys;
1105 DWORDLONG ullTotalPageFile;
1106 DWORDLONG ullAvailPageFile;
1107 DWORDLONG ullTotalVirtual;
1108 DWORDLONG ullAvailVirtual;
1109 DWORDLONG ullAvailExtendedVirtual;
1110 } MEMORYSTATUSEX,*LPMEMORYSTATUSEX;
1112 WINBASEAPI WINBOOL WINAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer);
1113 WINBASEAPI HLOCAL WINAPI LocalAlloc(UINT uFlags,SIZE_T uBytes);
1114 WINBASEAPI HLOCAL WINAPI LocalReAlloc(HLOCAL hMem,SIZE_T uBytes,UINT uFlags);
1115 WINBASEAPI LPVOID WINAPI LocalLock(HLOCAL hMem);
1116 WINBASEAPI HLOCAL WINAPI LocalHandle(LPCVOID pMem);
1117 WINBASEAPI WINBOOL WINAPI LocalUnlock(HLOCAL hMem);
1118 WINBASEAPI SIZE_T WINAPI LocalSize(HLOCAL hMem);
1119 WINBASEAPI UINT WINAPI LocalFlags(HLOCAL hMem);
1120 WINBASEAPI HLOCAL WINAPI LocalFree(HLOCAL hMem);
1121 WINBASEAPI SIZE_T WINAPI LocalShrink(HLOCAL hMem,UINT cbNewSize);
1122 WINBASEAPI SIZE_T WINAPI LocalCompact(UINT uMinFree);
1123 WINBASEAPI WINBOOL WINAPI FlushInstructionCache(HANDLE hProcess,LPCVOID lpBaseAddress,SIZE_T dwSize);
1124 WINBASEAPI LPVOID WINAPI VirtualAlloc(LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect);
1125 WINBASEAPI WINBOOL WINAPI VirtualFree(LPVOID lpAddress,SIZE_T dwSize,DWORD dwFreeType);
1126 WINBASEAPI WINBOOL WINAPI VirtualProtect(LPVOID lpAddress,SIZE_T dwSize,DWORD flNewProtect,PDWORD lpflOldProtect);
1127 WINBASEAPI SIZE_T WINAPI VirtualQuery(LPCVOID lpAddress,PMEMORY_BASIC_INFORMATION lpBuffer,SIZE_T dwLength);
1128 WINBASEAPI LPVOID WINAPI VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect);
1129 WINBASEAPI UINT WINAPI GetWriteWatch(DWORD dwFlags,PVOID lpBaseAddress,SIZE_T dwRegionSize,PVOID *lpAddresses,ULONG_PTR *lpdwCount,PULONG lpdwGranularity);
1130 WINBASEAPI UINT WINAPI ResetWriteWatch(LPVOID lpBaseAddress,SIZE_T dwRegionSize);
1131 WINBASEAPI SIZE_T WINAPI GetLargePageMinimum(VOID);
1132 WINBASEAPI UINT WINAPI EnumSystemFirmwareTables(DWORD FirmwareTableProviderSignature,PVOID pFirmwareTableEnumBuffer,DWORD BufferSize);
1133 WINBASEAPI UINT WINAPI GetSystemFirmwareTable(DWORD FirmwareTableProviderSignature,DWORD FirmwareTableID,PVOID pFirmwareTableBuffer,DWORD BufferSize);
1134 WINBASEAPI WINBOOL WINAPI VirtualFreeEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD dwFreeType);
1135 WINBASEAPI WINBOOL WINAPI VirtualProtectEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flNewProtect,PDWORD lpflOldProtect);
1136 WINBASEAPI SIZE_T WINAPI VirtualQueryEx(HANDLE hProcess,LPCVOID lpAddress,PMEMORY_BASIC_INFORMATION lpBuffer,SIZE_T dwLength);
1137 WINBASEAPI HANDLE WINAPI HeapCreate(DWORD flOptions,SIZE_T dwInitialSize,SIZE_T dwMaximumSize);
1138 WINBASEAPI WINBOOL WINAPI HeapDestroy(HANDLE hHeap);
1139 WINBASEAPI LPVOID WINAPI HeapAlloc(HANDLE hHeap,DWORD dwFlags,SIZE_T dwBytes);
1140 WINBASEAPI LPVOID WINAPI HeapReAlloc(HANDLE hHeap,DWORD dwFlags,LPVOID lpMem,SIZE_T dwBytes);
1141 WINBASEAPI WINBOOL WINAPI HeapFree(HANDLE hHeap,DWORD dwFlags,LPVOID lpMem);
1142 WINBASEAPI SIZE_T WINAPI HeapSize(HANDLE hHeap,DWORD dwFlags,LPCVOID lpMem);
1143 WINBASEAPI WINBOOL WINAPI HeapValidate(HANDLE hHeap,DWORD dwFlags,LPCVOID lpMem);
1144 WINBASEAPI SIZE_T WINAPI HeapCompact(HANDLE hHeap,DWORD dwFlags);
1145 WINBASEAPI HANDLE WINAPI GetProcessHeap(VOID);
1146 WINBASEAPI DWORD WINAPI GetProcessHeaps(DWORD NumberOfHeaps,PHANDLE ProcessHeaps);
1148 typedef struct _PROCESS_HEAP_ENTRY {
1149 PVOID lpData;
1150 DWORD cbData;
1151 BYTE cbOverhead;
1152 BYTE iRegionIndex;
1153 WORD wFlags;
1154 union {
1155 struct {
1156 HANDLE hMem;
1157 DWORD dwReserved[3];
1158 } Block;
1159 struct {
1160 DWORD dwCommittedSize;
1161 DWORD dwUnCommittedSize;
1162 LPVOID lpFirstBlock;
1163 LPVOID lpLastBlock;
1164 } Region;
1166 } PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY,*PPROCESS_HEAP_ENTRY;
1168 #define PROCESS_HEAP_REGION 0x1
1169 #define PROCESS_HEAP_UNCOMMITTED_RANGE 0x2
1170 #define PROCESS_HEAP_ENTRY_BUSY 0x4
1171 #define PROCESS_HEAP_ENTRY_MOVEABLE 0x10
1172 #define PROCESS_HEAP_ENTRY_DDESHARE 0x20
1174 WINBASEAPI WINBOOL WINAPI HeapLock(HANDLE hHeap);
1175 WINBASEAPI WINBOOL WINAPI HeapUnlock(HANDLE hHeap);
1176 WINBASEAPI WINBOOL WINAPI HeapWalk(HANDLE hHeap,LPPROCESS_HEAP_ENTRY lpEntry);
1177 WINBASEAPI WINBOOL WINAPI HeapSetInformation(HANDLE HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength);
1178 WINBASEAPI WINBOOL WINAPI HeapQueryInformation(HANDLE HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength);
1180 #define SCS_32BIT_BINARY 0
1181 #define SCS_DOS_BINARY 1
1182 #define SCS_WOW_BINARY 2
1183 #define SCS_PIF_BINARY 3
1184 #define SCS_POSIX_BINARY 4
1185 #define SCS_OS216_BINARY 5
1186 #define SCS_64BIT_BINARY 6
1188 #ifdef UNICODE
1189 #define GetBinaryType GetBinaryTypeW
1190 #define GetShortPathName GetShortPathNameW
1191 #define GetLongPathName GetLongPathNameW
1192 #define GetEnvironmentStrings GetEnvironmentStringsW
1193 #define SetEnvironmentStrings SetEnvironmentStringsW
1194 #define FreeEnvironmentStrings FreeEnvironmentStringsW
1195 #else
1196 #define GetBinaryType GetBinaryTypeA
1197 #define GetShortPathName GetShortPathNameA
1198 #define GetLongPathName GetLongPathNameA
1199 #define GetEnvironmentStringsA GetEnvironmentStrings
1200 #define SetEnvironmentStrings SetEnvironmentStringsA
1201 #define FreeEnvironmentStrings FreeEnvironmentStringsA
1202 #endif
1204 #ifdef _WIN64
1205 #define SCS_THIS_PLATFORM_BINARY SCS_64BIT_BINARY
1206 #else
1207 #define SCS_THIS_PLATFORM_BINARY SCS_32BIT_BINARY
1208 #endif
1210 WINBASEAPI WINBOOL WINAPI GetBinaryTypeA(LPCSTR lpApplicationName,LPDWORD lpBinaryType);
1211 WINBASEAPI WINBOOL WINAPI GetBinaryTypeW(LPCWSTR lpApplicationName,LPDWORD lpBinaryType);
1212 WINBASEAPI DWORD WINAPI GetShortPathNameA(LPCSTR lpszLongPath,LPSTR lpszShortPath,DWORD cchBuffer);
1213 WINBASEAPI DWORD WINAPI GetShortPathNameW(LPCWSTR lpszLongPath,LPWSTR lpszShortPath,DWORD cchBuffer);
1214 WINBASEAPI DWORD WINAPI GetLongPathNameA(LPCSTR lpszShortPath,LPSTR lpszLongPath,DWORD cchBuffer);
1215 WINBASEAPI DWORD WINAPI GetLongPathNameW(LPCWSTR lpszShortPath,LPWSTR lpszLongPath,DWORD cchBuffer);
1216 WINBASEAPI WINBOOL WINAPI GetProcessAffinityMask(HANDLE hProcess,PDWORD_PTR lpProcessAffinityMask,PDWORD_PTR lpSystemAffinityMask);
1217 WINBASEAPI WINBOOL WINAPI SetProcessAffinityMask(HANDLE hProcess,DWORD_PTR dwProcessAffinityMask);
1218 WINBASEAPI WINBOOL WINAPI GetProcessHandleCount(HANDLE hProcess,PDWORD pdwHandleCount);
1219 WINBASEAPI WINBOOL WINAPI GetProcessTimes(HANDLE hProcess,LPFILETIME lpCreationTime,LPFILETIME lpExitTime,LPFILETIME lpKernelTime,LPFILETIME lpUserTime);
1220 WINBASEAPI WINBOOL WINAPI GetProcessIoCounters(HANDLE hProcess,PIO_COUNTERS lpIoCounters);
1221 WINBASEAPI WINBOOL WINAPI GetProcessWorkingSetSize(HANDLE hProcess,PSIZE_T lpMinimumWorkingSetSize,PSIZE_T lpMaximumWorkingSetSize);
1222 WINBASEAPI WINBOOL WINAPI GetProcessWorkingSetSizeEx(HANDLE hProcess,PSIZE_T lpMinimumWorkingSetSize,PSIZE_T lpMaximumWorkingSetSize,PDWORD Flags);
1223 WINBASEAPI WINBOOL WINAPI SetProcessWorkingSetSize(HANDLE hProcess,SIZE_T dwMinimumWorkingSetSize,SIZE_T dwMaximumWorkingSetSize);
1224 WINBASEAPI WINBOOL WINAPI SetProcessWorkingSetSizeEx(HANDLE hProcess,SIZE_T dwMinimumWorkingSetSize,SIZE_T dwMaximumWorkingSetSize,DWORD Flags);
1225 WINBASEAPI HANDLE WINAPI OpenProcess(DWORD dwDesiredAccess,WINBOOL bInheritHandle,DWORD dwProcessId);
1226 WINBASEAPI HANDLE WINAPI GetCurrentProcess(VOID);
1227 WINBASEAPI DWORD WINAPI GetCurrentProcessId(VOID);
1228 WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitProcess(UINT uExitCode);
1229 WINBASEAPI WINBOOL WINAPI TerminateProcess(HANDLE hProcess,UINT uExitCode);
1230 WINBASEAPI WINBOOL WINAPI GetExitCodeProcess(HANDLE hProcess,LPDWORD lpExitCode);
1231 WINBASEAPI VOID WINAPI FatalExit(int ExitCode);
1232 /* WINBASEAPI LPCH WINAPI GetEnvironmentStrings(VOID); */
1233 WINBASEAPI LPWCH WINAPI GetEnvironmentStringsW(VOID);
1234 WINBASEAPI WINBOOL WINAPI SetEnvironmentStringsA(LPCH NewEnvironment);
1235 WINBASEAPI WINBOOL WINAPI SetEnvironmentStringsW(LPWCH NewEnvironment);
1236 WINBASEAPI WINBOOL WINAPI FreeEnvironmentStringsA(LPCH);
1237 WINBASEAPI WINBOOL WINAPI FreeEnvironmentStringsW(LPWCH);
1238 WINBASEAPI VOID WINAPI RaiseException(DWORD dwExceptionCode,DWORD dwExceptionFlags,DWORD nNumberOfArguments,CONST ULONG_PTR *lpArguments);
1239 WINBASEAPI LONG WINAPI UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo);
1241 typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(struct _EXCEPTION_POINTERS *ExceptionInfo);
1242 typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1244 WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
1246 #define FIBER_FLAG_FLOAT_SWITCH 0x1
1248 WINBASEAPI LPVOID WINAPI CreateFiber(SIZE_T dwStackSize,LPFIBER_START_ROUTINE lpStartAddress,LPVOID lpParameter);
1249 WINBASEAPI LPVOID WINAPI CreateFiberEx(SIZE_T dwStackCommitSize,SIZE_T dwStackReserveSize,DWORD dwFlags,LPFIBER_START_ROUTINE lpStartAddress,LPVOID lpParameter);
1250 WINBASEAPI VOID WINAPI DeleteFiber(LPVOID lpFiber);
1251 WINBASEAPI LPVOID WINAPI ConvertThreadToFiber(LPVOID lpParameter);
1252 WINBASEAPI LPVOID WINAPI ConvertThreadToFiberEx(LPVOID lpParameter,DWORD dwFlags);
1253 WINBASEAPI WINBOOL WINAPI ConvertFiberToThread(VOID);
1254 WINBASEAPI VOID WINAPI SwitchToFiber(LPVOID lpFiber);
1255 WINBASEAPI WINBOOL WINAPI SwitchToThread(VOID);
1256 WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);
1257 WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE hProcess,LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);
1258 WINBASEAPI HANDLE WINAPI GetCurrentThread(VOID);
1259 WINBASEAPI DWORD WINAPI GetCurrentThreadId(VOID);
1260 WINBASEAPI WINBOOL WINAPI SetThreadStackGuarantee (PULONG StackSizeInBytes);
1261 WINBASEAPI DWORD WINAPI GetProcessIdOfThread(HANDLE Thread);
1262 WINBASEAPI DWORD WINAPI GetThreadId(HANDLE Thread);
1263 WINBASEAPI DWORD WINAPI GetProcessId(HANDLE Process);
1264 WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber(VOID);
1265 WINBASEAPI DWORD_PTR WINAPI SetThreadAffinityMask(HANDLE hThread,DWORD_PTR dwThreadAffinityMask);
1266 WINBASEAPI DWORD WINAPI SetThreadIdealProcessor(HANDLE hThread,DWORD dwIdealProcessor);
1267 WINBASEAPI WINBOOL WINAPI SetProcessPriorityBoost(HANDLE hProcess,WINBOOL bDisablePriorityBoost);
1268 WINBASEAPI WINBOOL WINAPI GetProcessPriorityBoost(HANDLE hProcess,PBOOL pDisablePriorityBoost);
1269 WINBASEAPI WINBOOL WINAPI RequestWakeupLatency(LATENCY_TIME latency);
1270 WINBASEAPI WINBOOL WINAPI IsSystemResumeAutomatic(VOID);
1271 WINBASEAPI HANDLE WINAPI OpenThread(DWORD dwDesiredAccess,WINBOOL bInheritHandle,DWORD dwThreadId);
1272 WINBASEAPI WINBOOL WINAPI SetThreadPriority(HANDLE hThread,int nPriority);
1273 WINBASEAPI WINBOOL WINAPI SetThreadPriorityBoost(HANDLE hThread,WINBOOL bDisablePriorityBoost);
1274 WINBASEAPI WINBOOL WINAPI GetThreadPriorityBoost(HANDLE hThread,PBOOL pDisablePriorityBoost);
1275 WINBASEAPI int WINAPI GetThreadPriority(HANDLE hThread);
1276 WINBASEAPI WINBOOL WINAPI GetThreadTimes(HANDLE hThread,LPFILETIME lpCreationTime,LPFILETIME lpExitTime,LPFILETIME lpKernelTime,LPFILETIME lpUserTime);
1277 WINBASEAPI WINBOOL WINAPI GetThreadIOPendingFlag(HANDLE hThread,PBOOL lpIOIsPending);
1278 WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitThread(DWORD dwExitCode);
1279 WINBASEAPI WINBOOL WINAPI TerminateThread(HANDLE hThread,DWORD dwExitCode);
1280 WINBASEAPI WINBOOL WINAPI GetExitCodeThread(HANDLE hThread,LPDWORD lpExitCode);
1281 WINBASEAPI WINBOOL WINAPI GetThreadSelectorEntry(HANDLE hThread,DWORD dwSelector,LPLDT_ENTRY lpSelectorEntry);
1282 WINBASEAPI EXECUTION_STATE WINAPI SetThreadExecutionState(EXECUTION_STATE esFlags);
1283 WINBASEAPI DWORD WINAPI GetLastError(VOID);
1284 WINBASEAPI VOID WINAPI SetLastError(DWORD dwErrCode);
1286 #ifndef RC_INVOKED
1287 #ifdef WINBASE_DECLARE_RESTORE_LAST_ERROR
1288 WINBASEAPI VOID WINAPI RestoreLastError(DWORD dwErrCode);
1290 typedef VOID (WINAPI *PRESTORE_LAST_ERROR)(DWORD);
1292 #define RESTORE_LAST_ERROR_NAME_A "RestoreLastError"
1293 #define RESTORE_LAST_ERROR_NAME_W L"RestoreLastError"
1294 #define RESTORE_LAST_ERROR_NAME TEXT("RestoreLastError")
1295 #endif
1296 #endif
1298 #define HasOverlappedIoCompleted(lpOverlapped) (((DWORD)(lpOverlapped)->Internal)!=STATUS_PENDING)
1300 WINBASEAPI WINBOOL WINAPI GetOverlappedResult(HANDLE hFile,LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred,WINBOOL bWait);
1301 WINBASEAPI HANDLE WINAPI CreateIoCompletionPort(HANDLE FileHandle,HANDLE ExistingCompletionPort,ULONG_PTR CompletionKey,DWORD NumberOfConcurrentThreads);
1302 WINBASEAPI WINBOOL WINAPI GetQueuedCompletionStatus(HANDLE CompletionPort,LPDWORD lpNumberOfBytesTransferred,PULONG_PTR lpCompletionKey,LPOVERLAPPED *lpOverlapped,DWORD dwMilliseconds);
1303 WINBASEAPI WINBOOL WINAPI PostQueuedCompletionStatus(HANDLE CompletionPort,DWORD dwNumberOfBytesTransferred,ULONG_PTR dwCompletionKey,LPOVERLAPPED lpOverlapped);
1305 #define SEM_FAILCRITICALERRORS 0x1
1306 #define SEM_NOGPFAULTERRORBOX 0x2
1307 #define SEM_NOALIGNMENTFAULTEXCEPT 0x4
1308 #define SEM_NOOPENFILEERRORBOX 0x8000
1310 WINBASEAPI UINT WINAPI SetErrorMode(UINT uMode);
1311 WINBASEAPI WINBOOL WINAPI ReadProcessMemory(HANDLE hProcess,LPCVOID lpBaseAddress,LPVOID lpBuffer,SIZE_T nSize,SIZE_T *lpNumberOfBytesRead);
1312 WINBASEAPI WINBOOL WINAPI WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPCVOID lpBuffer,SIZE_T nSize,SIZE_T *lpNumberOfBytesWritten);
1313 WINBASEAPI WINBOOL WINAPI GetThreadContext(HANDLE hThread,LPCONTEXT lpContext);
1314 WINBASEAPI WINBOOL WINAPI SetThreadContext(HANDLE hThread,CONST CONTEXT *lpContext);
1315 WINBASEAPI DWORD WINAPI SuspendThread(HANDLE hThread);
1316 WINBASEAPI DWORD WINAPI ResumeThread(HANDLE hThread);
1318 typedef VOID (WINAPI *PAPCFUNC)(ULONG_PTR dwParam);
1320 WINBASEAPI DWORD WINAPI QueueUserAPC(PAPCFUNC pfnAPC,HANDLE hThread,ULONG_PTR dwData);
1321 WINBASEAPI WINBOOL WINAPI IsDebuggerPresent(VOID);
1322 WINBASEAPI WINBOOL WINAPI CheckRemoteDebuggerPresent(HANDLE hProcess,PBOOL pbDebuggerPresent);
1323 WINBASEAPI VOID WINAPI DebugBreak(VOID);
1324 WINBASEAPI WINBOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT lpDebugEvent,DWORD dwMilliseconds);
1325 WINBASEAPI WINBOOL WINAPI ContinueDebugEvent(DWORD dwProcessId,DWORD dwThreadId,DWORD dwContinueStatus);
1326 WINBASEAPI WINBOOL WINAPI DebugActiveProcess(DWORD dwProcessId);
1327 WINBASEAPI WINBOOL WINAPI DebugActiveProcessStop(DWORD dwProcessId);
1328 WINBASEAPI WINBOOL WINAPI DebugSetProcessKillOnExit(WINBOOL KillOnExit);
1329 WINBASEAPI WINBOOL WINAPI DebugBreakProcess(HANDLE Process);
1330 WINBASEAPI VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1331 WINBASEAPI VOID WINAPI EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1332 WINBASEAPI VOID WINAPI LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1333 WINBASEAPI WINBOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION lpCriticalSection,DWORD dwSpinCount);
1334 WINBASEAPI DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION lpCriticalSection,DWORD dwSpinCount);
1335 WINBASEAPI WINBOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1336 WINBASEAPI VOID WINAPI DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection);
1337 WINBASEAPI WINBOOL WINAPI SetEvent(HANDLE hEvent);
1338 WINBASEAPI WINBOOL WINAPI ResetEvent(HANDLE hEvent);
1339 WINBASEAPI WINBOOL WINAPI PulseEvent(HANDLE hEvent);
1340 WINBASEAPI WINBOOL WINAPI ReleaseSemaphore(HANDLE hSemaphore,LONG lReleaseCount,LPLONG lpPreviousCount);
1341 WINBASEAPI WINBOOL WINAPI ReleaseMutex(HANDLE hMutex);
1342 WINBASEAPI DWORD WINAPI WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds);
1343 WINBASEAPI DWORD WINAPI WaitForMultipleObjects(DWORD nCount,CONST HANDLE *lpHandles,WINBOOL bWaitAll,DWORD dwMilliseconds);
1344 WINBASEAPI VOID WINAPI Sleep(DWORD dwMilliseconds);
1345 WINBASEAPI HGLOBAL WINAPI LoadResource(HMODULE hModule,HRSRC hResInfo);
1346 WINBASEAPI DWORD WINAPI SizeofResource(HMODULE hModule,HRSRC hResInfo);
1347 WINBASEAPI ATOM WINAPI GlobalDeleteAtom(ATOM nAtom);
1348 WINBASEAPI WINBOOL WINAPI InitAtomTable(DWORD nSize);
1349 WINBASEAPI ATOM WINAPI DeleteAtom(ATOM nAtom);
1350 WINBASEAPI UINT WINAPI SetHandleCount(UINT uNumber);
1351 WINBASEAPI DWORD WINAPI GetLogicalDrives(VOID);
1352 WINBASEAPI WINBOOL WINAPI LockFile(HANDLE hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh,DWORD nNumberOfBytesToLockLow,DWORD nNumberOfBytesToLockHigh);
1353 WINBASEAPI WINBOOL WINAPI UnlockFile(HANDLE hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh,DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh);
1354 WINBASEAPI WINBOOL WINAPI LockFileEx(HANDLE hFile,DWORD dwFlags,DWORD dwReserved,DWORD nNumberOfBytesToLockLow,DWORD nNumberOfBytesToLockHigh,LPOVERLAPPED lpOverlapped);
1356 #define LOCKFILE_FAIL_IMMEDIATELY 0x1
1357 #define LOCKFILE_EXCLUSIVE_LOCK 0x2
1359 WINBASEAPI WINBOOL WINAPI UnlockFileEx(HANDLE hFile,DWORD dwReserved,DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh,LPOVERLAPPED lpOverlapped);
1361 typedef struct _BY_HANDLE_FILE_INFORMATION {
1362 DWORD dwFileAttributes;
1363 FILETIME ftCreationTime;
1364 FILETIME ftLastAccessTime;
1365 FILETIME ftLastWriteTime;
1366 DWORD dwVolumeSerialNumber;
1367 DWORD nFileSizeHigh;
1368 DWORD nFileSizeLow;
1369 DWORD nNumberOfLinks;
1370 DWORD nFileIndexHigh;
1371 DWORD nFileIndexLow;
1372 } BY_HANDLE_FILE_INFORMATION,*PBY_HANDLE_FILE_INFORMATION,*LPBY_HANDLE_FILE_INFORMATION;
1374 #ifdef UNICODE
1375 #define SetFileShortName SetFileShortNameW
1376 #else
1377 #define SetFileShortName SetFileShortNameA
1378 #endif
1380 WINBASEAPI WINBOOL WINAPI GetFileInformationByHandle(HANDLE hFile,LPBY_HANDLE_FILE_INFORMATION lpFileInformation);
1381 WINBASEAPI DWORD WINAPI GetFileType(HANDLE hFile);
1382 WINBASEAPI DWORD WINAPI GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh);
1383 WINBASEAPI WINBOOL WINAPI GetFileSizeEx(HANDLE hFile,PLARGE_INTEGER lpFileSize);
1384 WINBASEAPI HANDLE WINAPI GetStdHandle(DWORD nStdHandle);
1385 WINBASEAPI WINBOOL WINAPI SetStdHandle(DWORD nStdHandle,HANDLE hHandle);
1386 WINBASEAPI WINBOOL WINAPI WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped);
1387 WINBASEAPI WINBOOL WINAPI ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped);
1388 WINBASEAPI WINBOOL WINAPI FlushFileBuffers(HANDLE hFile);
1389 WINBASEAPI WINBOOL WINAPI DeviceIoControl(HANDLE hDevice,DWORD dwIoControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped);
1390 WINBASEAPI WINBOOL WINAPI RequestDeviceWakeup(HANDLE hDevice);
1391 WINBASEAPI WINBOOL WINAPI CancelDeviceWakeupRequest(HANDLE hDevice);
1392 WINBASEAPI WINBOOL WINAPI GetDevicePowerState(HANDLE hDevice,WINBOOL *pfOn);
1393 WINBASEAPI WINBOOL WINAPI SetMessageWaitingIndicator(HANDLE hMsgIndicator,ULONG ulMsgCount);
1394 WINBASEAPI WINBOOL WINAPI SetEndOfFile(HANDLE hFile);
1395 WINBASEAPI DWORD WINAPI SetFilePointer(HANDLE hFile,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod);
1396 WINBASEAPI WINBOOL WINAPI SetFilePointerEx(HANDLE hFile,LARGE_INTEGER liDistanceToMove,PLARGE_INTEGER lpNewFilePointer,DWORD dwMoveMethod);
1397 WINBASEAPI WINBOOL WINAPI FindClose(HANDLE hFindFile);
1398 WINBASEAPI WINBOOL WINAPI GetFileTime(HANDLE hFile,LPFILETIME lpCreationTime,LPFILETIME lpLastAccessTime,LPFILETIME lpLastWriteTime);
1399 WINBASEAPI WINBOOL WINAPI SetFileTime(HANDLE hFile,CONST FILETIME *lpCreationTime,CONST FILETIME *lpLastAccessTime,CONST FILETIME *lpLastWriteTime);
1400 WINBASEAPI WINBOOL WINAPI SetFileValidData(HANDLE hFile,LONGLONG ValidDataLength);
1401 WINBASEAPI WINBOOL WINAPI SetFileShortNameA(HANDLE hFile,LPCSTR lpShortName);
1402 WINBASEAPI WINBOOL WINAPI SetFileShortNameW(HANDLE hFile,LPCWSTR lpShortName);
1403 WINBASEAPI WINBOOL WINAPI CloseHandle(HANDLE hObject);
1404 WINBASEAPI WINBOOL WINAPI DuplicateHandle(HANDLE hSourceProcessHandle,HANDLE hSourceHandle,HANDLE hTargetProcessHandle,LPHANDLE lpTargetHandle,DWORD dwDesiredAccess,WINBOOL bInheritHandle,DWORD dwOptions);
1405 WINBASEAPI WINBOOL WINAPI GetHandleInformation(HANDLE hObject,LPDWORD lpdwFlags);
1406 WINBASEAPI WINBOOL WINAPI SetHandleInformation(HANDLE hObject,DWORD dwMask,DWORD dwFlags);
1408 #define HANDLE_FLAG_INHERIT 0x1
1409 #define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x2
1411 #define HINSTANCE_ERROR 32
1413 WINBASEAPI DWORD WINAPI LoadModule(LPCSTR lpModuleName,LPVOID lpParameterBlock);
1414 WINBASEAPI UINT WINAPI WinExec(LPCSTR lpCmdLine,UINT uCmdShow);
1415 WINBASEAPI WINBOOL WINAPI ClearCommBreak(HANDLE hFile);
1416 WINBASEAPI WINBOOL WINAPI ClearCommError(HANDLE hFile,LPDWORD lpErrors,LPCOMSTAT lpStat);
1417 WINBASEAPI WINBOOL WINAPI SetupComm(HANDLE hFile,DWORD dwInQueue,DWORD dwOutQueue);
1418 WINBASEAPI WINBOOL WINAPI EscapeCommFunction(HANDLE hFile,DWORD dwFunc);
1419 WINBASEAPI WINBOOL WINAPI GetCommConfig(HANDLE hCommDev,LPCOMMCONFIG lpCC,LPDWORD lpdwSize);
1420 WINBASEAPI WINBOOL WINAPI GetCommMask(HANDLE hFile,LPDWORD lpEvtMask);
1421 WINBASEAPI WINBOOL WINAPI GetCommProperties(HANDLE hFile,LPCOMMPROP lpCommProp);
1422 WINBASEAPI WINBOOL WINAPI GetCommModemStatus(HANDLE hFile,LPDWORD lpModemStat);
1423 WINBASEAPI WINBOOL WINAPI GetCommState(HANDLE hFile,LPDCB lpDCB);
1424 WINBASEAPI WINBOOL WINAPI GetCommTimeouts(HANDLE hFile,LPCOMMTIMEOUTS lpCommTimeouts);
1425 WINBASEAPI WINBOOL WINAPI PurgeComm(HANDLE hFile,DWORD dwFlags);
1426 WINBASEAPI WINBOOL WINAPI SetCommBreak(HANDLE hFile);
1427 WINBASEAPI WINBOOL WINAPI SetCommConfig(HANDLE hCommDev,LPCOMMCONFIG lpCC,DWORD dwSize);
1428 WINBASEAPI WINBOOL WINAPI SetCommMask(HANDLE hFile,DWORD dwEvtMask);
1429 WINBASEAPI WINBOOL WINAPI SetCommState(HANDLE hFile,LPDCB lpDCB);
1430 WINBASEAPI WINBOOL WINAPI SetCommTimeouts(HANDLE hFile,LPCOMMTIMEOUTS lpCommTimeouts);
1431 WINBASEAPI WINBOOL WINAPI TransmitCommChar(HANDLE hFile,char cChar);
1432 WINBASEAPI WINBOOL WINAPI WaitCommEvent(HANDLE hFile,LPDWORD lpEvtMask,LPOVERLAPPED lpOverlapped);
1433 WINBASEAPI DWORD WINAPI SetTapePosition(HANDLE hDevice,DWORD dwPositionMethod,DWORD dwPartition,DWORD dwOffsetLow,DWORD dwOffsetHigh,WINBOOL bImmediate);
1434 WINBASEAPI DWORD WINAPI GetTapePosition(HANDLE hDevice,DWORD dwPositionType,LPDWORD lpdwPartition,LPDWORD lpdwOffsetLow,LPDWORD lpdwOffsetHigh);
1435 WINBASEAPI DWORD WINAPI PrepareTape(HANDLE hDevice,DWORD dwOperation,WINBOOL bImmediate);
1436 WINBASEAPI DWORD WINAPI EraseTape(HANDLE hDevice,DWORD dwEraseType,WINBOOL bImmediate);
1437 WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE hDevice,DWORD dwPartitionMethod,DWORD dwCount,DWORD dwSize);
1438 WINBASEAPI DWORD WINAPI WriteTapemark(HANDLE hDevice,DWORD dwTapemarkType,DWORD dwTapemarkCount,WINBOOL bImmediate);
1439 WINBASEAPI DWORD WINAPI GetTapeStatus(HANDLE hDevice);
1440 WINBASEAPI DWORD WINAPI GetTapeParameters(HANDLE hDevice,DWORD dwOperation,LPDWORD lpdwSize,LPVOID lpTapeInformation);
1442 #define GET_TAPE_MEDIA_INFORMATION 0
1443 #define GET_TAPE_DRIVE_INFORMATION 1
1445 WINBASEAPI DWORD WINAPI SetTapeParameters(HANDLE hDevice,DWORD dwOperation,LPVOID lpTapeInformation);
1447 #define SET_TAPE_MEDIA_INFORMATION 0
1448 #define SET_TAPE_DRIVE_INFORMATION 1
1450 WINBASEAPI WINBOOL WINAPI Beep(DWORD dwFreq,DWORD dwDuration);
1451 WINBASEAPI int WINAPI MulDiv(int nNumber,int nNumerator,int nDenominator);
1452 WINBASEAPI VOID WINAPI GetSystemTime(LPSYSTEMTIME lpSystemTime);
1453 WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime);
1454 WINBASEAPI WINBOOL WINAPI SetSystemTime(CONST SYSTEMTIME *lpSystemTime);
1455 WINBASEAPI VOID WINAPI GetLocalTime(LPSYSTEMTIME lpSystemTime);
1456 WINBASEAPI WINBOOL WINAPI SetLocalTime(CONST SYSTEMTIME *lpSystemTime);
1457 WINBASEAPI VOID WINAPI GetSystemInfo(LPSYSTEM_INFO lpSystemInfo);
1458 WINBASEAPI WINBOOL WINAPI SetSystemFileCacheSize(SIZE_T MinimumFileCacheSize,SIZE_T MaximumFileCacheSize,DWORD Flags);
1459 WINBASEAPI WINBOOL WINAPI GetSystemFileCacheSize(PSIZE_T lpMinimumFileCacheSize,PSIZE_T lpMaximumFileCacheSize,PDWORD lpFlags);
1460 WINBASEAPI WINBOOL WINAPI GetSystemRegistryQuota(PDWORD pdwQuotaAllowed,PDWORD pdwQuotaUsed);
1461 WINBOOL WINAPI GetSystemTimes(LPFILETIME lpIdleTime,LPFILETIME lpKernelTime,LPFILETIME lpUserTime);
1462 WINBASEAPI VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO lpSystemInfo);
1463 WINBASEAPI WINBOOL WINAPI IsProcessorFeaturePresent(DWORD ProcessorFeature);
1465 typedef struct _TIME_ZONE_INFORMATION {
1466 LONG Bias;
1467 WCHAR StandardName[32];
1468 SYSTEMTIME StandardDate;
1469 LONG StandardBias;
1470 WCHAR DaylightName[32];
1471 SYSTEMTIME DaylightDate;
1472 LONG DaylightBias;
1473 } TIME_ZONE_INFORMATION,*PTIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION;
1475 #ifdef UNICODE
1476 #define FormatMessage FormatMessageW
1477 #else
1478 #define FormatMessage FormatMessageA
1479 #endif
1481 WINBASEAPI WINBOOL WINAPI SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION lpTimeZoneInformation,LPSYSTEMTIME lpUniversalTime,LPSYSTEMTIME lpLocalTime);
1482 WINBASEAPI WINBOOL WINAPI TzSpecificLocalTimeToSystemTime(LPTIME_ZONE_INFORMATION lpTimeZoneInformation,LPSYSTEMTIME lpLocalTime,LPSYSTEMTIME lpUniversalTime);
1483 WINBASEAPI DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation);
1484 WINBASEAPI WINBOOL WINAPI SetTimeZoneInformation(CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation);
1485 WINBASEAPI WINBOOL WINAPI SystemTimeToFileTime(CONST SYSTEMTIME *lpSystemTime,LPFILETIME lpFileTime);
1486 WINBASEAPI WINBOOL WINAPI FileTimeToLocalFileTime(CONST FILETIME *lpFileTime,LPFILETIME lpLocalFileTime);
1487 WINBASEAPI WINBOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *lpLocalFileTime,LPFILETIME lpFileTime);
1488 WINBASEAPI WINBOOL WINAPI FileTimeToSystemTime(CONST FILETIME *lpFileTime,LPSYSTEMTIME lpSystemTime);
1489 WINBASEAPI LONG WINAPI CompareFileTime(CONST FILETIME *lpFileTime1,CONST FILETIME *lpFileTime2);
1490 WINBASEAPI WINBOOL WINAPI FileTimeToDosDateTime(CONST FILETIME *lpFileTime,LPWORD lpFatDate,LPWORD lpFatTime);
1491 WINBASEAPI WINBOOL WINAPI DosDateTimeToFileTime(WORD wFatDate,WORD wFatTime,LPFILETIME lpFileTime);
1492 WINBASEAPI DWORD WINAPI GetTickCount(VOID);
1493 WINBASEAPI WINBOOL WINAPI SetSystemTimeAdjustment(DWORD dwTimeAdjustment,WINBOOL bTimeAdjustmentDisabled);
1494 WINBASEAPI WINBOOL WINAPI GetSystemTimeAdjustment(PDWORD lpTimeAdjustment,PDWORD lpTimeIncrement,PBOOL lpTimeAdjustmentDisabled);
1495 WINBASEAPI DWORD WINAPI FormatMessageA(DWORD dwFlags,LPCVOID lpSource,DWORD dwMessageId,DWORD dwLanguageId,LPSTR lpBuffer,DWORD nSize,va_list *Arguments);
1496 WINBASEAPI DWORD WINAPI FormatMessageW(DWORD dwFlags,LPCVOID lpSource,DWORD dwMessageId,DWORD dwLanguageId,LPWSTR lpBuffer,DWORD nSize,va_list *Arguments);
1498 #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x100
1499 #define FORMAT_MESSAGE_IGNORE_INSERTS 0x200
1500 #define FORMAT_MESSAGE_FROM_STRING 0x400
1501 #define FORMAT_MESSAGE_FROM_HMODULE 0x800
1502 #define FORMAT_MESSAGE_FROM_SYSTEM 0x1000
1503 #define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x2000
1504 #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0xff
1506 #ifdef UNICODE
1507 #define CreateMailslot CreateMailslotW
1508 #define EncryptFile EncryptFileW
1509 #define DecryptFile DecryptFileW
1510 #define FileEncryptionStatus FileEncryptionStatusW
1511 #else
1512 #define CreateMailslot CreateMailslotA
1513 #define EncryptFile EncryptFileA
1514 #define DecryptFile DecryptFileA
1515 #define FileEncryptionStatus FileEncryptionStatusA
1516 #endif
1518 WINBASEAPI WINBOOL WINAPI CreatePipe(PHANDLE hReadPipe,PHANDLE hWritePipe,LPSECURITY_ATTRIBUTES lpPipeAttributes,DWORD nSize);
1519 WINBASEAPI WINBOOL WINAPI ConnectNamedPipe(HANDLE hNamedPipe,LPOVERLAPPED lpOverlapped);
1520 WINBASEAPI WINBOOL WINAPI DisconnectNamedPipe(HANDLE hNamedPipe);
1521 WINBASEAPI WINBOOL WINAPI SetNamedPipeHandleState(HANDLE hNamedPipe,LPDWORD lpMode,LPDWORD lpMaxCollectionCount,LPDWORD lpCollectDataTimeout);
1522 WINBASEAPI WINBOOL WINAPI GetNamedPipeInfo(HANDLE hNamedPipe,LPDWORD lpFlags,LPDWORD lpOutBufferSize,LPDWORD lpInBufferSize,LPDWORD lpMaxInstances);
1523 WINBASEAPI WINBOOL WINAPI PeekNamedPipe(HANDLE hNamedPipe,LPVOID lpBuffer,DWORD nBufferSize,LPDWORD lpBytesRead,LPDWORD lpTotalBytesAvail,LPDWORD lpBytesLeftThisMessage);
1524 WINBASEAPI WINBOOL WINAPI TransactNamedPipe(HANDLE hNamedPipe,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesRead,LPOVERLAPPED lpOverlapped);
1525 WINBASEAPI HANDLE WINAPI CreateMailslotA(LPCSTR lpName,DWORD nMaxMessageSize,DWORD lReadTimeout,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
1526 WINBASEAPI HANDLE WINAPI CreateMailslotW(LPCWSTR lpName,DWORD nMaxMessageSize,DWORD lReadTimeout,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
1527 WINBASEAPI WINBOOL WINAPI GetMailslotInfo(HANDLE hMailslot,LPDWORD lpMaxMessageSize,LPDWORD lpNextSize,LPDWORD lpMessageCount,LPDWORD lpReadTimeout);
1528 WINBASEAPI WINBOOL WINAPI SetMailslotInfo(HANDLE hMailslot,DWORD lReadTimeout);
1529 WINBASEAPI LPVOID WINAPI MapViewOfFile(HANDLE hFileMappingObject,DWORD dwDesiredAccess,DWORD dwFileOffsetHigh,DWORD dwFileOffsetLow,SIZE_T dwNumberOfBytesToMap);
1530 WINBASEAPI WINBOOL WINAPI FlushViewOfFile(LPCVOID lpBaseAddress,SIZE_T dwNumberOfBytesToFlush);
1531 WINBASEAPI WINBOOL WINAPI UnmapViewOfFile(LPCVOID lpBaseAddress);
1532 WINADVAPI WINBOOL WINAPI EncryptFileA(LPCSTR lpFileName);
1533 WINADVAPI WINBOOL WINAPI EncryptFileW(LPCWSTR lpFileName);
1534 WINADVAPI WINBOOL WINAPI DecryptFileA(LPCSTR lpFileName,DWORD dwReserved);
1535 WINADVAPI WINBOOL WINAPI DecryptFileW(LPCWSTR lpFileName,DWORD dwReserved);
1537 #define FILE_ENCRYPTABLE 0
1538 #define FILE_IS_ENCRYPTED 1
1539 #define FILE_SYSTEM_ATTR 2
1540 #define FILE_ROOT_DIR 3
1541 #define FILE_SYSTEM_DIR 4
1542 #define FILE_UNKNOWN 5
1543 #define FILE_SYSTEM_NOT_SUPPORT 6
1544 #define FILE_USER_DISALLOWED 7
1545 #define FILE_READ_ONLY 8
1546 #define FILE_DIR_DISALLOWED 9
1548 WINADVAPI WINBOOL WINAPI FileEncryptionStatusA(LPCSTR lpFileName,LPDWORD lpStatus);
1549 WINADVAPI WINBOOL WINAPI FileEncryptionStatusW(LPCWSTR lpFileName,LPDWORD lpStatus);
1551 #define EFS_USE_RECOVERY_KEYS (0x1)
1553 typedef DWORD (WINAPI *PFE_EXPORT_FUNC)(PBYTE pbData,PVOID pvCallbackContext,ULONG ulLength);
1554 typedef DWORD (WINAPI *PFE_IMPORT_FUNC)(PBYTE pbData,PVOID pvCallbackContext,PULONG ulLength);
1556 #define CREATE_FOR_IMPORT (1)
1557 #define CREATE_FOR_DIR (2)
1558 #define OVERWRITE_HIDDEN (4)
1560 #ifdef UNICODE
1561 #define OpenEncryptedFileRaw OpenEncryptedFileRawW
1562 #define lstrcmp lstrcmpW
1563 #define lstrcmpi lstrcmpiW
1564 #define lstrcpyn lstrcpynW
1565 #define lstrcpy lstrcpyW
1566 #define lstrcat lstrcatW
1567 #define lstrlen lstrlenW
1568 #else
1569 #define OpenEncryptedFileRaw OpenEncryptedFileRawA
1570 #define lstrcmp lstrcmpA
1571 #define lstrcmpi lstrcmpiA
1572 #define lstrcpyn lstrcpynA
1573 #define lstrcpy lstrcpyA
1574 #define lstrcat lstrcatA
1575 #define lstrlen lstrlenA
1576 #endif
1578 WINADVAPI DWORD WINAPI OpenEncryptedFileRawA(LPCSTR lpFileName,ULONG ulFlags,PVOID *pvContext);
1579 WINADVAPI DWORD WINAPI OpenEncryptedFileRawW(LPCWSTR lpFileName,ULONG ulFlags,PVOID *pvContext);
1580 WINADVAPI DWORD WINAPI ReadEncryptedFileRaw(PFE_EXPORT_FUNC pfExportCallback,PVOID pvCallbackContext,PVOID pvContext);
1581 WINADVAPI DWORD WINAPI WriteEncryptedFileRaw(PFE_IMPORT_FUNC pfImportCallback,PVOID pvCallbackContext,PVOID pvContext);
1582 WINADVAPI VOID WINAPI CloseEncryptedFileRaw(PVOID pvContext);
1583 WINBASEAPI int WINAPI lstrcmpA(LPCSTR lpString1,LPCSTR lpString2);
1584 WINBASEAPI int WINAPI lstrcmpW(LPCWSTR lpString1,LPCWSTR lpString2);
1585 WINBASEAPI int WINAPI lstrcmpiA(LPCSTR lpString1,LPCSTR lpString2);
1586 WINBASEAPI int WINAPI lstrcmpiW(LPCWSTR lpString1,LPCWSTR lpString2);
1587 WINBASEAPI LPSTR WINAPI lstrcpynA(LPSTR lpString1,LPCSTR lpString2,int iMaxLength);
1588 WINBASEAPI LPWSTR WINAPI lstrcpynW(LPWSTR lpString1,LPCWSTR lpString2,int iMaxLength);
1589 WINBASEAPI LPSTR WINAPI lstrcpyA(LPSTR lpString1,LPCSTR lpString2);
1590 WINBASEAPI LPWSTR WINAPI lstrcpyW(LPWSTR lpString1,LPCWSTR lpString2);
1591 WINBASEAPI LPSTR WINAPI lstrcatA(LPSTR lpString1,LPCSTR lpString2);
1592 WINBASEAPI LPWSTR WINAPI lstrcatW(LPWSTR lpString1,LPCWSTR lpString2);
1593 WINBASEAPI int WINAPI lstrlenA(LPCSTR lpString);
1594 WINBASEAPI int WINAPI lstrlenW(LPCWSTR lpString);
1595 WINBASEAPI HFILE WINAPI OpenFile(LPCSTR lpFileName,LPOFSTRUCT lpReOpenBuff,UINT uStyle);
1596 WINBASEAPI HFILE WINAPI _lopen(LPCSTR lpPathName,int iReadWrite);
1597 WINBASEAPI HFILE WINAPI _lcreat(LPCSTR lpPathName,int iAttribute);
1598 WINBASEAPI UINT WINAPI _lread(HFILE hFile,LPVOID lpBuffer,UINT uBytes);
1599 WINBASEAPI UINT WINAPI _lwrite(HFILE hFile,LPCCH lpBuffer,UINT uBytes);
1600 WINBASEAPI long WINAPI _hread(HFILE hFile,LPVOID lpBuffer,long lBytes);
1601 WINBASEAPI long WINAPI _hwrite(HFILE hFile,LPCCH lpBuffer,long lBytes);
1602 WINBASEAPI HFILE WINAPI _lclose(HFILE hFile);
1603 WINBASEAPI LONG WINAPI _llseek(HFILE hFile,LONG lOffset,int iOrigin);
1604 WINADVAPI WINBOOL WINAPI IsTextUnicode(CONST VOID *lpv,int iSize,LPINT lpiResult);
1606 #define FLS_OUT_OF_INDEXES ((DWORD)0xffffffff)
1608 WINBASEAPI DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION lpCallback);
1609 WINBASEAPI PVOID WINAPI FlsGetValue(DWORD dwFlsIndex);
1610 WINBASEAPI WINBOOL WINAPI FlsSetValue(DWORD dwFlsIndex,PVOID lpFlsData);
1611 WINBASEAPI WINBOOL WINAPI FlsFree(DWORD dwFlsIndex);
1613 #define TLS_OUT_OF_INDEXES ((DWORD)0xffffffff)
1615 WINBASEAPI DWORD WINAPI TlsAlloc(VOID);
1616 WINBASEAPI LPVOID WINAPI TlsGetValue(DWORD dwTlsIndex);
1617 WINBASEAPI WINBOOL WINAPI TlsSetValue(DWORD dwTlsIndex,LPVOID lpTlsValue);
1618 WINBASEAPI WINBOOL WINAPI TlsFree(DWORD dwTlsIndex);
1620 typedef VOID (WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD dwErrorCode,DWORD dwNumberOfBytesTransfered,LPOVERLAPPED lpOverlapped);
1622 WINBASEAPI DWORD WINAPI SleepEx(DWORD dwMilliseconds,WINBOOL bAlertable);
1623 WINBASEAPI DWORD WINAPI WaitForSingleObjectEx(HANDLE hHandle,DWORD dwMilliseconds,WINBOOL bAlertable);
1624 WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx(DWORD nCount,CONST HANDLE *lpHandles,WINBOOL bWaitAll,DWORD dwMilliseconds,WINBOOL bAlertable);
1625 WINBASEAPI DWORD WINAPI SignalObjectAndWait(HANDLE hObjectToSignal,HANDLE hObjectToWaitOn,DWORD dwMilliseconds,WINBOOL bAlertable);
1626 WINBASEAPI WINBOOL WINAPI ReadFileEx(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPOVERLAPPED lpOverlapped,LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1627 WINBASEAPI WINBOOL WINAPI WriteFileEx(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPOVERLAPPED lpOverlapped,LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1628 WINBASEAPI WINBOOL WINAPI BackupRead(HANDLE hFile,LPBYTE lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,WINBOOL bAbort,WINBOOL bProcessSecurity,LPVOID *lpContext);
1629 WINBASEAPI WINBOOL WINAPI BackupSeek(HANDLE hFile,DWORD dwLowBytesToSeek,DWORD dwHighBytesToSeek,LPDWORD lpdwLowByteSeeked,LPDWORD lpdwHighByteSeeked,LPVOID *lpContext);
1630 WINBASEAPI WINBOOL WINAPI BackupWrite(HANDLE hFile,LPBYTE lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,WINBOOL bAbort,WINBOOL bProcessSecurity,LPVOID *lpContext);
1632 typedef struct _WIN32_STREAM_ID {
1633 DWORD dwStreamId;
1634 DWORD dwStreamAttributes;
1635 LARGE_INTEGER Size;
1636 DWORD dwStreamNameSize;
1637 WCHAR cStreamName[ANYSIZE_ARRAY];
1638 } WIN32_STREAM_ID,*LPWIN32_STREAM_ID;
1640 #define BACKUP_INVALID 0x0
1641 #define BACKUP_DATA 0x1
1642 #define BACKUP_EA_DATA 0x2
1643 #define BACKUP_SECURITY_DATA 0x3
1644 #define BACKUP_ALTERNATE_DATA 0x4
1645 #define BACKUP_LINK 0x5
1646 #define BACKUP_PROPERTY_DATA 0x6
1647 #define BACKUP_OBJECT_ID 0x7
1648 #define BACKUP_REPARSE_DATA 0x8
1649 #define BACKUP_SPARSE_BLOCK 0x9
1651 #define STREAM_NORMAL_ATTRIBUTE 0x0
1652 #define STREAM_MODIFIED_WHEN_READ 0x1
1653 #define STREAM_CONTAINS_SECURITY 0x2
1654 #define STREAM_CONTAINS_PROPERTIES 0x4
1655 #define STREAM_SPARSE_ATTRIBUTE 0x8
1657 WINBASEAPI WINBOOL WINAPI ReadFileScatter(HANDLE hFile,FILE_SEGMENT_ELEMENT aSegmentArray[],DWORD nNumberOfBytesToRead,LPDWORD lpReserved,LPOVERLAPPED lpOverlapped);
1658 WINBASEAPI WINBOOL WINAPI WriteFileGather(HANDLE hFile,FILE_SEGMENT_ELEMENT aSegmentArray[],DWORD nNumberOfBytesToWrite,LPDWORD lpReserved,LPOVERLAPPED lpOverlapped);
1660 #define STARTF_USESHOWWINDOW 0x1
1661 #define STARTF_USESIZE 0x2
1662 #define STARTF_USEPOSITION 0x4
1663 #define STARTF_USECOUNTCHARS 0x8
1664 #define STARTF_USEFILLATTRIBUTE 0x10
1665 #define STARTF_RUNFULLSCREEN 0x20
1666 #define STARTF_FORCEONFEEDBACK 0x40
1667 #define STARTF_FORCEOFFFEEDBACK 0x80
1668 #define STARTF_USESTDHANDLES 0x100
1670 #define STARTF_USEHOTKEY 0x200
1672 typedef struct _STARTUPINFOA {
1673 DWORD cb;
1674 LPSTR lpReserved;
1675 LPSTR lpDesktop;
1676 LPSTR lpTitle;
1677 DWORD dwX;
1678 DWORD dwY;
1679 DWORD dwXSize;
1680 DWORD dwYSize;
1681 DWORD dwXCountChars;
1682 DWORD dwYCountChars;
1683 DWORD dwFillAttribute;
1684 DWORD dwFlags;
1685 WORD wShowWindow;
1686 WORD cbReserved2;
1687 LPBYTE lpReserved2;
1688 HANDLE hStdInput;
1689 HANDLE hStdOutput;
1690 HANDLE hStdError;
1691 } STARTUPINFOA,*LPSTARTUPINFOA;
1693 typedef struct _STARTUPINFOW {
1694 DWORD cb;
1695 LPWSTR lpReserved;
1696 LPWSTR lpDesktop;
1697 LPWSTR lpTitle;
1698 DWORD dwX;
1699 DWORD dwY;
1700 DWORD dwXSize;
1701 DWORD dwYSize;
1702 DWORD dwXCountChars;
1703 DWORD dwYCountChars;
1704 DWORD dwFillAttribute;
1705 DWORD dwFlags;
1706 WORD wShowWindow;
1707 WORD cbReserved2;
1708 LPBYTE lpReserved2;
1709 HANDLE hStdInput;
1710 HANDLE hStdOutput;
1711 HANDLE hStdError;
1712 } STARTUPINFOW,*LPSTARTUPINFOW;
1714 #ifdef UNICODE
1715 typedef STARTUPINFOW STARTUPINFO;
1716 typedef LPSTARTUPINFOW LPSTARTUPINFO;
1717 #else
1718 typedef STARTUPINFOA STARTUPINFO;
1719 typedef LPSTARTUPINFOA LPSTARTUPINFO;
1720 #endif
1722 #define SHUTDOWN_NORETRY 0x1
1724 typedef struct _WIN32_FIND_DATAA {
1725 DWORD dwFileAttributes;
1726 FILETIME ftCreationTime;
1727 FILETIME ftLastAccessTime;
1728 FILETIME ftLastWriteTime;
1729 DWORD nFileSizeHigh;
1730 DWORD nFileSizeLow;
1731 DWORD dwReserved0;
1732 DWORD dwReserved1;
1733 CHAR cFileName[MAX_PATH];
1734 CHAR cAlternateFileName[14];
1735 } WIN32_FIND_DATAA,*PWIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
1737 typedef struct _WIN32_FIND_DATAW {
1738 DWORD dwFileAttributes;
1739 FILETIME ftCreationTime;
1740 FILETIME ftLastAccessTime;
1741 FILETIME ftLastWriteTime;
1742 DWORD nFileSizeHigh;
1743 DWORD nFileSizeLow;
1744 DWORD dwReserved0;
1745 DWORD dwReserved1;
1746 WCHAR cFileName[MAX_PATH];
1747 WCHAR cAlternateFileName[14];
1748 } WIN32_FIND_DATAW,*PWIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
1750 #ifdef UNICODE
1751 typedef WIN32_FIND_DATAW WIN32_FIND_DATA;
1752 typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA;
1753 typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA;
1754 #else
1755 typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
1756 typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA;
1757 typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA;
1758 #endif
1760 typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
1761 DWORD dwFileAttributes;
1762 FILETIME ftCreationTime;
1763 FILETIME ftLastAccessTime;
1764 FILETIME ftLastWriteTime;
1765 DWORD nFileSizeHigh;
1766 DWORD nFileSizeLow;
1767 } WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA;
1769 #ifdef UNICODE
1770 #define CreateMutex CreateMutexW
1771 #define OpenMutex OpenMutexW
1772 #define CreateEvent CreateEventW
1773 #define OpenEvent OpenEventW
1774 #define CreateSemaphore CreateSemaphoreW
1775 #define OpenSemaphore OpenSemaphoreW
1776 #else
1777 #define CreateMutex CreateMutexA
1778 #define OpenMutex OpenMutexA
1779 #define CreateEvent CreateEventA
1780 #define OpenEvent OpenEventA
1781 #define CreateSemaphore CreateSemaphoreA
1782 #define OpenSemaphore OpenSemaphoreA
1783 #endif
1785 WINBASEAPI HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES lpMutexAttributes,WINBOOL bInitialOwner,LPCSTR lpName);
1786 WINBASEAPI HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES lpMutexAttributes,WINBOOL bInitialOwner,LPCWSTR lpName);
1787 WINBASEAPI HANDLE WINAPI OpenMutexA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1788 WINBASEAPI HANDLE WINAPI OpenMutexW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1789 WINBASEAPI HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes,WINBOOL bManualReset,WINBOOL bInitialState,LPCSTR lpName);
1790 WINBASEAPI HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES lpEventAttributes,WINBOOL bManualReset,WINBOOL bInitialState,LPCWSTR lpName);
1791 WINBASEAPI HANDLE WINAPI OpenEventA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1792 WINBASEAPI HANDLE WINAPI OpenEventW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1793 WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,LONG lInitialCount,LONG lMaximumCount,LPCSTR lpName);
1794 WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,LONG lInitialCount,LONG lMaximumCount,LPCWSTR lpName);
1795 WINBASEAPI HANDLE WINAPI OpenSemaphoreA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1796 WINBASEAPI HANDLE WINAPI OpenSemaphoreW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1798 typedef VOID (WINAPI *PTIMERAPCROUTINE)(LPVOID lpArgToCompletionRoutine,DWORD dwTimerLowValue,DWORD dwTimerHighValue);
1800 #ifdef UNICODE
1801 #define CreateWaitableTimer CreateWaitableTimerW
1802 #define OpenWaitableTimer OpenWaitableTimerW
1803 #define CreateFileMapping CreateFileMappingW
1804 #define OpenFileMapping OpenFileMappingW
1805 #define GetLogicalDriveStrings GetLogicalDriveStringsW
1806 #define LoadLibrary LoadLibraryW
1807 #define LoadLibraryEx LoadLibraryExW
1808 #define GetModuleFileName GetModuleFileNameW
1809 #define GetModuleHandle GetModuleHandleW
1810 #else
1811 #define CreateWaitableTimer CreateWaitableTimerA
1812 #define OpenWaitableTimer OpenWaitableTimerA
1813 #define CreateFileMapping CreateFileMappingA
1814 #define OpenFileMapping OpenFileMappingA
1815 #define GetLogicalDriveStrings GetLogicalDriveStringsA
1816 #define LoadLibrary LoadLibraryA
1817 #define LoadLibraryEx LoadLibraryExA
1818 #define GetModuleFileName GetModuleFileNameA
1819 #define GetModuleHandle GetModuleHandleA
1820 #endif
1822 WINBASEAPI HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES lpTimerAttributes,WINBOOL bManualReset,LPCSTR lpTimerName);
1823 WINBASEAPI HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES lpTimerAttributes,WINBOOL bManualReset,LPCWSTR lpTimerName);
1824 WINBASEAPI HANDLE WINAPI OpenWaitableTimerA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpTimerName);
1825 WINBASEAPI HANDLE WINAPI OpenWaitableTimerW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpTimerName);
1826 WINBASEAPI WINBOOL WINAPI SetWaitableTimer(HANDLE hTimer,const LARGE_INTEGER *lpDueTime,LONG lPeriod,PTIMERAPCROUTINE pfnCompletionRoutine,LPVOID lpArgToCompletionRoutine,WINBOOL fResume);
1827 WINBASEAPI WINBOOL WINAPI CancelWaitableTimer(HANDLE hTimer);
1828 WINBASEAPI HANDLE WINAPI CreateFileMappingA(HANDLE hFile,LPSECURITY_ATTRIBUTES lpFileMappingAttributes,DWORD flProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCSTR lpName);
1829 WINBASEAPI HANDLE WINAPI CreateFileMappingW(HANDLE hFile,LPSECURITY_ATTRIBUTES lpFileMappingAttributes,DWORD flProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCWSTR lpName);
1830 WINBASEAPI HANDLE WINAPI OpenFileMappingA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
1831 WINBASEAPI HANDLE WINAPI OpenFileMappingW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
1832 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA(DWORD nBufferLength,LPSTR lpBuffer);
1833 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW(DWORD nBufferLength,LPWSTR lpBuffer);
1835 typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
1836 LowMemoryResourceNotification,HighMemoryResourceNotification
1837 } MEMORY_RESOURCE_NOTIFICATION_TYPE;
1839 WINBASEAPI HANDLE WINAPI CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType);
1840 WINBASEAPI WINBOOL WINAPI QueryMemoryResourceNotification(HANDLE ResourceNotificationHandle,PBOOL ResourceState);
1841 WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName);
1842 WINBASEAPI HMODULE WINAPI LoadLibraryW(LPCWSTR lpLibFileName);
1843 WINBASEAPI HMODULE WINAPI LoadLibraryExA(LPCSTR lpLibFileName,HANDLE hFile,DWORD dwFlags);
1844 WINBASEAPI HMODULE WINAPI LoadLibraryExW(LPCWSTR lpLibFileName,HANDLE hFile,DWORD dwFlags);
1846 #define DONT_RESOLVE_DLL_REFERENCES 0x1
1847 #define LOAD_LIBRARY_AS_DATAFILE 0x2
1848 #define LOAD_WITH_ALTERED_SEARCH_PATH 0x8
1849 #define LOAD_IGNORE_CODE_AUTHZ_LEVEL 0x10
1850 #define LOAD_LINRARY_AS_IMAGE_RESOURCE 0x20
1851 #define LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE 0x40
1853 WINBASEAPI DWORD WINAPI GetModuleFileNameA(HMODULE hModule,LPCH lpFilename,DWORD nSize);
1854 WINBASEAPI DWORD WINAPI GetModuleFileNameW(HMODULE hModule,LPWCH lpFilename,DWORD nSize);
1855 WINBASEAPI HMODULE WINAPI GetModuleHandleA(LPCSTR lpModuleName);
1856 WINBASEAPI HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName);
1858 #ifndef RC_INVOKED
1859 #define GET_MODULE_HANDLE_EX_FLAG_PIN (0x1)
1860 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT (0x2)
1861 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS (0x4)
1863 typedef WINBOOL (WINAPI *PGET_MODULE_HANDLE_EXA)(DWORD dwFlags,LPCSTR lpModuleName,HMODULE *phModule);
1864 typedef WINBOOL (WINAPI *PGET_MODULE_HANDLE_EXW)(DWORD dwFlags,LPCWSTR lpModuleName,HMODULE *phModule);
1866 #ifdef UNICODE
1867 #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXW
1868 #define GetModuleHandleEx GetModuleHandleExW
1869 #else
1870 #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXA
1871 #define GetModuleHandleEx GetModuleHandleExA
1872 #endif
1874 WINBASEAPI WINBOOL WINAPI GetModuleHandleExA(DWORD dwFlags,LPCSTR lpModuleName,HMODULE *phModule);
1875 WINBASEAPI WINBOOL WINAPI GetModuleHandleExW(DWORD dwFlags,LPCWSTR lpModuleName,HMODULE *phModule);
1876 #endif
1878 #ifdef UNICODE
1879 #define NeedCurrentDirectoryForExePath NeedCurrentDirectoryForExePathW
1880 #define CreateProcess CreateProcessW
1881 #define FatalAppExit FatalAppExitW
1882 #define GetStartupInfo GetStartupInfoW
1883 #define GetCommandLine GetCommandLineW
1884 #define GetEnvironmentVariable GetEnvironmentVariableW
1885 #define SetEnvironmentVariable SetEnvironmentVariableW
1886 #define ExpandEnvironmentStrings ExpandEnvironmentStringsW
1887 #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableW
1888 #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableW
1889 #define OutputDebugString OutputDebugStringW
1890 #define FindResource FindResourceW
1891 #define FindResourceEx FindResourceExW
1892 #else
1893 #define NeedCurrentDirectoryForExePath NeedCurrentDirectoryForExePathA
1894 #define CreateProcess CreateProcessA
1895 #define FatalAppExit FatalAppExitA
1896 #define GetStartupInfo GetStartupInfoA
1897 #define GetCommandLine GetCommandLineA
1898 #define GetEnvironmentVariable GetEnvironmentVariableA
1899 #define SetEnvironmentVariable SetEnvironmentVariableA
1900 #define ExpandEnvironmentStrings ExpandEnvironmentStringsA
1901 #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableA
1902 #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableA
1903 #define OutputDebugString OutputDebugStringA
1904 #define FindResource FindResourceA
1905 #define FindResourceEx FindResourceExA
1906 #endif
1908 WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathA(LPCSTR ExeName);
1909 WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathW(LPCWSTR ExeName);
1910 WINBASEAPI WINBOOL WINAPI CreateProcessA(LPCSTR lpApplicationName,LPSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCSTR lpCurrentDirectory,LPSTARTUPINFOA lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
1911 WINBASEAPI WINBOOL WINAPI CreateProcessW(LPCWSTR lpApplicationName,LPWSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
1912 WINBASEAPI DWORD WINAPI AddLocalAlternateComputerNameA(LPCSTR lpDnsFQHostname,ULONG ulFlags);
1913 WINBASEAPI DWORD WINAPI AddLocalAlternateComputerNameW(LPCWSTR lpDnsFQHostname,ULONG ulFlags);
1914 WINBASEAPI WINBOOL WINAPI SetProcessShutdownParameters(DWORD dwLevel,DWORD dwFlags);
1915 WINBASEAPI WINBOOL WINAPI GetProcessShutdownParameters(LPDWORD lpdwLevel,LPDWORD lpdwFlags);
1916 WINBASEAPI DWORD WINAPI GetProcessVersion(DWORD ProcessId);
1917 WINBASEAPI VOID WINAPI FatalAppExitA(UINT uAction,LPCSTR lpMessageText);
1918 WINBASEAPI VOID WINAPI FatalAppExitW(UINT uAction,LPCWSTR lpMessageText);
1919 WINBASEAPI VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA lpStartupInfo);
1920 WINBASEAPI VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW lpStartupInfo);
1921 WINBASEAPI LPSTR WINAPI GetCommandLineA(VOID);
1922 WINBASEAPI LPWSTR WINAPI GetCommandLineW(VOID);
1923 WINBASEAPI DWORD WINAPI GetEnvironmentVariableA(LPCSTR lpName,LPSTR lpBuffer,DWORD nSize);
1924 WINBASEAPI DWORD WINAPI GetEnvironmentVariableW(LPCWSTR lpName,LPWSTR lpBuffer,DWORD nSize);
1925 WINBASEAPI WINBOOL WINAPI SetEnvironmentVariableA(LPCSTR lpName,LPCSTR lpValue);
1926 WINBASEAPI WINBOOL WINAPI SetEnvironmentVariableW(LPCWSTR lpName,LPCWSTR lpValue);
1927 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR lpSrc,LPSTR lpDst,DWORD nSize);
1928 WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR lpSrc,LPWSTR lpDst,DWORD nSize);
1929 WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableA(LPCSTR lpName,LPCSTR lpGuid,PVOID pBuffer,DWORD nSize);
1930 WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableW(LPCWSTR lpName,LPCWSTR lpGuid,PVOID pBuffer,DWORD nSize);
1931 WINBASEAPI WINBOOL WINAPI SetFirmwareEnvironmentVariableA(LPCSTR lpName,LPCSTR lpGuid,PVOID pValue,DWORD nSize);
1932 WINBASEAPI WINBOOL WINAPI SetFirmwareEnvironmentVariableW(LPCWSTR lpName,LPCWSTR lpGuid,PVOID pValue,DWORD nSize);
1933 WINBASEAPI VOID WINAPI OutputDebugStringA(LPCSTR lpOutputString);
1934 WINBASEAPI VOID WINAPI OutputDebugStringW(LPCWSTR lpOutputString);
1935 WINBASEAPI HRSRC WINAPI FindResourceA(HMODULE hModule,LPCSTR lpName,LPCSTR lpType);
1936 WINBASEAPI HRSRC WINAPI FindResourceW(HMODULE hModule,LPCWSTR lpName,LPCWSTR lpType);
1937 WINBASEAPI HRSRC WINAPI FindResourceExA(HMODULE hModule,LPCSTR lpType,LPCSTR lpName,WORD wLanguage);
1938 WINBASEAPI HRSRC WINAPI FindResourceExW(HMODULE hModule,LPCWSTR lpType,LPCWSTR lpName,WORD wLanguage);
1940 #ifdef UNICODE
1941 #define ENUMRESTYPEPROC ENUMRESTYPEPROCW
1942 #define ENUMRESNAMEPROC ENUMRESNAMEPROCW
1943 #define ENUMRESLANGPROC ENUMRESLANGPROCW
1944 #define EnumResourceTypes EnumResourceTypesW
1945 #define EnumResourceNames EnumResourceNamesW
1946 #define EnumResourceLanguages EnumResourceLanguagesW
1947 #define BeginUpdateResource BeginUpdateResourceW
1948 #define UpdateResource UpdateResourceW
1949 #define EndUpdateResource EndUpdateResourceW
1950 #define GlobalAddAtom GlobalAddAtomW
1951 #define GlobalFindAtom GlobalFindAtomW
1952 #define GlobalGetAtomName GlobalGetAtomNameW
1953 #define AddAtom AddAtomW
1954 #define FindAtom FindAtomW
1955 #define GetAtomName GetAtomNameW
1956 #define GetProfileInt GetProfileIntW
1957 #define GetProfileString GetProfileStringW
1958 #define WriteProfileString WriteProfileStringW
1959 #define GetProfileSection GetProfileSectionW
1960 #define WriteProfileSection WriteProfileSectionW
1961 #define GetPrivateProfileInt GetPrivateProfileIntW
1962 #define GetPrivateProfileString GetPrivateProfileStringW
1963 #define WritePrivateProfileString WritePrivateProfileStringW
1964 #define GetPrivateProfileSection GetPrivateProfileSectionW
1965 #define WritePrivateProfileSection WritePrivateProfileSectionW
1966 #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
1967 #define GetPrivateProfileStruct GetPrivateProfileStructW
1968 #define WritePrivateProfileStruct WritePrivateProfileStructW
1969 #define GetDriveType GetDriveTypeW
1970 #define GetSystemDirectory GetSystemDirectoryW
1971 #define GetTempPath GetTempPathW
1972 #define GetTempFileName GetTempFileNameW
1973 #define GetWindowsDirectory GetWindowsDirectoryW
1974 #define GetSystemWindowsDirectory GetSystemWindowsDirectoryW
1975 #define AddLocalAlternateComputerName AddLocalAlternateComputerNameW
1976 #else
1977 #define ENUMRESTYPEPROC ENUMRESTYPEPROCA
1978 #define ENUMRESNAMEPROC ENUMRESNAMEPROCA
1979 #define ENUMRESLANGPROC ENUMRESLANGPROCA
1980 #define EnumResourceTypes EnumResourceTypesA
1981 #define EnumResourceNames EnumResourceNamesA
1982 #define EnumResourceLanguages EnumResourceLanguagesA
1983 #define BeginUpdateResource BeginUpdateResourceA
1984 #define UpdateResource UpdateResourceA
1985 #define EndUpdateResource EndUpdateResourceA
1986 #define GlobalAddAtom GlobalAddAtomA
1987 #define GlobalFindAtom GlobalFindAtomA
1988 #define GlobalGetAtomName GlobalGetAtomNameA
1989 #define AddAtom AddAtomA
1990 #define FindAtom FindAtomA
1991 #define GetAtomName GetAtomNameA
1992 #define GetProfileInt GetProfileIntA
1993 #define GetProfileString GetProfileStringA
1994 #define WriteProfileString WriteProfileStringA
1995 #define GetProfileSection GetProfileSectionA
1996 #define WriteProfileSection WriteProfileSectionA
1997 #define GetPrivateProfileInt GetPrivateProfileIntA
1998 #define GetPrivateProfileString GetPrivateProfileStringA
1999 #define WritePrivateProfileString WritePrivateProfileStringA
2000 #define GetPrivateProfileSection GetPrivateProfileSectionA
2001 #define WritePrivateProfileSection WritePrivateProfileSectionA
2002 #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
2003 #define GetPrivateProfileStruct GetPrivateProfileStructA
2004 #define WritePrivateProfileStruct WritePrivateProfileStructA
2005 #define GetDriveType GetDriveTypeA
2006 #define GetSystemDirectory GetSystemDirectoryA
2007 #define GetTempPath GetTempPathA
2008 #define GetTempFileName GetTempFileNameA
2009 #define GetWindowsDirectory GetWindowsDirectoryA
2010 #define GetSystemWindowsDirectory GetSystemWindowsDirectoryA
2011 #define AddLocalAlternateComputerName AddLocalAlternateComputerNameA
2012 #endif
2014 typedef WINBOOL (CALLBACK *ENUMRESTYPEPROCA)(HMODULE hModule,LPSTR lpType,LONG_PTR lParam);
2015 typedef WINBOOL (CALLBACK *ENUMRESTYPEPROCW)(HMODULE hModule,LPWSTR lpType,LONG_PTR lParam);
2016 typedef WINBOOL (CALLBACK *ENUMRESNAMEPROCA)(HMODULE hModule,LPCSTR lpType,LPSTR lpName,LONG_PTR lParam);
2017 typedef WINBOOL (CALLBACK *ENUMRESNAMEPROCW)(HMODULE hModule,LPCWSTR lpType,LPWSTR lpName,LONG_PTR lParam);
2018 typedef WINBOOL (CALLBACK *ENUMRESLANGPROCA)(HMODULE hModule,LPCSTR lpType,LPCSTR lpName,WORD wLanguage,LONG_PTR lParam);
2019 typedef WINBOOL (CALLBACK *ENUMRESLANGPROCW)(HMODULE hModule,LPCWSTR lpType,LPCWSTR lpName,WORD wLanguage,LONG_PTR lParam);
2021 WINBASEAPI WINBOOL WINAPI EnumResourceTypesA(HMODULE hModule,ENUMRESTYPEPROCA lpEnumFunc,LONG_PTR lParam);
2022 WINBASEAPI WINBOOL WINAPI EnumResourceTypesW(HMODULE hModule,ENUMRESTYPEPROCW lpEnumFunc,LONG_PTR lParam);
2023 WINBASEAPI WINBOOL WINAPI EnumResourceNamesA(HMODULE hModule,LPCSTR lpType,ENUMRESNAMEPROCA lpEnumFunc,LONG_PTR lParam);
2024 WINBASEAPI WINBOOL WINAPI EnumResourceNamesW(HMODULE hModule,LPCWSTR lpType,ENUMRESNAMEPROCW lpEnumFunc,LONG_PTR lParam);
2025 WINBASEAPI WINBOOL WINAPI EnumResourceLanguagesA(HMODULE hModule,LPCSTR lpType,LPCSTR lpName,ENUMRESLANGPROCA lpEnumFunc,LONG_PTR lParam);
2026 WINBASEAPI WINBOOL WINAPI EnumResourceLanguagesW(HMODULE hModule,LPCWSTR lpType,LPCWSTR lpName,ENUMRESLANGPROCW lpEnumFunc,LONG_PTR lParam);
2027 WINBASEAPI HANDLE WINAPI BeginUpdateResourceA(LPCSTR pFileName,WINBOOL bDeleteExistingResources);
2028 WINBASEAPI HANDLE WINAPI BeginUpdateResourceW(LPCWSTR pFileName,WINBOOL bDeleteExistingResources);
2029 WINBASEAPI WINBOOL WINAPI UpdateResourceA(HANDLE hUpdate,LPCSTR lpType,LPCSTR lpName,WORD wLanguage,LPVOID lpData,DWORD cb);
2030 WINBASEAPI WINBOOL WINAPI UpdateResourceW(HANDLE hUpdate,LPCWSTR lpType,LPCWSTR lpName,WORD wLanguage,LPVOID lpData,DWORD cb);
2031 WINBASEAPI WINBOOL WINAPI EndUpdateResourceA(HANDLE hUpdate,WINBOOL fDiscard);
2032 WINBASEAPI WINBOOL WINAPI EndUpdateResourceW(HANDLE hUpdate,WINBOOL fDiscard);
2033 WINBASEAPI ATOM WINAPI GlobalAddAtomA(LPCSTR lpString);
2034 WINBASEAPI ATOM WINAPI GlobalAddAtomW(LPCWSTR lpString);
2035 WINBASEAPI ATOM WINAPI GlobalFindAtomA(LPCSTR lpString);
2036 WINBASEAPI ATOM WINAPI GlobalFindAtomW(LPCWSTR lpString);
2037 WINBASEAPI UINT WINAPI GlobalGetAtomNameA(ATOM nAtom,LPSTR lpBuffer,int nSize);
2038 WINBASEAPI UINT WINAPI GlobalGetAtomNameW(ATOM nAtom,LPWSTR lpBuffer,int nSize);
2039 WINBASEAPI ATOM WINAPI AddAtomA(LPCSTR lpString);
2040 WINBASEAPI ATOM WINAPI AddAtomW(LPCWSTR lpString);
2041 WINBASEAPI ATOM WINAPI FindAtomA(LPCSTR lpString);
2042 WINBASEAPI ATOM WINAPI FindAtomW(LPCWSTR lpString);
2043 WINBASEAPI UINT WINAPI GetAtomNameA(ATOM nAtom,LPSTR lpBuffer,int nSize);
2044 WINBASEAPI UINT WINAPI GetAtomNameW(ATOM nAtom,LPWSTR lpBuffer,int nSize);
2045 WINBASEAPI UINT WINAPI GetProfileIntA(LPCSTR lpAppName,LPCSTR lpKeyName,INT nDefault);
2046 WINBASEAPI UINT WINAPI GetProfileIntW(LPCWSTR lpAppName,LPCWSTR lpKeyName,INT nDefault);
2047 WINBASEAPI DWORD WINAPI GetProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpDefault,LPSTR lpReturnedString,DWORD nSize);
2048 WINBASEAPI DWORD WINAPI GetProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpDefault,LPWSTR lpReturnedString,DWORD nSize);
2049 WINBASEAPI WINBOOL WINAPI WriteProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpString);
2050 WINBASEAPI WINBOOL WINAPI WriteProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpString);
2051 WINBASEAPI DWORD WINAPI GetProfileSectionA(LPCSTR lpAppName,LPSTR lpReturnedString,DWORD nSize);
2052 WINBASEAPI DWORD WINAPI GetProfileSectionW(LPCWSTR lpAppName,LPWSTR lpReturnedString,DWORD nSize);
2053 WINBASEAPI WINBOOL WINAPI WriteProfileSectionA(LPCSTR lpAppName,LPCSTR lpString);
2054 WINBASEAPI WINBOOL WINAPI WriteProfileSectionW(LPCWSTR lpAppName,LPCWSTR lpString);
2055 WINBASEAPI UINT WINAPI GetPrivateProfileIntA(LPCSTR lpAppName,LPCSTR lpKeyName,INT nDefault,LPCSTR lpFileName);
2056 WINBASEAPI UINT WINAPI GetPrivateProfileIntW(LPCWSTR lpAppName,LPCWSTR lpKeyName,INT nDefault,LPCWSTR lpFileName);
2057 WINBASEAPI DWORD WINAPI GetPrivateProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpDefault,LPSTR lpReturnedString,DWORD nSize,LPCSTR lpFileName);
2058 WINBASEAPI DWORD WINAPI GetPrivateProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpDefault,LPWSTR lpReturnedString,DWORD nSize,LPCWSTR lpFileName);
2059 WINBASEAPI WINBOOL WINAPI WritePrivateProfileStringA(LPCSTR lpAppName,LPCSTR lpKeyName,LPCSTR lpString,LPCSTR lpFileName);
2060 WINBASEAPI WINBOOL WINAPI WritePrivateProfileStringW(LPCWSTR lpAppName,LPCWSTR lpKeyName,LPCWSTR lpString,LPCWSTR lpFileName);
2061 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionA(LPCSTR lpAppName,LPSTR lpReturnedString,DWORD nSize,LPCSTR lpFileName);
2062 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionW(LPCWSTR lpAppName,LPWSTR lpReturnedString,DWORD nSize,LPCWSTR lpFileName);
2063 WINBASEAPI WINBOOL WINAPI WritePrivateProfileSectionA(LPCSTR lpAppName,LPCSTR lpString,LPCSTR lpFileName);
2064 WINBASEAPI WINBOOL WINAPI WritePrivateProfileSectionW(LPCWSTR lpAppName,LPCWSTR lpString,LPCWSTR lpFileName);
2065 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR lpszReturnBuffer,DWORD nSize,LPCSTR lpFileName);
2066 WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR lpszReturnBuffer,DWORD nSize,LPCWSTR lpFileName);
2067 WINBASEAPI WINBOOL WINAPI GetPrivateProfileStructA(LPCSTR lpszSection,LPCSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCSTR szFile);
2068 WINBASEAPI WINBOOL WINAPI GetPrivateProfileStructW(LPCWSTR lpszSection,LPCWSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCWSTR szFile);
2069 WINBASEAPI WINBOOL WINAPI WritePrivateProfileStructA(LPCSTR lpszSection,LPCSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCSTR szFile);
2070 WINBASEAPI WINBOOL WINAPI WritePrivateProfileStructW(LPCWSTR lpszSection,LPCWSTR lpszKey,LPVOID lpStruct,UINT uSizeStruct,LPCWSTR szFile);
2071 WINBASEAPI UINT WINAPI GetDriveTypeA(LPCSTR lpRootPathName);
2072 WINBASEAPI UINT WINAPI GetDriveTypeW(LPCWSTR lpRootPathName);
2073 WINBASEAPI UINT WINAPI GetSystemDirectoryA(LPSTR lpBuffer,UINT uSize);
2074 WINBASEAPI UINT WINAPI GetSystemDirectoryW(LPWSTR lpBuffer,UINT uSize);
2075 WINBASEAPI DWORD WINAPI GetTempPathA(DWORD nBufferLength,LPSTR lpBuffer);
2076 WINBASEAPI DWORD WINAPI GetTempPathW(DWORD nBufferLength,LPWSTR lpBuffer);
2077 WINBASEAPI UINT WINAPI GetTempFileNameA(LPCSTR lpPathName,LPCSTR lpPrefixString,UINT uUnique,LPSTR lpTempFileName);
2078 WINBASEAPI UINT WINAPI GetTempFileNameW(LPCWSTR lpPathName,LPCWSTR lpPrefixString,UINT uUnique,LPWSTR lpTempFileName);
2079 WINBASEAPI UINT WINAPI GetWindowsDirectoryA(LPSTR lpBuffer,UINT uSize);
2080 WINBASEAPI UINT WINAPI GetWindowsDirectoryW(LPWSTR lpBuffer,UINT uSize);
2081 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA(LPSTR lpBuffer,UINT uSize);
2082 WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR lpBuffer,UINT uSize);
2084 #ifndef RC_INVOKED
2085 #ifdef UNICODE
2086 #define GetSystemWow64Directory GetSystemWow64DirectoryW
2087 #else
2088 #define GetSystemWow64Directory GetSystemWow64DirectoryA
2089 #endif
2091 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA(LPSTR lpBuffer,UINT uSize);
2092 WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW(LPWSTR lpBuffer,UINT uSize);
2093 WINBASEAPI BOOLEAN WINAPI Wow64EnableWow64FsRedirection(BOOLEAN Wow64FsEnableRedirection);
2094 WINBASEAPI WINBOOL WINAPI Wow64DisableWow64FsRedirection(PVOID *OldValue);
2095 WINBASEAPI WINBOOL WINAPI Wow64RevertWow64FsRedirection(PVOID OlValue);
2097 typedef UINT (WINAPI *PGET_SYSTEM_WOW64_DIRECTORY_A)(LPSTR lpBuffer,UINT uSize);
2098 typedef UINT (WINAPI *PGET_SYSTEM_WOW64_DIRECTORY_W)(LPWSTR lpBuffer,UINT uSize);
2100 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A "GetSystemWow64DirectoryA"
2101 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W L"GetSystemWow64DirectoryA"
2102 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T TEXT("GetSystemWow64DirectoryA")
2103 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A "GetSystemWow64DirectoryW"
2104 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W L"GetSystemWow64DirectoryW"
2105 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T TEXT("GetSystemWow64DirectoryW")
2107 #ifdef UNICODE
2108 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A
2109 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W
2110 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T
2111 #else
2112 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A
2113 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W
2114 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T
2115 #endif
2116 #endif
2118 #ifdef UNICODE
2119 #define SetCurrentDirectory SetCurrentDirectoryW
2120 #define GetCurrentDirectory GetCurrentDirectoryW
2121 #define SetDllDirectory SetDllDirectoryW
2122 #define GetDllDirectory GetDllDirectoryW
2123 #define GetDiskFreeSpace GetDiskFreeSpaceW
2124 #define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
2125 #define CreateDirectory CreateDirectoryW
2126 #define CreateDirectoryEx CreateDirectoryExW
2127 #define RemoveDirectory RemoveDirectoryW
2128 #define GetFullPathName GetFullPathNameW
2129 #define DefineDosDevice DefineDosDeviceW
2130 #define QueryDosDevice QueryDosDeviceW
2131 #define CreateFile CreateFileW
2132 #define SetFileAttributes SetFileAttributesW
2133 #define GetFileAttributes GetFileAttributesW
2134 #else
2135 #define SetCurrentDirectory SetCurrentDirectoryA
2136 #define GetCurrentDirectory GetCurrentDirectoryA
2137 #define SetDllDirectory SetDllDirectoryA
2138 #define GetDllDirectory GetDllDirectoryA
2139 #define GetDiskFreeSpace GetDiskFreeSpaceA
2140 #define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
2141 #define CreateDirectory CreateDirectoryA
2142 #define CreateDirectoryEx CreateDirectoryExA
2143 #define RemoveDirectory RemoveDirectoryA
2144 #define GetFullPathName GetFullPathNameA
2145 #define DefineDosDevice DefineDosDeviceA
2146 #define QueryDosDevice QueryDosDeviceA
2147 #define CreateFile CreateFileA
2148 #define SetFileAttributes SetFileAttributesA
2149 #define GetFileAttributes GetFileAttributesA
2150 #endif
2152 WINBASEAPI WINBOOL WINAPI SetCurrentDirectoryA(LPCSTR lpPathName);
2153 WINBASEAPI WINBOOL WINAPI SetCurrentDirectoryW(LPCWSTR lpPathName);
2154 WINBASEAPI DWORD WINAPI GetCurrentDirectoryA(DWORD nBufferLength,LPSTR lpBuffer);
2155 WINBASEAPI DWORD WINAPI GetCurrentDirectoryW(DWORD nBufferLength,LPWSTR lpBuffer);
2156 WINBASEAPI WINBOOL WINAPI SetDllDirectoryA(LPCSTR lpPathName);
2157 WINBASEAPI WINBOOL WINAPI SetDllDirectoryW(LPCWSTR lpPathName);
2158 WINBASEAPI DWORD WINAPI GetDllDirectoryA(DWORD nBufferLength,LPSTR lpBuffer);
2159 WINBASEAPI DWORD WINAPI GetDllDirectoryW(DWORD nBufferLength,LPWSTR lpBuffer);
2160 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceA(LPCSTR lpRootPathName,LPDWORD lpSectorsPerCluster,LPDWORD lpBytesPerSector,LPDWORD lpNumberOfFreeClusters,LPDWORD lpTotalNumberOfClusters);
2161 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceW(LPCWSTR lpRootPathName,LPDWORD lpSectorsPerCluster,LPDWORD lpBytesPerSector,LPDWORD lpNumberOfFreeClusters,LPDWORD lpTotalNumberOfClusters);
2162 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceExA(LPCSTR lpDirectoryName,PULARGE_INTEGER lpFreeBytesAvailableToCaller,PULARGE_INTEGER lpTotalNumberOfBytes,PULARGE_INTEGER lpTotalNumberOfFreeBytes);
2163 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR lpDirectoryName,PULARGE_INTEGER lpFreeBytesAvailableToCaller,PULARGE_INTEGER lpTotalNumberOfBytes,PULARGE_INTEGER lpTotalNumberOfFreeBytes);
2164 WINBASEAPI WINBOOL WINAPI CreateDirectoryA(LPCSTR lpPathName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2165 WINBASEAPI WINBOOL WINAPI CreateDirectoryW(LPCWSTR lpPathName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2166 WINBASEAPI WINBOOL WINAPI CreateDirectoryExA(LPCSTR lpTemplateDirectory,LPCSTR lpNewDirectory,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2167 WINBASEAPI WINBOOL WINAPI CreateDirectoryExW(LPCWSTR lpTemplateDirectory,LPCWSTR lpNewDirectory,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2168 WINBASEAPI WINBOOL WINAPI RemoveDirectoryA(LPCSTR lpPathName);
2169 WINBASEAPI WINBOOL WINAPI RemoveDirectoryW(LPCWSTR lpPathName);
2170 WINBASEAPI DWORD WINAPI GetFullPathNameA(LPCSTR lpFileName,DWORD nBufferLength,LPSTR lpBuffer,LPSTR *lpFilePart);
2171 WINBASEAPI DWORD WINAPI GetFullPathNameW(LPCWSTR lpFileName,DWORD nBufferLength,LPWSTR lpBuffer,LPWSTR *lpFilePart);
2173 #define DDD_RAW_TARGET_PATH 0x1
2174 #define DDD_REMOVE_DEFINITION 0x2
2175 #define DDD_EXACT_MATCH_ON_REMOVE 0x4
2176 #define DDD_NO_BROADCAST_SYSTEM 0x8
2177 #define DDD_LUID_BROADCAST_DRIVE 0x10
2179 WINBASEAPI WINBOOL WINAPI DefineDosDeviceA(DWORD dwFlags,LPCSTR lpDeviceName,LPCSTR lpTargetPath);
2180 WINBASEAPI WINBOOL WINAPI DefineDosDeviceW(DWORD dwFlags,LPCWSTR lpDeviceName,LPCWSTR lpTargetPath);
2181 WINBASEAPI DWORD WINAPI QueryDosDeviceA(LPCSTR lpDeviceName,LPSTR lpTargetPath,DWORD ucchMax);
2182 WINBASEAPI DWORD WINAPI QueryDosDeviceW(LPCWSTR lpDeviceName,LPWSTR lpTargetPath,DWORD ucchMax);
2184 #define EXPAND_LOCAL_DRIVES
2186 WINBASEAPI HANDLE WINAPI CreateFileA(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile);
2187 WINBASEAPI HANDLE WINAPI CreateFileW(LPCWSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile);
2188 WINBASEAPI HANDLE WINAPI ReOpenFile(HANDLE hOriginalFile,DWORD dwDesiredAccess,DWORD dwShareMode,DWORD dwFlagsAndAttributes);
2189 WINBASEAPI WINBOOL WINAPI SetFileAttributesA(LPCSTR lpFileName,DWORD dwFileAttributes);
2190 WINBASEAPI WINBOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName,DWORD dwFileAttributes);
2191 WINBASEAPI DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName);
2192 WINBASEAPI DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName);
2194 typedef enum _GET_FILEEX_INFO_LEVELS {
2195 GetFileExInfoStandard,GetFileExMaxInfoLevel
2196 } GET_FILEEX_INFO_LEVELS;
2198 #ifdef UNICODE
2199 #define GetFileAttributesEx GetFileAttributesExW
2200 #define GetCompressedFileSize GetCompressedFileSizeW
2201 #define DeleteFile DeleteFileW
2202 #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W
2203 #else
2204 #define GetFileAttributesEx GetFileAttributesExA
2205 #define GetCompressedFileSize GetCompressedFileSizeA
2206 #define DeleteFile DeleteFileA
2207 #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A
2208 #endif
2210 WINBASEAPI WINBOOL WINAPI GetFileAttributesExA(LPCSTR lpFileName,GET_FILEEX_INFO_LEVELS fInfoLevelId,LPVOID lpFileInformation);
2211 WINBASEAPI WINBOOL WINAPI GetFileAttributesExW(LPCWSTR lpFileName,GET_FILEEX_INFO_LEVELS fInfoLevelId,LPVOID lpFileInformation);
2212 WINBASEAPI DWORD WINAPI GetCompressedFileSizeA(LPCSTR lpFileName,LPDWORD lpFileSizeHigh);
2213 WINBASEAPI DWORD WINAPI GetCompressedFileSizeW(LPCWSTR lpFileName,LPDWORD lpFileSizeHigh);
2214 WINBASEAPI WINBOOL WINAPI DeleteFileA(LPCSTR lpFileName);
2215 WINBASEAPI WINBOOL WINAPI DeleteFileW(LPCWSTR lpFileName);
2216 WINBASEAPI WINBOOL WINAPI CheckNameLegalDOS8Dot3A(LPCSTR lpName,LPSTR lpOemName,DWORD OemNameSize,PBOOL pbNameContainsSpaces,PBOOL pbNameLegal);
2217 WINBASEAPI WINBOOL WINAPI CheckNameLegalDOS8Dot3W(LPCWSTR lpName,LPSTR lpOemName,DWORD OemNameSize,PBOOL pbNameContainsSpaces,PBOOL pbNameLegal);
2219 typedef enum _FINDEX_INFO_LEVELS {
2220 FindExInfoStandard,FindExInfoMaxInfoLevel
2221 } FINDEX_INFO_LEVELS;
2223 typedef enum _FINDEX_SEARCH_OPS {
2224 FindExSearchNameMatch,FindExSearchLimitToDirectories,FindExSearchLimitToDevices,FindExSearchMaxSearchOp
2225 } FINDEX_SEARCH_OPS;
2227 #define FIND_FIRST_EX_CASE_SENSITIVE 0x1
2229 #ifdef UNICODE
2230 #define FindFirstFileEx FindFirstFileExW
2231 #define FindFirstFile FindFirstFileW
2232 #define FindNextFile FindNextFileW
2233 #define SearchPath SearchPathW
2234 #define CopyFile CopyFileW
2235 #define CopyFileEx CopyFileExW
2236 #define MoveFile MoveFileW
2237 #define MoveFileEx MoveFileExW
2238 #define MoveFileWithProgress MoveFileWithProgressW
2239 #define ReplaceFile ReplaceFileW
2240 #define CreateHardLink CreateHardLinkW
2241 #define CreateNamedPipe CreateNamedPipeW
2242 #define GetNamedPipeHandleState GetNamedPipeHandleStateW
2243 #define CallNamedPipe CallNamedPipeW
2244 #define WaitNamedPipe WaitNamedPipeW
2245 #define SetVolumeLabel SetVolumeLabelW
2246 #define GetVolumeInformation GetVolumeInformationW
2247 #define ClearEventLog ClearEventLogW
2248 #define BackupEventLog BackupEventLogW
2249 #define OpenEventLog OpenEventLogW
2250 #define RegisterEventSource RegisterEventSourceW
2251 #define OpenBackupEventLog OpenBackupEventLogW
2252 #define ReadEventLog ReadEventLogW
2253 #define ReportEvent ReportEventW
2254 #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
2255 #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmW
2256 #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmW
2257 #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleW
2258 #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
2259 #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
2260 #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
2261 #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
2262 #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
2263 #define SetFileSecurity SetFileSecurityW
2264 #define GetFileSecurity GetFileSecurityW
2265 #define FindFirstChangeNotification FindFirstChangeNotificationW
2266 #define IsBadStringPtr IsBadStringPtrW
2267 #define LookupAccountSid LookupAccountSidW
2268 #define LookupAccountName LookupAccountNameW
2269 #define LookupPrivilegeValue LookupPrivilegeValueW
2270 #define LookupPrivilegeName LookupPrivilegeNameW
2271 #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
2272 #define BuildCommDCB BuildCommDCBW
2273 #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
2274 #define CommConfigDialog CommConfigDialogW
2275 #define GetDefaultCommConfig GetDefaultCommConfigW
2276 #define SetDefaultCommConfig SetDefaultCommConfigW
2277 #define GetComputerName GetComputerNameW
2278 #define SetComputerName SetComputerNameW
2279 #define GetComputerNameEx GetComputerNameExW
2280 #define SetComputerNameEx SetComputerNameExW
2281 #define DnsHostnameToComputerName DnsHostnameToComputerNameW
2282 #define GetUserName GetUserNameW
2283 #else
2284 #define FindFirstFileEx FindFirstFileExA
2285 #define FindFirstFile FindFirstFileA
2286 #define FindNextFile FindNextFileA
2287 #define SearchPath SearchPathA
2288 #define CopyFile CopyFileA
2289 #define CopyFileEx CopyFileExA
2290 #define MoveFile MoveFileA
2291 #define MoveFileEx MoveFileExA
2292 #define MoveFileWithProgress MoveFileWithProgressA
2293 #define ReplaceFile ReplaceFileA
2294 #define CreateHardLink CreateHardLinkA
2295 #define CreateNamedPipe CreateNamedPipeA
2296 #define GetNamedPipeHandleState GetNamedPipeHandleStateA
2297 #define CallNamedPipe CallNamedPipeA
2298 #define WaitNamedPipe WaitNamedPipeA
2299 #define SetVolumeLabel SetVolumeLabelA
2300 #define GetVolumeInformation GetVolumeInformationA
2301 #define ClearEventLog ClearEventLogA
2302 #define BackupEventLog BackupEventLogA
2303 #define OpenEventLog OpenEventLogA
2304 #define RegisterEventSource RegisterEventSourceA
2305 #define OpenBackupEventLog OpenBackupEventLogA
2306 #define ReadEventLog ReadEventLogA
2307 #define ReportEvent ReportEventA
2308 #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
2309 #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmA
2310 #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmA
2311 #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleA
2312 #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
2313 #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
2314 #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
2315 #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
2316 #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
2317 #define SetFileSecurity SetFileSecurityA
2318 #define GetFileSecurity GetFileSecurityA
2319 #define FindFirstChangeNotification FindFirstChangeNotificationA
2320 #define IsBadStringPtr IsBadStringPtrA
2321 #define LookupAccountSid LookupAccountSidA
2322 #define LookupAccountName LookupAccountNameA
2323 #define LookupPrivilegeValue LookupPrivilegeValueA
2324 #define LookupPrivilegeName LookupPrivilegeNameA
2325 #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
2326 #define BuildCommDCB BuildCommDCBA
2327 #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
2328 #define CommConfigDialog CommConfigDialogA
2329 #define GetDefaultCommConfig GetDefaultCommConfigA
2330 #define SetDefaultCommConfig SetDefaultCommConfigA
2331 #define GetComputerName GetComputerNameA
2332 #define SetComputerName SetComputerNameA
2333 #define GetComputerNameEx GetComputerNameExA
2334 #define SetComputerNameEx SetComputerNameExA
2335 #define DnsHostnameToComputerName DnsHostnameToComputerNameA
2336 #define GetUserName GetUserNameA
2337 #endif
2339 WINBASEAPI HANDLE WINAPI FindFirstFileExA(LPCSTR lpFileName,FINDEX_INFO_LEVELS fInfoLevelId,LPVOID lpFindFileData,FINDEX_SEARCH_OPS fSearchOp,LPVOID lpSearchFilter,DWORD dwAdditionalFlags);
2340 WINBASEAPI HANDLE WINAPI FindFirstFileExW(LPCWSTR lpFileName,FINDEX_INFO_LEVELS fInfoLevelId,LPVOID lpFindFileData,FINDEX_SEARCH_OPS fSearchOp,LPVOID lpSearchFilter,DWORD dwAdditionalFlags);
2341 WINBASEAPI HANDLE WINAPI FindFirstFileA(LPCSTR lpFileName,LPWIN32_FIND_DATAA lpFindFileData);
2342 WINBASEAPI HANDLE WINAPI FindFirstFileW(LPCWSTR lpFileName,LPWIN32_FIND_DATAW lpFindFileData);
2343 WINBASEAPI WINBOOL WINAPI FindNextFileA(HANDLE hFindFile,LPWIN32_FIND_DATAA lpFindFileData);
2344 WINBASEAPI WINBOOL WINAPI FindNextFileW(HANDLE hFindFile,LPWIN32_FIND_DATAW lpFindFileData);
2345 WINBASEAPI DWORD WINAPI SearchPathA(LPCSTR lpPath,LPCSTR lpFileName,LPCSTR lpExtension,DWORD nBufferLength,LPSTR lpBuffer,LPSTR *lpFilePart);
2346 WINBASEAPI DWORD WINAPI SearchPathW(LPCWSTR lpPath,LPCWSTR lpFileName,LPCWSTR lpExtension,DWORD nBufferLength,LPWSTR lpBuffer,LPWSTR *lpFilePart);
2347 WINBASEAPI WINBOOL WINAPI CopyFileA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,WINBOOL bFailIfExists);
2348 WINBASEAPI WINBOOL WINAPI CopyFileW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,WINBOOL bFailIfExists);
2350 typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER TotalFileSize,LARGE_INTEGER TotalBytesTransferred,LARGE_INTEGER StreamSize,LARGE_INTEGER StreamBytesTransferred,DWORD dwStreamNumber,DWORD dwCallbackReason,HANDLE hSourceFile,HANDLE hDestinationFile,LPVOID lpData);
2352 WINBASEAPI WINBOOL WINAPI CopyFileExA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,LPBOOL pbCancel,DWORD dwCopyFlags);
2353 WINBASEAPI WINBOOL WINAPI CopyFileExW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,LPBOOL pbCancel,DWORD dwCopyFlags);
2354 WINBASEAPI WINBOOL WINAPI MoveFileA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName);
2355 WINBASEAPI WINBOOL WINAPI MoveFileW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName);
2356 WINBASEAPI WINBOOL WINAPI MoveFileExA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,DWORD dwFlags);
2357 WINBASEAPI WINBOOL WINAPI MoveFileExW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,DWORD dwFlags);
2358 WINBASEAPI WINBOOL WINAPI MoveFileWithProgressA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,DWORD dwFlags);
2359 WINBASEAPI WINBOOL WINAPI MoveFileWithProgressW(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,LPPROGRESS_ROUTINE lpProgressRoutine,LPVOID lpData,DWORD dwFlags);
2361 #define MOVEFILE_REPLACE_EXISTING 0x1
2362 #define MOVEFILE_COPY_ALLOWED 0x2
2363 #define MOVEFILE_DELAY_UNTIL_REBOOT 0x4
2364 #define MOVEFILE_WRITE_THROUGH 0x8
2365 #define MOVEFILE_CREATE_HARDLINK 0x10
2366 #define MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x20
2368 WINBASEAPI WINBOOL WINAPI ReplaceFileA(LPCSTR lpReplacedFileName,LPCSTR lpReplacementFileName,LPCSTR lpBackupFileName,DWORD dwReplaceFlags,LPVOID lpExclude,LPVOID lpReserved);
2369 WINBASEAPI WINBOOL WINAPI ReplaceFileW(LPCWSTR lpReplacedFileName,LPCWSTR lpReplacementFileName,LPCWSTR lpBackupFileName,DWORD dwReplaceFlags,LPVOID lpExclude,LPVOID lpReserved);
2370 WINBASEAPI WINBOOL WINAPI CreateHardLinkA(LPCSTR lpFileName,LPCSTR lpExistingFileName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2371 WINBASEAPI WINBOOL WINAPI CreateHardLinkW(LPCWSTR lpFileName,LPCWSTR lpExistingFileName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2373 typedef enum _STREAM_INFO_LEVELS {
2374 FindStreamInfoStandard,FindStreamInfoMaxInfoLevel
2375 } STREAM_INFO_LEVELS;
2377 typedef struct _WIN32_FIND_STREAM_DATA {
2378 LARGE_INTEGER StreamSize;
2379 WCHAR cStreamName[MAX_PATH + 36];
2380 } WIN32_FIND_STREAM_DATA,*PWIN32_FIND_STREAM_DATA;
2382 HANDLE WINAPI FindFirstStreamW(LPCWSTR lpFileName,STREAM_INFO_LEVELS InfoLevel,LPVOID lpFindStreamData,DWORD dwFlags);
2383 WINBOOL WINAPI FindNextStreamW(HANDLE hFindStream,LPVOID lpFindStreamData);
2384 WINBASEAPI HANDLE WINAPI CreateNamedPipeA(LPCSTR lpName,DWORD dwOpenMode,DWORD dwPipeMode,DWORD nMaxInstances,DWORD nOutBufferSize,DWORD nInBufferSize,DWORD nDefaultTimeOut,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2385 WINBASEAPI HANDLE WINAPI CreateNamedPipeW(LPCWSTR lpName,DWORD dwOpenMode,DWORD dwPipeMode,DWORD nMaxInstances,DWORD nOutBufferSize,DWORD nInBufferSize,DWORD nDefaultTimeOut,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2386 WINBASEAPI WINBOOL WINAPI GetNamedPipeHandleStateA(HANDLE hNamedPipe,LPDWORD lpState,LPDWORD lpCurInstances,LPDWORD lpMaxCollectionCount,LPDWORD lpCollectDataTimeout,LPSTR lpUserName,DWORD nMaxUserNameSize);
2387 WINBASEAPI WINBOOL WINAPI GetNamedPipeHandleStateW(HANDLE hNamedPipe,LPDWORD lpState,LPDWORD lpCurInstances,LPDWORD lpMaxCollectionCount,LPDWORD lpCollectDataTimeout,LPWSTR lpUserName,DWORD nMaxUserNameSize);
2388 WINBASEAPI WINBOOL WINAPI CallNamedPipeA(LPCSTR lpNamedPipeName,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesRead,DWORD nTimeOut);
2389 WINBASEAPI WINBOOL WINAPI CallNamedPipeW(LPCWSTR lpNamedPipeName,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesRead,DWORD nTimeOut);
2390 WINBASEAPI WINBOOL WINAPI WaitNamedPipeA(LPCSTR lpNamedPipeName,DWORD nTimeOut);
2391 WINBASEAPI WINBOOL WINAPI WaitNamedPipeW(LPCWSTR lpNamedPipeName,DWORD nTimeOut);
2392 WINBASEAPI WINBOOL WINAPI SetVolumeLabelA(LPCSTR lpRootPathName,LPCSTR lpVolumeName);
2393 WINBASEAPI WINBOOL WINAPI SetVolumeLabelW(LPCWSTR lpRootPathName,LPCWSTR lpVolumeName);
2394 WINBASEAPI VOID WINAPI SetFileApisToOEM(VOID);
2395 WINBASEAPI VOID WINAPI SetFileApisToANSI(VOID);
2396 WINBASEAPI WINBOOL WINAPI AreFileApisANSI(VOID);
2397 WINBASEAPI WINBOOL WINAPI GetVolumeInformationA(LPCSTR lpRootPathName,LPSTR lpVolumeNameBuffer,DWORD nVolumeNameSize,LPDWORD lpVolumeSerialNumber,LPDWORD lpMaximumComponentLength,LPDWORD lpFileSystemFlags,LPSTR lpFileSystemNameBuffer,DWORD nFileSystemNameSize);
2398 WINBASEAPI WINBOOL WINAPI GetVolumeInformationW(LPCWSTR lpRootPathName,LPWSTR lpVolumeNameBuffer,DWORD nVolumeNameSize,LPDWORD lpVolumeSerialNumber,LPDWORD lpMaximumComponentLength,LPDWORD lpFileSystemFlags,LPWSTR lpFileSystemNameBuffer,DWORD nFileSystemNameSize);
2399 WINBASEAPI WINBOOL WINAPI CancelIo(HANDLE hFile);
2400 WINADVAPI WINBOOL WINAPI ClearEventLogA(HANDLE hEventLog,LPCSTR lpBackupFileName);
2401 WINADVAPI WINBOOL WINAPI ClearEventLogW(HANDLE hEventLog,LPCWSTR lpBackupFileName);
2402 WINADVAPI WINBOOL WINAPI BackupEventLogA(HANDLE hEventLog,LPCSTR lpBackupFileName);
2403 WINADVAPI WINBOOL WINAPI BackupEventLogW(HANDLE hEventLog,LPCWSTR lpBackupFileName);
2404 WINADVAPI WINBOOL WINAPI CloseEventLog(HANDLE hEventLog);
2405 WINADVAPI WINBOOL WINAPI DeregisterEventSource(HANDLE hEventLog);
2406 WINADVAPI WINBOOL WINAPI NotifyChangeEventLog(HANDLE hEventLog,HANDLE hEvent);
2407 WINADVAPI WINBOOL WINAPI GetNumberOfEventLogRecords(HANDLE hEventLog,PDWORD NumberOfRecords);
2408 WINADVAPI WINBOOL WINAPI GetOldestEventLogRecord(HANDLE hEventLog,PDWORD OldestRecord);
2409 WINADVAPI HANDLE WINAPI OpenEventLogA(LPCSTR lpUNCServerName,LPCSTR lpSourceName);
2410 WINADVAPI HANDLE WINAPI OpenEventLogW(LPCWSTR lpUNCServerName,LPCWSTR lpSourceName);
2411 WINADVAPI HANDLE WINAPI RegisterEventSourceA(LPCSTR lpUNCServerName,LPCSTR lpSourceName);
2412 WINADVAPI HANDLE WINAPI RegisterEventSourceW(LPCWSTR lpUNCServerName,LPCWSTR lpSourceName);
2413 WINADVAPI HANDLE WINAPI OpenBackupEventLogA(LPCSTR lpUNCServerName,LPCSTR lpFileName);
2414 WINADVAPI HANDLE WINAPI OpenBackupEventLogW(LPCWSTR lpUNCServerName,LPCWSTR lpFileName);
2415 WINADVAPI WINBOOL WINAPI ReadEventLogA(HANDLE hEventLog,DWORD dwReadFlags,DWORD dwRecordOffset,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,DWORD *pnBytesRead,DWORD *pnMinNumberOfBytesNeeded);
2416 WINADVAPI WINBOOL WINAPI ReadEventLogW(HANDLE hEventLog,DWORD dwReadFlags,DWORD dwRecordOffset,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,DWORD *pnBytesRead,DWORD *pnMinNumberOfBytesNeeded);
2417 WINADVAPI WINBOOL WINAPI ReportEventA(HANDLE hEventLog,WORD wType,WORD wCategory,DWORD dwEventID,PSID lpUserSid,WORD wNumStrings,DWORD dwDataSize,LPCSTR *lpStrings,LPVOID lpRawData);
2418 WINADVAPI WINBOOL WINAPI ReportEventW(HANDLE hEventLog,WORD wType,WORD wCategory,DWORD dwEventID,PSID lpUserSid,WORD wNumStrings,DWORD dwDataSize,LPCWSTR *lpStrings,LPVOID lpRawData);
2420 #define EVENTLOG_FULL_INFO 0
2422 typedef struct _EVENTLOG_FULL_INFORMATION {
2423 DWORD dwFull;
2424 } EVENTLOG_FULL_INFORMATION,*LPEVENTLOG_FULL_INFORMATION;
2426 WINADVAPI WINBOOL WINAPI GetEventLogInformation(HANDLE hEventLog,DWORD dwInfoLevel,LPVOID lpBuffer,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
2427 WINADVAPI WINBOOL WINAPI DuplicateToken(HANDLE ExistingTokenHandle,SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,PHANDLE DuplicateTokenHandle);
2428 WINADVAPI WINBOOL WINAPI GetKernelObjectSecurity(HANDLE Handle,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded);
2429 WINADVAPI WINBOOL WINAPI ImpersonateNamedPipeClient(HANDLE hNamedPipe);
2430 WINADVAPI WINBOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel);
2431 WINADVAPI WINBOOL WINAPI RevertToSelf(VOID);
2432 WINADVAPI WINBOOL WINAPI SetThreadToken (PHANDLE Thread,HANDLE Token);
2433 WINADVAPI WINBOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR pSecurityDescriptor,HANDLE ClientToken,DWORD DesiredAccess,PGENERIC_MAPPING GenericMapping,PPRIVILEGE_SET PrivilegeSet,LPDWORD PrivilegeSetLength,LPDWORD GrantedAccess,LPBOOL AccessStatus);
2434 WINADVAPI WINBOOL WINAPI AccessCheckByType(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID PrincipalSelfSid,HANDLE ClientToken,DWORD DesiredAccess,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,PPRIVILEGE_SET PrivilegeSet,LPDWORD PrivilegeSetLength,LPDWORD GrantedAccess,LPBOOL AccessStatus);
2435 WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultList(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID PrincipalSelfSid,HANDLE ClientToken,DWORD DesiredAccess,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,PPRIVILEGE_SET PrivilegeSet,LPDWORD PrivilegeSetLength,LPDWORD GrantedAccessList,LPDWORD AccessStatusList);
2436 WINADVAPI WINBOOL WINAPI OpenProcessToken(HANDLE ProcessHandle,DWORD DesiredAccess,PHANDLE TokenHandle);
2437 WINADVAPI WINBOOL WINAPI OpenThreadToken(HANDLE ThreadHandle,DWORD DesiredAccess,WINBOOL OpenAsSelf,PHANDLE TokenHandle);
2438 WINADVAPI WINBOOL WINAPI GetTokenInformation(HANDLE TokenHandle,TOKEN_INFORMATION_CLASS TokenInformationClass,LPVOID TokenInformation,DWORD TokenInformationLength,PDWORD ReturnLength);
2439 WINADVAPI WINBOOL WINAPI SetTokenInformation(HANDLE TokenHandle,TOKEN_INFORMATION_CLASS TokenInformationClass,LPVOID TokenInformation,DWORD TokenInformationLength);
2440 WINADVAPI WINBOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle,WINBOOL DisableAllPrivileges,PTOKEN_PRIVILEGES NewState,DWORD BufferLength,PTOKEN_PRIVILEGES PreviousState,PDWORD ReturnLength);
2441 WINADVAPI WINBOOL WINAPI AdjustTokenGroups(HANDLE TokenHandle,WINBOOL ResetToDefault,PTOKEN_GROUPS NewState,DWORD BufferLength,PTOKEN_GROUPS PreviousState,PDWORD ReturnLength);
2442 WINADVAPI WINBOOL WINAPI PrivilegeCheck(HANDLE ClientToken,PPRIVILEGE_SET RequiredPrivileges,LPBOOL pfResult);
2443 WINADVAPI WINBOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPSTR ObjectTypeName,LPSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,DWORD DesiredAccess,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2444 WINADVAPI WINBOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPWSTR ObjectTypeName,LPWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,DWORD DesiredAccess,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2445 WINADVAPI WINBOOL WINAPI AccessCheckByTypeAndAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPCSTR ObjectTypeName,LPCSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2446 WINADVAPI WINBOOL WINAPI AccessCheckByTypeAndAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPCWSTR ObjectTypeName,LPCWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPBOOL AccessStatus,LPBOOL pfGenerateOnClose);
2447 WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPCSTR ObjectTypeName,LPCSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2448 WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPCWSTR ObjectTypeName,LPCWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2449 WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleA(LPCSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,LPCSTR ObjectTypeName,LPCSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2450 WINADVAPI WINBOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleW(LPCWSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,LPCWSTR ObjectTypeName,LPCWSTR ObjectName,PSECURITY_DESCRIPTOR SecurityDescriptor,PSID PrincipalSelfSid,DWORD DesiredAccess,AUDIT_EVENT_TYPE AuditType,DWORD Flags,POBJECT_TYPE_LIST ObjectTypeList,DWORD ObjectTypeListLength,PGENERIC_MAPPING GenericMapping,WINBOOL ObjectCreation,LPDWORD GrantedAccess,LPDWORD AccessStatusList,LPBOOL pfGenerateOnClose);
2451 WINADVAPI WINBOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,LPSTR ObjectTypeName,LPSTR ObjectName,PSECURITY_DESCRIPTOR pSecurityDescriptor,HANDLE ClientToken,DWORD DesiredAccess,DWORD GrantedAccess,PPRIVILEGE_SET Privileges,WINBOOL ObjectCreation,WINBOOL AccessGranted,LPBOOL GenerateOnClose);
2452 WINADVAPI WINBOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,LPWSTR ObjectTypeName,LPWSTR ObjectName,PSECURITY_DESCRIPTOR pSecurityDescriptor,HANDLE ClientToken,DWORD DesiredAccess,DWORD GrantedAccess,PPRIVILEGE_SET Privileges,WINBOOL ObjectCreation,WINBOOL AccessGranted,LPBOOL GenerateOnClose);
2453 WINADVAPI WINBOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,DWORD DesiredAccess,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2454 WINADVAPI WINBOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,HANDLE ClientToken,DWORD DesiredAccess,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2455 WINADVAPI WINBOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2456 WINADVAPI WINBOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2457 WINADVAPI WINBOOL WINAPI ObjectDeleteAuditAlarmA(LPCSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2458 WINADVAPI WINBOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR SubsystemName,LPVOID HandleId,WINBOOL GenerateOnClose);
2459 WINADVAPI WINBOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR SubsystemName,LPCSTR ServiceName,HANDLE ClientToken,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2460 WINADVAPI WINBOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR SubsystemName,LPCWSTR ServiceName,HANDLE ClientToken,PPRIVILEGE_SET Privileges,WINBOOL AccessGranted);
2461 WINADVAPI WINBOOL WINAPI IsWellKnownSid(PSID pSid,WELL_KNOWN_SID_TYPE WellKnownSidType);
2462 WINADVAPI WINBOOL WINAPI CreateWellKnownSid(WELL_KNOWN_SID_TYPE WellKnownSidType,PSID DomainSid,PSID pSid,DWORD *cbSid);
2463 WINADVAPI WINBOOL WINAPI EqualDomainSid(PSID pSid1,PSID pSid2,WINBOOL *pfEqual);
2464 WINADVAPI WINBOOL WINAPI GetWindowsAccountDomainSid(PSID pSid,PSID pDomainSid,DWORD *cbDomainSid);
2465 WINADVAPI WINBOOL WINAPI IsValidSid(PSID pSid);
2466 WINADVAPI WINBOOL WINAPI EqualSid(PSID pSid1,PSID pSid2);
2467 WINADVAPI WINBOOL WINAPI EqualPrefixSid(PSID pSid1,PSID pSid2);
2468 WINADVAPI DWORD WINAPI GetSidLengthRequired (UCHAR nSubAuthorityCount);
2469 WINADVAPI WINBOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,BYTE nSubAuthorityCount,DWORD nSubAuthority0,DWORD nSubAuthority1,DWORD nSubAuthority2,DWORD nSubAuthority3,DWORD nSubAuthority4,DWORD nSubAuthority5,DWORD nSubAuthority6,DWORD nSubAuthority7,PSID *pSid);
2470 WINADVAPI PVOID WINAPI FreeSid(PSID pSid);
2471 WINADVAPI WINBOOL WINAPI InitializeSid(PSID Sid,PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,BYTE nSubAuthorityCount);
2472 WINADVAPI PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID pSid);
2473 WINADVAPI PDWORD WINAPI GetSidSubAuthority(PSID pSid,DWORD nSubAuthority);
2474 WINADVAPI PUCHAR WINAPI GetSidSubAuthorityCount(PSID pSid);
2475 WINADVAPI DWORD WINAPI GetLengthSid(PSID pSid);
2476 WINADVAPI WINBOOL WINAPI CopySid(DWORD nDestinationSidLength,PSID pDestinationSid,PSID pSourceSid);
2477 WINADVAPI WINBOOL WINAPI AreAllAccessesGranted(DWORD GrantedAccess,DWORD DesiredAccess);
2478 WINADVAPI WINBOOL WINAPI AreAnyAccessesGranted(DWORD GrantedAccess,DWORD DesiredAccess);
2479 WINADVAPI VOID WINAPI MapGenericMask(PDWORD AccessMask,PGENERIC_MAPPING GenericMapping);
2480 WINADVAPI WINBOOL WINAPI IsValidAcl(PACL pAcl);
2481 WINADVAPI WINBOOL WINAPI InitializeAcl(PACL pAcl,DWORD nAclLength,DWORD dwAclRevision);
2482 WINADVAPI WINBOOL WINAPI GetAclInformation(PACL pAcl,LPVOID pAclInformation,DWORD nAclInformationLength,ACL_INFORMATION_CLASS dwAclInformationClass);
2483 WINADVAPI WINBOOL WINAPI SetAclInformation(PACL pAcl,LPVOID pAclInformation,DWORD nAclInformationLength,ACL_INFORMATION_CLASS dwAclInformationClass);
2484 WINADVAPI WINBOOL WINAPI AddAce(PACL pAcl,DWORD dwAceRevision,DWORD dwStartingAceIndex,LPVOID pAceList,DWORD nAceListLength);
2485 WINADVAPI WINBOOL WINAPI DeleteAce(PACL pAcl,DWORD dwAceIndex);
2486 WINADVAPI WINBOOL WINAPI GetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce);
2487 WINADVAPI WINBOOL WINAPI AddAccessAllowedAce(PACL pAcl,DWORD dwAceRevision,DWORD AccessMask,PSID pSid);
2488 WINADVAPI WINBOOL WINAPI AddAccessAllowedAceEx(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,PSID pSid);
2489 WINADVAPI WINBOOL WINAPI AddAccessDeniedAce(PACL pAcl,DWORD dwAceRevision,DWORD AccessMask,PSID pSid);
2490 WINADVAPI WINBOOL WINAPI AddAccessDeniedAceEx(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,PSID pSid);
2491 WINADVAPI WINBOOL WINAPI AddAuditAccessAce(PACL pAcl,DWORD dwAceRevision,DWORD dwAccessMask,PSID pSid,WINBOOL bAuditSuccess,WINBOOL bAuditFailure);
2492 WINADVAPI WINBOOL WINAPI AddAuditAccessAceEx(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD dwAccessMask,PSID pSid,WINBOOL bAuditSuccess,WINBOOL bAuditFailure);
2493 WINADVAPI WINBOOL WINAPI AddAccessAllowedObjectAce(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,GUID *ObjectTypeGuid,GUID *InheritedObjectTypeGuid,PSID pSid);
2494 WINADVAPI WINBOOL WINAPI AddAccessDeniedObjectAce(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,GUID *ObjectTypeGuid,GUID *InheritedObjectTypeGuid,PSID pSid);
2495 WINADVAPI WINBOOL WINAPI AddAuditAccessObjectAce(PACL pAcl,DWORD dwAceRevision,DWORD AceFlags,DWORD AccessMask,GUID *ObjectTypeGuid,GUID *InheritedObjectTypeGuid,PSID pSid,WINBOOL bAuditSuccess,WINBOOL bAuditFailure);
2496 WINADVAPI WINBOOL WINAPI FindFirstFreeAce(PACL pAcl,LPVOID *pAce);
2497 WINADVAPI WINBOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD dwRevision);
2498 WINADVAPI WINBOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor);
2499 WINADVAPI DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR pSecurityDescriptor);
2500 WINADVAPI WINBOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSECURITY_DESCRIPTOR_CONTROL pControl,LPDWORD lpdwRevision);
2501 WINADVAPI WINBOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor,SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet);
2502 WINADVAPI WINBOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,WINBOOL bDaclPresent,PACL pDacl,WINBOOL bDaclDefaulted);
2503 WINADVAPI WINBOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,LPBOOL lpbDaclPresent,PACL *pDacl,LPBOOL lpbDaclDefaulted);
2504 WINADVAPI WINBOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,WINBOOL bSaclPresent,PACL pSacl,WINBOOL bSaclDefaulted);
2505 WINADVAPI WINBOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR pSecurityDescriptor,LPBOOL lpbSaclPresent,PACL *pSacl,LPBOOL lpbSaclDefaulted);
2506 WINADVAPI WINBOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID pOwner,WINBOOL bOwnerDefaulted);
2507 WINADVAPI WINBOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID *pOwner,LPBOOL lpbOwnerDefaulted);
2508 WINADVAPI WINBOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID pGroup,WINBOOL bGroupDefaulted);
2509 WINADVAPI WINBOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR pSecurityDescriptor,PSID *pGroup,LPBOOL lpbGroupDefaulted);
2510 WINADVAPI DWORD WINAPI SetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,PUCHAR RMControl);
2511 WINADVAPI DWORD WINAPI GetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,PUCHAR RMControl);
2512 WINADVAPI WINBOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CreatorDescriptor,PSECURITY_DESCRIPTOR *NewDescriptor,WINBOOL IsDirectoryObject,HANDLE Token,PGENERIC_MAPPING GenericMapping);
2513 WINADVAPI WINBOOL WINAPI ConvertToAutoInheritPrivateObjectSecurity(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CurrentSecurityDescriptor,PSECURITY_DESCRIPTOR *NewSecurityDescriptor,GUID *ObjectType,BOOLEAN IsDirectoryObject,PGENERIC_MAPPING GenericMapping);
2514 WINADVAPI WINBOOL WINAPI CreatePrivateObjectSecurityEx(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CreatorDescriptor,PSECURITY_DESCRIPTOR *NewDescriptor,GUID *ObjectType,WINBOOL IsContainerObject,ULONG AutoInheritFlags,HANDLE Token,PGENERIC_MAPPING GenericMapping);
2515 WINADVAPI WINBOOL WINAPI CreatePrivateObjectSecurityWithMultipleInheritance(PSECURITY_DESCRIPTOR ParentDescriptor,PSECURITY_DESCRIPTOR CreatorDescriptor,PSECURITY_DESCRIPTOR *NewDescriptor,GUID **ObjectTypes,ULONG GuidCount,WINBOOL IsContainerObject,ULONG AutoInheritFlags,HANDLE Token,PGENERIC_MAPPING GenericMapping);
2516 WINADVAPI WINBOOL WINAPI SetPrivateObjectSecurity (SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR ModificationDescriptor,PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,PGENERIC_MAPPING GenericMapping,HANDLE Token);
2517 WINADVAPI WINBOOL WINAPI SetPrivateObjectSecurityEx (SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR ModificationDescriptor,PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,ULONG AutoInheritFlags,PGENERIC_MAPPING GenericMapping,HANDLE Token);
2518 WINADVAPI WINBOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR ObjectDescriptor,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR ResultantDescriptor,DWORD DescriptorLength,PDWORD ReturnLength);
2519 WINADVAPI WINBOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR *ObjectDescriptor);
2520 WINADVAPI WINBOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,LPDWORD lpdwBufferLength);
2521 WINADVAPI WINBOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,LPDWORD lpdwAbsoluteSecurityDescriptorSize,PACL pDacl,LPDWORD lpdwDaclSize,PACL pSacl,LPDWORD lpdwSaclSize,PSID pOwner,LPDWORD lpdwOwnerSize,PSID pPrimaryGroup,LPDWORD lpdwPrimaryGroupSize);
2522 WINADVAPI WINBOOL WINAPI MakeAbsoluteSD2(PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,LPDWORD lpdwBufferSize);
2523 WINADVAPI WINBOOL WINAPI SetFileSecurityA(LPCSTR lpFileName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor);
2524 WINADVAPI WINBOOL WINAPI SetFileSecurityW(LPCWSTR lpFileName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor);
2525 WINADVAPI WINBOOL WINAPI GetFileSecurityA(LPCSTR lpFileName,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded);
2526 WINADVAPI WINBOOL WINAPI GetFileSecurityW(LPCWSTR lpFileName,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded);
2527 WINADVAPI WINBOOL WINAPI SetKernelObjectSecurity(HANDLE Handle,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR SecurityDescriptor);
2528 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR lpPathName,WINBOOL bWatchSubtree,DWORD dwNotifyFilter);
2529 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR lpPathName,WINBOOL bWatchSubtree,DWORD dwNotifyFilter);
2530 WINBASEAPI WINBOOL WINAPI FindNextChangeNotification(HANDLE hChangeHandle);
2531 WINBASEAPI WINBOOL WINAPI FindCloseChangeNotification(HANDLE hChangeHandle);
2532 WINBASEAPI WINBOOL WINAPI ReadDirectoryChangesW(HANDLE hDirectory,LPVOID lpBuffer,DWORD nBufferLength,WINBOOL bWatchSubtree,DWORD dwNotifyFilter,LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped,LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
2533 WINBASEAPI WINBOOL WINAPI VirtualLock(LPVOID lpAddress,SIZE_T dwSize);
2534 WINBASEAPI WINBOOL WINAPI VirtualUnlock(LPVOID lpAddress,SIZE_T dwSize);
2535 WINBASEAPI LPVOID WINAPI MapViewOfFileEx(HANDLE hFileMappingObject,DWORD dwDesiredAccess,DWORD dwFileOffsetHigh,DWORD dwFileOffsetLow,SIZE_T dwNumberOfBytesToMap,LPVOID lpBaseAddress);
2536 WINBASEAPI WINBOOL WINAPI SetPriorityClass(HANDLE hProcess,DWORD dwPriorityClass);
2537 WINBASEAPI DWORD WINAPI GetPriorityClass(HANDLE hProcess);
2538 WINBASEAPI WINBOOL WINAPI IsBadReadPtr(CONST VOID *lp,UINT_PTR ucb);
2539 WINBASEAPI WINBOOL WINAPI IsBadWritePtr(LPVOID lp,UINT_PTR ucb);
2540 WINBASEAPI WINBOOL WINAPI IsBadHugeReadPtr(CONST VOID *lp,UINT_PTR ucb);
2541 WINBASEAPI WINBOOL WINAPI IsBadHugeWritePtr(LPVOID lp,UINT_PTR ucb);
2542 WINBASEAPI WINBOOL WINAPI IsBadCodePtr(FARPROC lpfn);
2543 WINBASEAPI WINBOOL WINAPI IsBadStringPtrA(LPCSTR lpsz,UINT_PTR ucchMax);
2544 WINBASEAPI WINBOOL WINAPI IsBadStringPtrW(LPCWSTR lpsz,UINT_PTR ucchMax);
2545 WINADVAPI WINBOOL WINAPI LookupAccountSidA(LPCSTR lpSystemName,PSID Sid,LPSTR Name,LPDWORD cchName,LPSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2546 WINADVAPI WINBOOL WINAPI LookupAccountSidW(LPCWSTR lpSystemName,PSID Sid,LPWSTR Name,LPDWORD cchName,LPWSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2547 WINADVAPI WINBOOL WINAPI LookupAccountNameA(LPCSTR lpSystemName,LPCSTR lpAccountName,PSID Sid,LPDWORD cbSid,LPSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2548 WINADVAPI WINBOOL WINAPI LookupAccountNameW(LPCWSTR lpSystemName,LPCWSTR lpAccountName,PSID Sid,LPDWORD cbSid,LPWSTR ReferencedDomainName,LPDWORD cchReferencedDomainName,PSID_NAME_USE peUse);
2549 WINADVAPI WINBOOL WINAPI LookupPrivilegeValueA(LPCSTR lpSystemName,LPCSTR lpName,PLUID lpLuid);
2550 WINADVAPI WINBOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName,LPCWSTR lpName,PLUID lpLuid);
2551 WINADVAPI WINBOOL WINAPI LookupPrivilegeNameA(LPCSTR lpSystemName,PLUID lpLuid,LPSTR lpName,LPDWORD cchName);
2552 WINADVAPI WINBOOL WINAPI LookupPrivilegeNameW(LPCWSTR lpSystemName,PLUID lpLuid,LPWSTR lpName,LPDWORD cchName);
2553 WINADVAPI WINBOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR lpSystemName,LPCSTR lpName,LPSTR lpDisplayName,LPDWORD cchDisplayName,LPDWORD lpLanguageId);
2554 WINADVAPI WINBOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR lpSystemName,LPCWSTR lpName,LPWSTR lpDisplayName,LPDWORD cchDisplayName,LPDWORD lpLanguageId);
2555 WINADVAPI WINBOOL WINAPI AllocateLocallyUniqueId(PLUID Luid);
2556 WINBASEAPI WINBOOL WINAPI BuildCommDCBA(LPCSTR lpDef,LPDCB lpDCB);
2557 WINBASEAPI WINBOOL WINAPI BuildCommDCBW(LPCWSTR lpDef,LPDCB lpDCB);
2558 WINBASEAPI WINBOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR lpDef,LPDCB lpDCB,LPCOMMTIMEOUTS lpCommTimeouts);
2559 WINBASEAPI WINBOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR lpDef,LPDCB lpDCB,LPCOMMTIMEOUTS lpCommTimeouts);
2560 WINBASEAPI WINBOOL WINAPI CommConfigDialogA(LPCSTR lpszName,HWND hWnd,LPCOMMCONFIG lpCC);
2561 WINBASEAPI WINBOOL WINAPI CommConfigDialogW(LPCWSTR lpszName,HWND hWnd,LPCOMMCONFIG lpCC);
2562 WINBASEAPI WINBOOL WINAPI GetDefaultCommConfigA(LPCSTR lpszName,LPCOMMCONFIG lpCC,LPDWORD lpdwSize);
2563 WINBASEAPI WINBOOL WINAPI GetDefaultCommConfigW(LPCWSTR lpszName,LPCOMMCONFIG lpCC,LPDWORD lpdwSize);
2564 WINBASEAPI WINBOOL WINAPI SetDefaultCommConfigA(LPCSTR lpszName,LPCOMMCONFIG lpCC,DWORD dwSize);
2565 WINBASEAPI WINBOOL WINAPI SetDefaultCommConfigW(LPCWSTR lpszName,LPCOMMCONFIG lpCC,DWORD dwSize);
2567 #define MAX_COMPUTERNAME_LENGTH 15
2569 WINBASEAPI WINBOOL WINAPI GetComputerNameA(LPSTR lpBuffer,LPDWORD nSize);
2570 WINBASEAPI WINBOOL WINAPI GetComputerNameW(LPWSTR lpBuffer,LPDWORD nSize);
2571 WINBASEAPI WINBOOL WINAPI SetComputerNameA(LPCSTR lpComputerName);
2572 WINBASEAPI WINBOOL WINAPI SetComputerNameW(LPCWSTR lpComputerName);
2574 typedef enum _COMPUTER_NAME_FORMAT {
2575 ComputerNameNetBIOS,ComputerNameDnsHostname,ComputerNameDnsDomain,ComputerNameDnsFullyQualified,ComputerNamePhysicalNetBIOS,ComputerNamePhysicalDnsHostname,ComputerNamePhysicalDnsDomain,ComputerNamePhysicalDnsFullyQualified,ComputerNameMax
2576 } COMPUTER_NAME_FORMAT;
2578 WINBASEAPI WINBOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT NameType,LPSTR lpBuffer,LPDWORD nSize);
2579 WINBASEAPI WINBOOL WINAPI GetComputerNameExW(COMPUTER_NAME_FORMAT NameType,LPWSTR lpBuffer,LPDWORD nSize);
2580 WINBASEAPI WINBOOL WINAPI SetComputerNameExA(COMPUTER_NAME_FORMAT NameType,LPCSTR lpBuffer);
2581 WINBASEAPI WINBOOL WINAPI SetComputerNameExW(COMPUTER_NAME_FORMAT NameType,LPCWSTR lpBuffer);
2582 WINBASEAPI WINBOOL WINAPI DnsHostnameToComputerNameA(LPCSTR Hostname,LPSTR ComputerName,LPDWORD nSize);
2583 WINBASEAPI WINBOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR Hostname,LPWSTR ComputerName,LPDWORD nSize);
2584 WINADVAPI WINBOOL WINAPI GetUserNameA(LPSTR lpBuffer,LPDWORD pcbBuffer);
2585 WINADVAPI WINBOOL WINAPI GetUserNameW(LPWSTR lpBuffer,LPDWORD pcbBuffer);
2587 #define LOGON32_LOGON_INTERACTIVE 2
2588 #define LOGON32_LOGON_NETWORK 3
2589 #define LOGON32_LOGON_BATCH 4
2590 #define LOGON32_LOGON_SERVICE 5
2591 #define LOGON32_LOGON_UNLOCK 7
2592 #define LOGON32_LOGON_NETWORK_CLEARTEXT 8
2593 #define LOGON32_LOGON_NEW_CREDENTIALS 9
2595 #define LOGON32_PROVIDER_DEFAULT 0
2596 #define LOGON32_PROVIDER_WINNT35 1
2597 #define LOGON32_PROVIDER_WINNT40 2
2598 #define LOGON32_PROVIDER_WINNT50 3
2600 #ifdef UNICODE
2601 #define LogonUser LogonUserW
2602 #define LogonUserEx LogonUserExW
2603 #define CreateProcessAsUser CreateProcessAsUserW
2604 #else
2605 #define LogonUser LogonUserA
2606 #define LogonUserEx LogonUserExA
2607 #define CreateProcessAsUser CreateProcessAsUserA
2608 #endif
2610 WINADVAPI WINBOOL WINAPI LogonUserA(LPCSTR lpszUsername,LPCSTR lpszDomain,LPCSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken);
2611 WINADVAPI WINBOOL WINAPI LogonUserW(LPCWSTR lpszUsername,LPCWSTR lpszDomain,LPCWSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken);
2612 WINADVAPI WINBOOL WINAPI LogonUserExA(LPCSTR lpszUsername,LPCSTR lpszDomain,LPCSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken,PSID *ppLogonSid,PVOID *ppProfileBuffer,LPDWORD pdwProfileLength,PQUOTA_LIMITS pQuotaLimits);
2613 WINADVAPI WINBOOL WINAPI LogonUserExW(LPCWSTR lpszUsername,LPCWSTR lpszDomain,LPCWSTR lpszPassword,DWORD dwLogonType,DWORD dwLogonProvider,PHANDLE phToken,PSID *ppLogonSid,PVOID *ppProfileBuffer,LPDWORD pdwProfileLength,PQUOTA_LIMITS pQuotaLimits);
2614 WINADVAPI WINBOOL WINAPI ImpersonateLoggedOnUser(HANDLE hToken);
2615 WINADVAPI WINBOOL WINAPI CreateProcessAsUserA(HANDLE hToken,LPCSTR lpApplicationName,LPSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCSTR lpCurrentDirectory,LPSTARTUPINFOA lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2616 WINADVAPI WINBOOL WINAPI CreateProcessAsUserW(HANDLE hToken,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,WINBOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2618 #define LOGON_WITH_PROFILE 0x1
2619 #define LOGON_NETCREDENTIALS_ONLY 0x2
2620 #define LOGON_ZERO_PASSWORD_BUFFER 0x80000000
2622 WINADVAPI WINBOOL WINAPI CreateProcessWithLogonW(LPCWSTR lpUsername,LPCWSTR lpDomain,LPCWSTR lpPassword,DWORD dwLogonFlags,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2623 WINADVAPI WINBOOL WINAPI CreateProcessWithTokenW(HANDLE hToken,DWORD dwLogonFlags,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);
2624 WINADVAPI WINBOOL WINAPI ImpersonateAnonymousToken(HANDLE ThreadHandle);
2625 WINADVAPI WINBOOL WINAPI DuplicateTokenEx(HANDLE hExistingToken,DWORD dwDesiredAccess,LPSECURITY_ATTRIBUTES lpTokenAttributes,SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,TOKEN_TYPE TokenType,PHANDLE phNewToken);
2626 WINADVAPI WINBOOL WINAPI CreateRestrictedToken(HANDLE ExistingTokenHandle,DWORD Flags,DWORD DisableSidCount,PSID_AND_ATTRIBUTES SidsToDisable,DWORD DeletePrivilegeCount,PLUID_AND_ATTRIBUTES PrivilegesToDelete,DWORD RestrictedSidCount,PSID_AND_ATTRIBUTES SidsToRestrict,PHANDLE NewTokenHandle);
2627 WINADVAPI WINBOOL WINAPI IsTokenRestricted(HANDLE TokenHandle);
2628 WINADVAPI WINBOOL WINAPI IsTokenUntrusted(HANDLE TokenHandle);
2629 WINADVAPI WINBOOL WINAPI CheckTokenMembership(HANDLE TokenHandle,PSID SidToCheck,PBOOL IsMember);
2631 typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
2633 WINBASEAPI WINBOOL WINAPI RegisterWaitForSingleObject(PHANDLE phNewWaitObject,HANDLE hObject,WAITORTIMERCALLBACK Callback,PVOID Context,ULONG dwMilliseconds,ULONG dwFlags);
2634 WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE hObject,WAITORTIMERCALLBACK Callback,PVOID Context,ULONG dwMilliseconds,ULONG dwFlags);
2635 WINBASEAPI WINBOOL WINAPI UnregisterWait(HANDLE WaitHandle);
2636 WINBASEAPI WINBOOL WINAPI UnregisterWaitEx(HANDLE WaitHandle,HANDLE CompletionEvent);
2637 WINBASEAPI WINBOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE Function,PVOID Context,ULONG Flags);
2638 WINBASEAPI WINBOOL WINAPI BindIoCompletionCallback(HANDLE FileHandle,LPOVERLAPPED_COMPLETION_ROUTINE Function,ULONG Flags);
2639 WINBASEAPI HANDLE WINAPI CreateTimerQueue(VOID);
2640 WINBASEAPI WINBOOL WINAPI CreateTimerQueueTimer(PHANDLE phNewTimer,HANDLE TimerQueue,WAITORTIMERCALLBACK Callback,PVOID Parameter,DWORD DueTime,DWORD Period,ULONG Flags);
2641 WINBASEAPI WINBOOL WINAPI ChangeTimerQueueTimer(HANDLE TimerQueue,HANDLE Timer,ULONG DueTime,ULONG Period);
2642 WINBASEAPI WINBOOL WINAPI DeleteTimerQueueTimer(HANDLE TimerQueue,HANDLE Timer,HANDLE CompletionEvent);
2643 WINBASEAPI WINBOOL WINAPI DeleteTimerQueueEx(HANDLE TimerQueue,HANDLE CompletionEvent);
2644 WINBASEAPI HANDLE WINAPI SetTimerQueueTimer(HANDLE TimerQueue,WAITORTIMERCALLBACK Callback,PVOID Parameter,DWORD DueTime,DWORD Period,WINBOOL PreferIo);
2645 WINBASEAPI WINBOOL WINAPI CancelTimerQueueTimer(HANDLE TimerQueue,HANDLE Timer);
2646 WINBASEAPI WINBOOL WINAPI DeleteTimerQueue(HANDLE TimerQueue);
2648 #define HW_PROFILE_GUIDLEN 39
2649 #define MAX_PROFILE_LEN 80
2651 #define DOCKINFO_UNDOCKED (0x1)
2652 #define DOCKINFO_DOCKED (0x2)
2653 #define DOCKINFO_USER_SUPPLIED (0x4)
2654 #define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED)
2655 #define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED)
2657 typedef struct tagHW_PROFILE_INFOA {
2658 DWORD dwDockInfo;
2659 CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
2660 CHAR szHwProfileName[MAX_PROFILE_LEN];
2661 } HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA;
2663 typedef struct tagHW_PROFILE_INFOW {
2664 DWORD dwDockInfo;
2665 WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
2666 WCHAR szHwProfileName[MAX_PROFILE_LEN];
2667 } HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW;
2669 #ifdef UNICODE
2670 typedef HW_PROFILE_INFOW HW_PROFILE_INFO;
2671 typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO;
2672 #else
2673 typedef HW_PROFILE_INFOA HW_PROFILE_INFO;
2674 typedef LPHW_PROFILE_INFOA LPHW_PROFILE_INFO;
2675 #endif
2677 #ifdef UNICODE
2678 #define GetCurrentHwProfile GetCurrentHwProfileW
2679 #define GetVersionEx GetVersionExW
2680 #define VerifyVersionInfo VerifyVersionInfoW
2681 #else
2682 #define GetCurrentHwProfile GetCurrentHwProfileA
2683 #define GetVersionEx GetVersionExA
2684 #define VerifyVersionInfo VerifyVersionInfoA
2685 #endif
2687 WINADVAPI WINBOOL WINAPI GetCurrentHwProfileA (LPHW_PROFILE_INFOA lpHwProfileInfo);
2688 WINADVAPI WINBOOL WINAPI GetCurrentHwProfileW (LPHW_PROFILE_INFOW lpHwProfileInfo);
2689 WINBASEAPI WINBOOL WINAPI QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);
2690 WINBASEAPI WINBOOL WINAPI QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
2691 WINBASEAPI WINBOOL WINAPI GetVersionExA(LPOSVERSIONINFOA lpVersionInformation);
2692 WINBASEAPI WINBOOL WINAPI GetVersionExW(LPOSVERSIONINFOW lpVersionInformation);
2693 WINBASEAPI WINBOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA lpVersionInformation,DWORD dwTypeMask,DWORDLONG dwlConditionMask);
2694 WINBASEAPI WINBOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW lpVersionInformation,DWORD dwTypeMask,DWORDLONG dwlConditionMask);
2696 #include <winerror.h>
2698 #define TC_NORMAL 0
2699 #define TC_HARDERR 1
2700 #define TC_GP_TRAP 2
2701 #define TC_SIGNAL 3
2703 #define AC_LINE_OFFLINE 0x0
2704 #define AC_LINE_ONLINE 0x1
2705 #define AC_LINE_BACKUP_POWER 0x2
2706 #define AC_LINE_UNKNOWN 0xff
2708 #define BATTERY_FLAG_HIGH 0x1
2709 #define BATTERY_FLAG_LOW 0x2
2710 #define BATTERY_FLAG_CRITICAL 0x4
2711 #define BATTERY_FLAG_CHARGING 0x8
2712 #define BATTERY_FLAG_NO_BATTERY 0x80
2713 #define BATTERY_FLAG_UNKNOWN 0xff
2715 #define BATTERY_PERCENTAGE_UNKNOWN 0xff
2717 #define BATTERY_LIFE_UNKNOWN 0xffffffff
2719 typedef struct _SYSTEM_POWER_STATUS {
2720 BYTE ACLineStatus;
2721 BYTE BatteryFlag;
2722 BYTE BatteryLifePercent;
2723 BYTE Reserved1;
2724 DWORD BatteryLifeTime;
2725 DWORD BatteryFullLifeTime;
2726 } SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
2728 #ifdef UNICODE
2729 #define CreateJobObject CreateJobObjectW
2730 #define OpenJobObject OpenJobObjectW
2731 #define FindFirstVolume FindFirstVolumeW
2732 #define FindNextVolume FindNextVolumeW
2733 #define FindFirstVolumeMountPoint FindFirstVolumeMountPointW
2734 #define FindNextVolumeMountPoint FindNextVolumeMountPointW
2735 #define SetVolumeMountPoint SetVolumeMountPointW
2736 #define DeleteVolumeMountPoint DeleteVolumeMountPointW
2737 #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW
2738 #define GetVolumePathName GetVolumePathNameW
2739 #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW
2740 #else
2741 #define CreateJobObject CreateJobObjectA
2742 #define OpenJobObject OpenJobObjectA
2743 #define FindFirstVolume FindFirstVolumeA
2744 #define FindNextVolume FindNextVolumeA
2745 #define FindFirstVolumeMountPoint FindFirstVolumeMountPointA
2746 #define FindNextVolumeMountPoint FindNextVolumeMountPointA
2747 #define SetVolumeMountPoint SetVolumeMountPointA
2748 #define DeleteVolumeMountPoint DeleteVolumeMountPointA
2749 #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointA
2750 #define GetVolumePathName GetVolumePathNameA
2751 #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameA
2752 #endif
2754 WINBOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS lpSystemPowerStatus);
2755 WINBOOL WINAPI SetSystemPowerState(WINBOOL fSuspend,WINBOOL fForce);
2756 WINBASEAPI WINBOOL WINAPI AllocateUserPhysicalPages(HANDLE hProcess,PULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2757 WINBASEAPI WINBOOL WINAPI FreeUserPhysicalPages(HANDLE hProcess,PULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2758 WINBASEAPI WINBOOL WINAPI MapUserPhysicalPages(PVOID VirtualAddress,ULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2759 WINBASEAPI WINBOOL WINAPI MapUserPhysicalPagesScatter(PVOID *VirtualAddresses,ULONG_PTR NumberOfPages,PULONG_PTR PageArray);
2760 WINBASEAPI HANDLE WINAPI CreateJobObjectA(LPSECURITY_ATTRIBUTES lpJobAttributes,LPCSTR lpName);
2761 WINBASEAPI HANDLE WINAPI CreateJobObjectW(LPSECURITY_ATTRIBUTES lpJobAttributes,LPCWSTR lpName);
2762 WINBASEAPI HANDLE WINAPI OpenJobObjectA(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCSTR lpName);
2763 WINBASEAPI HANDLE WINAPI OpenJobObjectW(DWORD dwDesiredAccess,WINBOOL bInheritHandle,LPCWSTR lpName);
2764 WINBASEAPI WINBOOL WINAPI AssignProcessToJobObject(HANDLE hJob,HANDLE hProcess);
2765 WINBASEAPI WINBOOL WINAPI TerminateJobObject(HANDLE hJob,UINT uExitCode);
2766 WINBASEAPI WINBOOL WINAPI QueryInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,LPVOID lpJobObjectInformation,DWORD cbJobObjectInformationLength,LPDWORD lpReturnLength);
2767 WINBASEAPI WINBOOL WINAPI SetInformationJobObject(HANDLE hJob,JOBOBJECTINFOCLASS JobObjectInformationClass,LPVOID lpJobObjectInformation,DWORD cbJobObjectInformationLength);
2768 WINBASEAPI WINBOOL WINAPI IsProcessInJob(HANDLE ProcessHandle,HANDLE JobHandle,PBOOL Result);
2769 WINBASEAPI WINBOOL WINAPI CreateJobSet(ULONG NumJob,PJOB_SET_ARRAY UserJobSet,ULONG Flags);
2770 WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler (ULONG First,PVECTORED_EXCEPTION_HANDLER Handler);
2771 WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler(PVOID Handle);
2772 WINBASEAPI PVOID WINAPI AddVectoredContinueHandler (ULONG First,PVECTORED_EXCEPTION_HANDLER Handler);
2773 WINBASEAPI ULONG WINAPI RemoveVectoredContinueHandler(PVOID Handle);
2774 WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPSTR lpszVolumeName,DWORD cchBufferLength);
2775 WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPWSTR lpszVolumeName,DWORD cchBufferLength);
2776 WINBASEAPI WINBOOL WINAPI FindNextVolumeA(HANDLE hFindVolume,LPSTR lpszVolumeName,DWORD cchBufferLength);
2777 WINBASEAPI WINBOOL WINAPI FindNextVolumeW(HANDLE hFindVolume,LPWSTR lpszVolumeName,DWORD cchBufferLength);
2778 WINBASEAPI WINBOOL WINAPI FindVolumeClose(HANDLE hFindVolume);
2779 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA(LPCSTR lpszRootPathName,LPSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2780 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW(LPCWSTR lpszRootPathName,LPWSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2781 WINBASEAPI WINBOOL WINAPI FindNextVolumeMountPointA(HANDLE hFindVolumeMountPoint,LPSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2782 WINBASEAPI WINBOOL WINAPI FindNextVolumeMountPointW(HANDLE hFindVolumeMountPoint,LPWSTR lpszVolumeMountPoint,DWORD cchBufferLength);
2783 WINBASEAPI WINBOOL WINAPI FindVolumeMountPointClose(HANDLE hFindVolumeMountPoint);
2784 WINBASEAPI WINBOOL WINAPI SetVolumeMountPointA(LPCSTR lpszVolumeMountPoint,LPCSTR lpszVolumeName);
2785 WINBASEAPI WINBOOL WINAPI SetVolumeMountPointW(LPCWSTR lpszVolumeMountPoint,LPCWSTR lpszVolumeName);
2786 WINBASEAPI WINBOOL WINAPI DeleteVolumeMountPointA(LPCSTR lpszVolumeMountPoint);
2787 WINBASEAPI WINBOOL WINAPI DeleteVolumeMountPointW(LPCWSTR lpszVolumeMountPoint);
2788 WINBASEAPI WINBOOL WINAPI GetVolumeNameForVolumeMountPointA(LPCSTR lpszVolumeMountPoint,LPSTR lpszVolumeName,DWORD cchBufferLength);
2789 WINBASEAPI WINBOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR lpszVolumeMountPoint,LPWSTR lpszVolumeName,DWORD cchBufferLength);
2790 WINBASEAPI WINBOOL WINAPI GetVolumePathNameA(LPCSTR lpszFileName,LPSTR lpszVolumePathName,DWORD cchBufferLength);
2791 WINBASEAPI WINBOOL WINAPI GetVolumePathNameW(LPCWSTR lpszFileName,LPWSTR lpszVolumePathName,DWORD cchBufferLength);
2792 WINBASEAPI WINBOOL WINAPI GetVolumePathNamesForVolumeNameA(LPCSTR lpszVolumeName,LPCH lpszVolumePathNames,DWORD cchBufferLength,PDWORD lpcchReturnLength);
2793 WINBASEAPI WINBOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR lpszVolumeName,LPWCH lpszVolumePathNames,DWORD cchBufferLength,PDWORD lpcchReturnLength);
2795 #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID 0x1
2796 #define ACTCTX_FLAG_LANGID_VALID 0x2
2797 #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x4
2798 #define ACTCTX_FLAG_RESOURCE_NAME_VALID 0x8
2799 #define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x10
2800 #define ACTCTX_FLAG_APPLICATION_NAME_VALID 0x20
2801 #define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF 0x40
2802 #define ACTCTX_FLAG_HMODULE_VALID 0x80
2804 typedef struct tagACTCTXA {
2805 ULONG cbSize;
2806 DWORD dwFlags;
2807 LPCSTR lpSource;
2808 USHORT wProcessorArchitecture;
2809 LANGID wLangId;
2810 LPCSTR lpAssemblyDirectory;
2811 LPCSTR lpResourceName;
2812 LPCSTR lpApplicationName;
2813 HMODULE hModule;
2814 } ACTCTXA,*PACTCTXA;
2816 typedef struct tagACTCTXW {
2817 ULONG cbSize;
2818 DWORD dwFlags;
2819 LPCWSTR lpSource;
2820 USHORT wProcessorArchitecture;
2821 LANGID wLangId;
2822 LPCWSTR lpAssemblyDirectory;
2823 LPCWSTR lpResourceName;
2824 LPCWSTR lpApplicationName;
2825 HMODULE hModule;
2826 } ACTCTXW,*PACTCTXW;
2828 typedef const ACTCTXA *PCACTCTXA;
2829 typedef const ACTCTXW *PCACTCTXW;
2831 #ifdef UNICODE
2832 typedef ACTCTXW ACTCTX;
2833 typedef PACTCTXW PACTCTX;
2834 typedef PCACTCTXW PCACTCTX;
2835 #else
2836 typedef ACTCTXA ACTCTX;
2837 typedef PACTCTXA PACTCTX;
2838 typedef PCACTCTXA PCACTCTX;
2839 #endif
2841 #ifdef UNICODE
2842 #define CreateActCtx CreateActCtxW
2843 #else
2844 #define CreateActCtx CreateActCtxA
2845 #endif
2847 WINBASEAPI HANDLE WINAPI CreateActCtxA(PCACTCTXA pActCtx);
2848 WINBASEAPI HANDLE WINAPI CreateActCtxW(PCACTCTXW pActCtx);
2849 WINBASEAPI VOID WINAPI AddRefActCtx(HANDLE hActCtx);
2850 WINBASEAPI VOID WINAPI ReleaseActCtx(HANDLE hActCtx);
2851 WINBASEAPI WINBOOL WINAPI ZombifyActCtx(HANDLE hActCtx);
2852 WINBASEAPI WINBOOL WINAPI ActivateActCtx(HANDLE hActCtx,ULONG_PTR *lpCookie);
2854 #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION (0x1)
2856 WINBASEAPI WINBOOL WINAPI DeactivateActCtx(DWORD dwFlags,ULONG_PTR ulCookie);
2857 WINBASEAPI WINBOOL WINAPI GetCurrentActCtx(HANDLE *lphActCtx);
2859 typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
2860 ULONG cbSize;
2861 ULONG ulDataFormatVersion;
2862 PVOID lpData;
2863 ULONG ulLength;
2864 PVOID lpSectionGlobalData;
2865 ULONG ulSectionGlobalDataLength;
2866 PVOID lpSectionBase;
2867 ULONG ulSectionTotalLength;
2868 HANDLE hActCtx;
2869 ULONG ulAssemblyRosterIndex;
2870 } ACTCTX_SECTION_KEYED_DATA_2600,*PACTCTX_SECTION_KEYED_DATA_2600;
2872 typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
2874 typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
2875 PVOID lpInformation;
2876 PVOID lpSectionBase;
2877 ULONG ulSectionLength;
2878 PVOID lpSectionGlobalDataBase;
2879 ULONG ulSectionGlobalDataLength;
2880 } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA,*PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
2882 typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
2884 typedef struct tagACTCTX_SECTION_KEYED_DATA {
2885 ULONG cbSize;
2886 ULONG ulDataFormatVersion;
2887 PVOID lpData;
2888 ULONG ulLength;
2889 PVOID lpSectionGlobalData;
2890 ULONG ulSectionGlobalDataLength;
2891 PVOID lpSectionBase;
2892 ULONG ulSectionTotalLength;
2893 HANDLE hActCtx;
2894 ULONG ulAssemblyRosterIndex;
2896 ULONG ulFlags;
2897 ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
2898 } ACTCTX_SECTION_KEYED_DATA,*PACTCTX_SECTION_KEYED_DATA;
2900 typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
2902 #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX 0x1
2903 #define FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS 0x2
2904 #define FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA 0x4
2906 #ifdef UNICODE
2907 #define FindActCtxSectionString FindActCtxSectionStringW
2908 #else
2909 #define FindActCtxSectionString FindActCtxSectionStringA
2910 #endif
2912 WINBASEAPI WINBOOL WINAPI FindActCtxSectionStringA(DWORD dwFlags,const GUID *lpExtensionGuid,ULONG ulSectionId,LPCSTR lpStringToFind,PACTCTX_SECTION_KEYED_DATA ReturnedData);
2913 WINBASEAPI WINBOOL WINAPI FindActCtxSectionStringW(DWORD dwFlags,const GUID *lpExtensionGuid,ULONG ulSectionId,LPCWSTR lpStringToFind,PACTCTX_SECTION_KEYED_DATA ReturnedData);
2914 WINBASEAPI WINBOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags,const GUID *lpExtensionGuid,ULONG ulSectionId,const GUID *lpGuidToFind,PACTCTX_SECTION_KEYED_DATA ReturnedData);
2916 #ifndef RC_INVOKED
2917 #ifndef ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED
2919 typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
2920 HANDLE hActCtx;
2921 DWORD dwFlags;
2922 } ACTIVATION_CONTEXT_BASIC_INFORMATION,*PACTIVATION_CONTEXT_BASIC_INFORMATION;
2924 typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
2926 #define ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED 1
2927 #endif
2928 #endif
2930 #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX 0x4
2931 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE 0x8
2932 #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS 0x10
2933 #define QUERY_ACTCTX_FLAG_NO_ADDREF 0x80000000
2935 WINBASEAPI WINBOOL WINAPI QueryActCtxW(DWORD dwFlags,HANDLE hActCtx,PVOID pvSubInstance,ULONG ulInfoClass,PVOID pvBuffer,SIZE_T cbBuffer,SIZE_T *pcbWrittenOrRequired);
2937 typedef WINBOOL (WINAPI *PQUERYACTCTXW_FUNC)(DWORD dwFlags,HANDLE hActCtx,PVOID pvSubInstance,ULONG ulInfoClass,PVOID pvBuffer,SIZE_T cbBuffer,SIZE_T *pcbWrittenOrRequired);
2939 WINBASEAPI WINBOOL WINAPI ProcessIdToSessionId(DWORD dwProcessId,DWORD *pSessionId);
2940 WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId();
2941 WINBASEAPI WINBOOL WINAPI IsWow64Process(HANDLE hProcess,PBOOL Wow64Process);
2942 WINBASEAPI WINBOOL WINAPI GetLogicalProcessorInformation(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer,PDWORD ReturnedLength);
2943 WINBASEAPI WINBOOL WINAPI GetNumaHighestNodeNumber(PULONG HighestNodeNumber);
2944 WINBASEAPI WINBOOL WINAPI GetNumaProcessorNode(UCHAR Processor,PUCHAR NodeNumber);
2945 WINBASEAPI WINBOOL WINAPI GetNumaNodeProcessorMask(UCHAR Node,PULONGLONG ProcessorMask);
2946 WINBASEAPI WINBOOL WINAPI GetNumaAvailableMemoryNode(UCHAR Node,PULONGLONG AvailableBytes);
2948 #ifdef __cplusplus
2950 #endif
2951 #endif