Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 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_
8
 
9
#define WINADVAPI DECLSPEC_IMPORT
10
#define WINBASEAPI DECLSPEC_IMPORT
11
#define ZAWPROXYAPI DECLSPEC_IMPORT
12
 
13
#ifdef __cplusplus
14
extern "C" {
15
#endif
16
 
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()
23
 
24
#define Yield()
25
 
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)
30
 
31
#define FILE_BEGIN 0
32
#define FILE_CURRENT 1
33
#define FILE_END 2
34
 
35
#define TIME_ZONE_ID_INVALID ((DWORD)0xffffffff)
36
 
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
72
 
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
84
 
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
90
 
91
#define PROGRESS_CONTINUE 0
92
#define PROGRESS_CANCEL 1
93
#define PROGRESS_STOP 2
94
#define PROGRESS_QUIET 3
95
 
96
#define CALLBACK_CHUNK_FINISHED 0x0
97
#define CALLBACK_STREAM_SWITCH 0x1
98
 
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
103
 
104
#define REPLACEFILE_WRITE_THROUGH 0x1
105
#define REPLACEFILE_IGNORE_MERGE_ERRORS 0x2
106
 
107
#define PIPE_ACCESS_INBOUND 0x1
108
#define PIPE_ACCESS_OUTBOUND 0x2
109
#define PIPE_ACCESS_DUPLEX 0x3
110
 
111
#define PIPE_CLIENT_END 0x0
112
#define PIPE_SERVER_END 0x1
113
 
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
120
 
121
#define PIPE_UNLIMITED_INSTANCES 255
122
 
123
#define SECURITY_ANONYMOUS (SecurityAnonymous << 16)
124
#define SECURITY_IDENTIFICATION (SecurityIdentification << 16)
125
#define SECURITY_IMPERSONATION (SecurityImpersonation << 16)
126
#define SECURITY_DELEGATION (SecurityDelegation << 16)
127
 
128
#define SECURITY_CONTEXT_TRACKING 0x40000
129
#define SECURITY_EFFECTIVE_ONLY 0x80000
130
 
131
#define SECURITY_SQOS_PRESENT 0x100000
132
#define SECURITY_VALID_SQOS_FLAGS 0x1f0000
133
 
134
  typedef struct _OVERLAPPED {
135
    ULONG_PTR Internal;
136
    ULONG_PTR InternalHigh;
137
    union {
138
      struct {
139
	DWORD Offset;
140
	DWORD OffsetHigh;
141
      };
142
      PVOID Pointer;
143
    };
144
    HANDLE hEvent;
145
  } OVERLAPPED,*LPOVERLAPPED;
146
 
147
  typedef struct _SECURITY_ATTRIBUTES {
148
    DWORD nLength;
149
    LPVOID lpSecurityDescriptor;
150
    WINBOOL bInheritHandle;
151
  } SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
152
 
153
  typedef struct _PROCESS_INFORMATION {
154
    HANDLE hProcess;
155
    HANDLE hThread;
156
    DWORD dwProcessId;
157
    DWORD dwThreadId;
158
  } PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION;
159
 
160
#ifndef _FILETIME_
161
#define _FILETIME_
162
  typedef struct _FILETIME {
163
    DWORD dwLowDateTime;
164
    DWORD dwHighDateTime;
165
  } FILETIME,*PFILETIME,*LPFILETIME;
166
#endif
167
 
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;
178
 
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;
183
 
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;
190
 
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);
195
 
196
#ifdef I_X86_
197
  typedef PLDT_ENTRY LPLDT_ENTRY;
198
#else
199
  typedef LPVOID LPLDT_ENTRY;
200
#endif
201
 
202
#define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
203
#define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
204
 
205
#define SP_SERIALCOMM ((DWORD)0x1)
206
 
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)
220
 
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)
231
 
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)
239
 
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)
260
 
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)
267
 
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)
276
 
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;
297
 
298
#define COMMPROP_INITIALIZED ((DWORD)0xE73CF52E)
299
 
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;
312
 
313
#define DTR_CONTROL_DISABLE 0x0
314
#define DTR_CONTROL_ENABLE 0x1
315
#define DTR_CONTROL_HANDSHAKE 0x2
316
 
317
#define RTS_CONTROL_DISABLE 0x0
318
#define RTS_CONTROL_ENABLE 0x1
319
#define RTS_CONTROL_HANDSHAKE 0x2
320
#define RTS_CONTROL_TOGGLE 0x3
321
 
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;
352
 
353
  typedef struct _COMMTIMEOUTS {
354
    DWORD ReadIntervalTimeout;
355
    DWORD ReadTotalTimeoutMultiplier;
356
    DWORD ReadTotalTimeoutConstant;
357
    DWORD WriteTotalTimeoutMultiplier;
358
    DWORD WriteTotalTimeoutConstant;
359
  } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
360
 
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;
371
 
372
  typedef struct _SYSTEM_INFO {
373
    union {
374
      DWORD dwOemId;
375
      struct {
376
	WORD wProcessorArchitecture;
377
	WORD wReserved;
378
      };
379
    };
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;
390
 
391
#define FreeModule(hLibModule) FreeLibrary((hLibModule))
392
#define MakeProcInstance(lpProc,hInstance) (lpProc)
393
#define FreeProcInstance(lpProc) (lpProc)
394
 
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
409
 
410
#define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
411
#define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
412
 
413
#define GlobalLRUNewest(h) ((HANDLE)(h))
414
#define GlobalLRUOldest(h) ((HANDLE)(h))
415
#define GlobalDiscard(h) GlobalReAlloc((h),0,GMEM_MOVEABLE)
416
 
417
#define GMEM_DISCARDED 0x4000
418
#define GMEM_LOCKCOUNT 0xff
419
 
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;
430
 
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
440
 
441
#define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
442
#define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
443
 
444
#define NONZEROLHND (LMEM_MOVEABLE)
445
#define NONZEROLPTR (LMEM_FIXED)
446
 
447
#define LocalDiscard(h) LocalReAlloc((h),0,LMEM_MOVEABLE)
448
 
449
#define LMEM_DISCARDED 0x4000
450
#define LMEM_LOCKCOUNT 0xff
451
 
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
469
 
470
#define CREATE_BREAKAWAY_FROM_JOB 0x1000000
471
#define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x2000000
472
 
473
#define CREATE_DEFAULT_ERROR_MODE 0x4000000
474
#define CREATE_NO_WINDOW 0x8000000
475
 
476
#define PROFILE_USER 0x10000000
477
#define PROFILE_KERNEL 0x20000000
478
#define PROFILE_SERVER 0x40000000
479
 
480
#define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000
481
 
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)
488
 
489
#define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT
490
#define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE
491
 
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
501
 
502
  typedef struct _EXCEPTION_DEBUG_INFO {
503
    EXCEPTION_RECORD ExceptionRecord;
504
    DWORD dwFirstChance;
505
  } EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
506
 
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;
512
 
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;
525
 
526
  typedef struct _EXIT_THREAD_DEBUG_INFO {
527
    DWORD dwExitCode;
528
  } EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
529
 
530
  typedef struct _EXIT_PROCESS_DEBUG_INFO {
531
    DWORD dwExitCode;
532
  } EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
533
 
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;
542
 
543
  typedef struct _UNLOAD_DLL_DEBUG_INFO {
544
    LPVOID lpBaseOfDll;
545
  } UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
546
 
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;
552
 
553
  typedef struct _RIP_INFO {
554
    DWORD dwError;
555
    DWORD dwType;
556
  } RIP_INFO,*LPRIP_INFO;
557
 
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;
574
 
575
  typedef PCONTEXT LPCONTEXT;
576
  typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
577
  typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
578
 
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
586
 
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
593
 
594
#define STD_INPUT_HANDLE ((DWORD)-10)
595
#define STD_OUTPUT_HANDLE ((DWORD)-11)
596
#define STD_ERROR_HANDLE ((DWORD)-12)
597
 
598
#define NOPARITY 0
599
#define ODDPARITY 1
600
#define EVENPARITY 2
601
#define MARKPARITY 3
602
#define SPACEPARITY 4
603
 
604
#define ONESTOPBIT 0
605
#define ONE5STOPBITS 1
606
#define TWOSTOPBITS 2
607
 
608
#define IGNORE 0
609
#define INFINITE 0xffffffff
610
 
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
626
 
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
638
 
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)
647
 
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
661
 
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
671
 
672
#define PURGE_TXABORT 0x1
673
#define PURGE_RXABORT 0x2
674
#define PURGE_TXCLEAR 0x4
675
#define PURGE_RXCLEAR 0x8
676
 
677
#define LPTx 0x80
678
 
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)
683
 
684
#define S_QUEUEEMPTY 0
685
#define S_THRESHOLD 1
686
#define S_ALLTHRESHOLD 2
687
 
688
#define S_NORMAL 0
689
#define S_LEGATO 1
690
#define S_STACCATO 2
691
 
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
700
 
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)
717
 
718
#define NMPWAIT_WAIT_FOREVER 0xffffffff
719
#define NMPWAIT_NOWAIT 0x1
720
#define NMPWAIT_USE_DEFAULT_WAIT 0x0
721
 
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
729
 
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
735
 
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
752
 
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;
762
 
763
#ifndef NOWINBASEINTERLOCK
764
 
765
#ifndef _NTOS_
766
 
767
#if defined(__ia64__) && !defined(RC_INVOKED)
768
 
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
784
 
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
793
 
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);
817
 
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;
829
  }
830
#endif
831
 
832
#ifndef InterlockedOr
833
#define InterlockedOr InterlockedOr_Inline
834
 
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;
844
  }
845
#endif
846
 
847
#ifndef InterlockedXor
848
#define InterlockedXor InterlockedXor_Inline
849
 
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;
859
  }
860
#endif
861
 
862
#ifndef !defined (InterlockedAnd64)
863
#define InterlockedAnd64 InterlockedAnd64_Inline
864
 
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;
871
  }
872
#endif
873
 
874
#ifndef InterlockedOr64
875
#define InterlockedOr64 InterlockedOr64_Inline
876
 
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;
883
  }
884
#endif
885
 
886
#ifndef InterlockedXor64
887
#define InterlockedXor64 InterlockedXor64_Inline
888
 
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;
895
  }
896
#endif
897
 
898
#ifndef InterlockedBitTestAndSet
899
#define InterlockedBitTestAndSet InterlockedBitTestAndSet_Inline
900
 
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);
905
  }
906
#endif
907
 
908
#ifndef InterlockedBitTestAndReset
909
#define InterlockedBitTestAndReset InterlockedBitTestAndReset_Inline
910
 
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);
915
  }
916
#endif
917
 
918
#ifndef InterlockedBitTestAndComplement
919
#define InterlockedBitTestAndComplement InterlockedBitTestAndComplement_Inline
920
 
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);
925
  }
926
#endif
927
#elif defined(__x86_64) && !defined(RC_INVOKED)
928
 
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
954
 
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);
974
 
975
#define InterlockedExchangePointer(Target,Value) (PVOID)InterlockedExchange((PLONG)(Target),(LONG)(Value))
976
 
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);
980
 
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;
987
  }
988
 
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;
995
  }
996
 
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);
1002
 
1003
    return Old;
1004
  }
1005
 
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;
1012
  }
1013
 
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;
1020
  }
1021
 
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;
1028
  }
1029
 
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;
1036
  }
1037
 
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));
1041
  }
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
1046
 
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
1060
 
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
1070
 
1071
  WINBASEAPI WINBOOL WINAPI FreeResource(HGLOBAL hResData);
1072
  WINBASEAPI LPVOID WINAPI LockResource(HGLOBAL hResData);
1073
 
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)
1078
 
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);
1099
 
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;
1111
 
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);
1147
 
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;
1165
    };
1166
  } PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY,*PPROCESS_HEAP_ENTRY;
1167
 
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
1173
 
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);
1179
 
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
1187
 
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
1203
 
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
1209
 
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);
1240
 
1241
  typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(struct _EXCEPTION_POINTERS *ExceptionInfo);
1242
  typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1243
 
1244
  WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
1245
 
1246
#define FIBER_FLAG_FLOAT_SWITCH 0x1
1247
 
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);
1285
 
1286
#ifndef RC_INVOKED
1287
#ifdef WINBASE_DECLARE_RESTORE_LAST_ERROR
1288
  WINBASEAPI VOID WINAPI RestoreLastError(DWORD dwErrCode);
1289
 
1290
  typedef VOID (WINAPI *PRESTORE_LAST_ERROR)(DWORD);
1291
 
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
1297
 
1298
#define HasOverlappedIoCompleted(lpOverlapped) (((DWORD)(lpOverlapped)->Internal)!=STATUS_PENDING)
1299
 
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);
1304
 
1305
#define SEM_FAILCRITICALERRORS 0x1
1306
#define SEM_NOGPFAULTERRORBOX 0x2
1307
#define SEM_NOALIGNMENTFAULTEXCEPT 0x4
1308
#define SEM_NOOPENFILEERRORBOX 0x8000
1309
 
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);
1317
 
1318
  typedef VOID (WINAPI *PAPCFUNC)(ULONG_PTR dwParam);
1319
 
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);
1355
 
1356
#define LOCKFILE_FAIL_IMMEDIATELY 0x1
1357
#define LOCKFILE_EXCLUSIVE_LOCK 0x2
1358
 
1359
  WINBASEAPI WINBOOL WINAPI UnlockFileEx(HANDLE hFile,DWORD dwReserved,DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh,LPOVERLAPPED lpOverlapped);
1360
 
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;
1373
 
1374
#ifdef UNICODE
1375
#define SetFileShortName SetFileShortNameW
1376
#else
1377
#define SetFileShortName SetFileShortNameA
1378
#endif
1379
 
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);
1407
 
1408
#define HANDLE_FLAG_INHERIT 0x1
1409
#define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x2
1410
 
1411
#define HINSTANCE_ERROR 32
1412
 
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);
1441
 
1442
#define GET_TAPE_MEDIA_INFORMATION 0
1443
#define GET_TAPE_DRIVE_INFORMATION 1
1444
 
1445
  WINBASEAPI DWORD WINAPI SetTapeParameters(HANDLE hDevice,DWORD dwOperation,LPVOID lpTapeInformation);
1446
 
1447
#define SET_TAPE_MEDIA_INFORMATION 0
1448
#define SET_TAPE_DRIVE_INFORMATION 1
1449
 
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);
1464
 
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;
1474
 
1475
#ifdef UNICODE
1476
#define FormatMessage FormatMessageW
1477
#else
1478
#define FormatMessage FormatMessageA
1479
#endif
1480
 
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);
1497
 
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
1505
 
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
1517
 
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);
1536
 
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
1547
 
1548
  WINADVAPI WINBOOL WINAPI FileEncryptionStatusA(LPCSTR lpFileName,LPDWORD lpStatus);
1549
  WINADVAPI WINBOOL WINAPI FileEncryptionStatusW(LPCWSTR lpFileName,LPDWORD lpStatus);
1550
 
1551
#define EFS_USE_RECOVERY_KEYS (0x1)
1552
 
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);
1555
 
1556
#define CREATE_FOR_IMPORT (1)
1557
#define CREATE_FOR_DIR (2)
1558
#define OVERWRITE_HIDDEN (4)
1559
 
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
1577
 
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);
1605
 
1606
#define FLS_OUT_OF_INDEXES ((DWORD)0xffffffff)
1607
 
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);
1612
 
1613
#define TLS_OUT_OF_INDEXES ((DWORD)0xffffffff)
1614
 
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);
1619
 
1620
  typedef VOID (WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD dwErrorCode,DWORD dwNumberOfBytesTransfered,LPOVERLAPPED lpOverlapped);
1621
 
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);
1631
 
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;
1639
 
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
1650
 
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
1656
 
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);
1659
 
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
1669
 
1670
#define STARTF_USEHOTKEY 0x200
1671
 
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;
1692
 
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;
1713
 
1714
#ifdef UNICODE
1715
  typedef STARTUPINFOW STARTUPINFO;
1716
  typedef LPSTARTUPINFOW LPSTARTUPINFO;
1717
#else
1718
  typedef STARTUPINFOA STARTUPINFO;
1719
  typedef LPSTARTUPINFOA LPSTARTUPINFO;
1720
#endif
1721
 
1722
#define SHUTDOWN_NORETRY 0x1
1723
 
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;
1736
 
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;
1749
 
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
1759
 
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;
1768
 
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
1784
 
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);
1797
 
1798
  typedef VOID (WINAPI *PTIMERAPCROUTINE)(LPVOID lpArgToCompletionRoutine,DWORD dwTimerLowValue,DWORD dwTimerHighValue);
1799
 
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
1821
 
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);
1834
 
1835
  typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
1836
    LowMemoryResourceNotification,HighMemoryResourceNotification
1837
  } MEMORY_RESOURCE_NOTIFICATION_TYPE;
1838
 
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);
1845
 
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
1852
 
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);
1857
 
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)
1862
 
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);
1865
 
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
1873
 
1874
  WINBASEAPI WINBOOL WINAPI GetModuleHandleExA(DWORD dwFlags,LPCSTR lpModuleName,HMODULE *phModule);
1875
  WINBASEAPI WINBOOL WINAPI GetModuleHandleExW(DWORD dwFlags,LPCWSTR lpModuleName,HMODULE *phModule);
1876
#endif
1877
 
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
1907
 
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);
1939
 
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
2013
 
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);
2020
 
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);
2083
 
2084
#ifndef RC_INVOKED
2085
#ifdef UNICODE
2086
#define GetSystemWow64Directory GetSystemWow64DirectoryW
2087
#else
2088
#define GetSystemWow64Directory GetSystemWow64DirectoryA
2089
#endif
2090
 
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);
2096
 
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);
2099
 
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")
2106
 
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
2117
 
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
2151
 
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);
2172
 
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
2178
 
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);
2183
 
2184
#define EXPAND_LOCAL_DRIVES
2185
 
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);
2193
 
2194
  typedef enum _GET_FILEEX_INFO_LEVELS {
2195
    GetFileExInfoStandard,GetFileExMaxInfoLevel
2196
  } GET_FILEEX_INFO_LEVELS;
2197
 
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
2209
 
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);
2218
 
2219
  typedef enum _FINDEX_INFO_LEVELS {
2220
    FindExInfoStandard,FindExInfoMaxInfoLevel
2221
  } FINDEX_INFO_LEVELS;
2222
 
2223
  typedef enum _FINDEX_SEARCH_OPS {
2224
    FindExSearchNameMatch,FindExSearchLimitToDirectories,FindExSearchLimitToDevices,FindExSearchMaxSearchOp
2225
  } FINDEX_SEARCH_OPS;
2226
 
2227
#define FIND_FIRST_EX_CASE_SENSITIVE 0x1
2228
 
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
2338
 
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);
2349
 
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);
2351
 
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);
2360
 
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
2367
 
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);
2372
 
2373
  typedef enum _STREAM_INFO_LEVELS {
2374
    FindStreamInfoStandard,FindStreamInfoMaxInfoLevel
2375
  } STREAM_INFO_LEVELS;
2376
 
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;
2381
 
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);
2419
 
2420
#define EVENTLOG_FULL_INFO 0
2421
 
2422
  typedef struct _EVENTLOG_FULL_INFORMATION {
2423
    DWORD dwFull;
2424
  } EVENTLOG_FULL_INFORMATION,*LPEVENTLOG_FULL_INFORMATION;
2425
 
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);
2566
 
2567
#define MAX_COMPUTERNAME_LENGTH 15
2568
 
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);
2573
 
2574
  typedef enum _COMPUTER_NAME_FORMAT {
2575
    ComputerNameNetBIOS,ComputerNameDnsHostname,ComputerNameDnsDomain,ComputerNameDnsFullyQualified,ComputerNamePhysicalNetBIOS,ComputerNamePhysicalDnsHostname,ComputerNamePhysicalDnsDomain,ComputerNamePhysicalDnsFullyQualified,ComputerNameMax
2576
  } COMPUTER_NAME_FORMAT;
2577
 
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);
2586
 
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
2594
 
2595
#define LOGON32_PROVIDER_DEFAULT 0
2596
#define LOGON32_PROVIDER_WINNT35 1
2597
#define LOGON32_PROVIDER_WINNT40 2
2598
#define LOGON32_PROVIDER_WINNT50 3
2599
 
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
2609
 
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);
2617
 
2618
#define LOGON_WITH_PROFILE 0x1
2619
#define LOGON_NETCREDENTIALS_ONLY 0x2
2620
#define LOGON_ZERO_PASSWORD_BUFFER 0x80000000
2621
 
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);
2630
 
2631
  typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
2632
 
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);
2647
 
2648
#define HW_PROFILE_GUIDLEN 39
2649
#define MAX_PROFILE_LEN 80
2650
 
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)
2656
 
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;
2662
 
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;
2668
 
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
2676
 
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
2686
 
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);
2695
 
2696
#include 
2697
 
2698
#define TC_NORMAL 0
2699
#define TC_HARDERR 1
2700
#define TC_GP_TRAP 2
2701
#define TC_SIGNAL 3
2702
 
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
2707
 
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
2714
 
2715
#define BATTERY_PERCENTAGE_UNKNOWN 0xff
2716
 
2717
#define BATTERY_LIFE_UNKNOWN 0xffffffff
2718
 
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;
2727
 
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
2753
 
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);
2794
 
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
2803
 
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;
2815
 
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;
2827
 
2828
  typedef const ACTCTXA *PCACTCTXA;
2829
  typedef const ACTCTXW *PCACTCTXW;
2830
 
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
2840
 
2841
#ifdef UNICODE
2842
#define CreateActCtx CreateActCtxW
2843
#else
2844
#define CreateActCtx CreateActCtxA
2845
#endif
2846
 
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);
2853
 
2854
#define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION (0x1)
2855
 
2856
  WINBASEAPI WINBOOL WINAPI DeactivateActCtx(DWORD dwFlags,ULONG_PTR ulCookie);
2857
  WINBASEAPI WINBOOL WINAPI GetCurrentActCtx(HANDLE *lphActCtx);
2858
 
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;
2871
 
2872
  typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
2873
 
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;
2881
 
2882
  typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
2883
 
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;
2895
 
2896
    ULONG ulFlags;
2897
    ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
2898
  } ACTCTX_SECTION_KEYED_DATA,*PACTCTX_SECTION_KEYED_DATA;
2899
 
2900
  typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
2901
 
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
2905
 
2906
#ifdef UNICODE
2907
#define FindActCtxSectionString FindActCtxSectionStringW
2908
#else
2909
#define FindActCtxSectionString FindActCtxSectionStringA
2910
#endif
2911
 
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);
2915
 
2916
#ifndef RC_INVOKED
2917
#ifndef ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED
2918
 
2919
  typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
2920
    HANDLE hActCtx;
2921
    DWORD dwFlags;
2922
  } ACTIVATION_CONTEXT_BASIC_INFORMATION,*PACTIVATION_CONTEXT_BASIC_INFORMATION;
2923
 
2924
  typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
2925
 
2926
#define ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED 1
2927
#endif
2928
#endif
2929
 
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
2934
 
2935
  WINBASEAPI WINBOOL WINAPI QueryActCtxW(DWORD dwFlags,HANDLE hActCtx,PVOID pvSubInstance,ULONG ulInfoClass,PVOID pvBuffer,SIZE_T cbBuffer,SIZE_T *pcbWrittenOrRequired);
2936
 
2937
  typedef WINBOOL (WINAPI *PQUERYACTCTXW_FUNC)(DWORD dwFlags,HANDLE hActCtx,PVOID pvSubInstance,ULONG ulInfoClass,PVOID pvBuffer,SIZE_T cbBuffer,SIZE_T *pcbWrittenOrRequired);
2938
 
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);
2947
 
2948
#ifdef __cplusplus
2949
}
2950
#endif
2951
#endif