ReactOS  0.4.15-dev-1386-g5cb9f87
compat.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <typedefs.h>
4 #include <guiddef.h>
5 #include <pecoff.h>
6 #include <wine/unicode.h>
7 
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <wchar.h>
11 #include <ctype.h>
12 #include <wctype.h>
13 
14 #define wcsnicmp strncmpiW
15 #define wcsicmp strcmpiW
16 #define wcsrchr strrchrW
17 #define wcschr strchrW
18 
19 typedef HANDLE HWND;
20 
21 #define min(x, y) (((x) < (y)) ? (x) : (y))
22 #define max(x, y) (((x) > (y)) ? (x) : (y))
23 #define _strnicmp(_String1, _String2, _MaxCount) strncasecmp(_String1, _String2, _MaxCount)
24 #define stricmp(_String1, _String2) strcasecmp(_String1, _String2)
25 
26 #ifdef __i386__
27 #define CDECL __cdecl
28 #else
29 #define CDECL
30 #endif
32 
33 // windef.h
34 #define MAX_PATH 260
35 #define CALLBACK
36 typedef int (*FARPROC)();
37 
38 // bytesex.h
39 #define SWAPD(x) x
40 #define SWAPW(x) x
41 
42 // Wine stuff
43 #define DECLSPEC_HIDDEN
44 #define WINE_DEFAULT_DEBUG_CHANNEL(x)
45 #define WINE_DECLARE_DEBUG_CHANNEL(x)
46 extern const char *wine_dbgstr_an( const char * s, int n );
47 extern const char *wine_dbgstr_wn( const WCHAR *s, int n );
48 extern const char *wine_dbg_sprintf( const char *format, ... );
49 static __inline const char *wine_dbgstr_longlong( ULONGLONG ll )
50 {
51  if (/*sizeof(ll) > sizeof(unsigned long) &&*/ ll >> 32) /* ULONGLONG is always > long in ReactOS */
52  return wine_dbg_sprintf( "%lx%08lx", (unsigned long)(ll >> 32), (unsigned long)ll );
53  else return wine_dbg_sprintf( "%lx", (unsigned long)ll );
54 }
55 static __inline const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
56 static __inline const char *debugstr_wn( const WCHAR *s, int n ) { return wine_dbgstr_wn( s, n ); }
57 static __inline const char *debugstr_a( const char *s ) { return wine_dbgstr_an( s, -1 ); }
58 static __inline const char *debugstr_w( const WCHAR *s ) { return wine_dbgstr_wn( s, -1 ); }
59 static __inline const char *wine_dbgstr_w( const WCHAR *s ){return wine_dbgstr_wn( s, -1 );}
60 /* This should never be called */
61 #define wine_get_dos_file_name(__x) (assert(0), NULL)
62 
63 #if 0
64 #define WARN(fmt, ...) fprintf(stderr, "WARN %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
65 #define FIXME(fmt, ...) fprintf(stderr, "FIXME %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
66 #define TRACE(fmt, ...) fprintf(stderr, "TRACE %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
67 #define ERR(fmt, ...) fprintf(stderr, "ERR %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
68 #else
69 #define WARN(fmt, ...)
70 #define FIXME(fmt, ...)
71 #define TRACE(fmt, ...)
72 #define ERR(fmt, ...)
73 #endif
74 
75 #define TRACE_ON(x) FALSE
76 #define TRACE_(x) TRACE
77 #define FIXME_(x) FIXME
78 const char *wine_dbg_sprintf( const char *format, ... );
79 #define CP_UNIXCP CP_ACP
80 #define __TRY if(1)
81 #define __EXCEPT_PAGE_FAULT else
82 #define __ENDTRY
83 
84 // basetsd.h
86 
87 // excpt.h
89 {
95 
96 // winerror.h
97 #define ERROR_ACCESS_DENIED 5
98 #define ERROR_INVALID_HANDLE 6
99 #define ERROR_OUTOFMEMORY 14
100 #define ERROR_NOT_SUPPORTED 50
101 #define ERROR_INVALID_PARAMETER 87
102 #define ERROR_CALL_NOT_IMPLEMENTED 120
103 #define ERROR_INVALID_NAME 123
104 #define ERROR_MOD_NOT_FOUND 126
105 #define ERROR_NO_MORE_ITEMS 259
106 #define ERROR_INVALID_ADDRESS 487
107 
108 // winnls.h
109 #define CP_ACP 0
110 #define MultiByteToWideChar __MultiByteToWideChar
111 #define WideCharToMultiByte __WideCharToMultiByte
114 
115 // #define strlenW(s) wcslen((s))
116 // #define strcpyW(d,s) wcscpy((d),(s))
117 // #define strchrW(s,c) wcschr((s),(c))
118 // #define strcatW(d,s) wcscat((d),(s))
119 // #define strncmpiW(s1,s2,n) _wcsnicmp((s1),(s2),(n))
120 // #define strcmpW(s1,s2) wcscmp((s1),(s2))
121 // #define strcmpiW(s1,s2) _wcsicmp((s1),(s2))
122 // #define tolowerW(n) towlower((n))
123 // #define toupperW(n) towupper((n))
124 
125 // winnt.h
126 # define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
127 #define IMAGE_FILE_MACHINE_ARMNT 0x1c4
128 #define IMAGE_FILE_MACHINE_POWERPC 0x1f0
129 #define IMAGE_FILE_MACHINE_ARM64 0xaa64
130 #define DLL_PROCESS_DETACH 0
131 #define DLL_PROCESS_ATTACH 1
132 #define DLL_THREAD_ATTACH 2
133 #define DLL_THREAD_DETACH 3
134 #define HEAP_ZERO_MEMORY 8
135 #define GENERIC_READ 0x80000000
136 #define FILE_SHARE_READ 0x00000001
137 #define FILE_ATTRIBUTE_NORMAL 0x00000080
138 #define PAGE_READONLY 0x0002
139 #define SECTION_MAP_READ 4
140 #define IMAGE_DEBUG_TYPE_UNKNOWN 0
141 #define IMAGE_DEBUG_TYPE_COFF 1
142 #define IMAGE_DEBUG_TYPE_CODEVIEW 2
143 #define IMAGE_DEBUG_TYPE_FPO 3
144 #define IMAGE_DEBUG_TYPE_MISC 4
145 #define IMAGE_DEBUG_TYPE_EXCEPTION 5
146 #define IMAGE_DEBUG_TYPE_FIXUP 6
147 #define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7
148 #define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8
149 #define IMAGE_SYM_CLASS_EXTERNAL 2
150 #define IMAGE_SYM_CLASS_FILE 103
151 #define IMAGE_DIRECTORY_ENTRY_EXPORT 0
152 #define IMAGE_DIRECTORY_ENTRY_DEBUG 6
153 #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
154 #define IMAGE_DEBUG_MISC_EXENAME 1
155 #define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
156 typedef struct _IMAGE_EXPORT_DIRECTORY {
169 typedef struct _IMAGE_DEBUG_MISC {
174  BYTE Data[1];
191 typedef struct _SECURITY_ATTRIBUTES {
196 typedef struct _IMAGE_DEBUG_DIRECTORY {
206 #define EXCEPTION_MAXIMUM_PARAMETERS 15
207 typedef struct _EXCEPTION_RECORD {
215 
216 #define WOW64_CONTEXT_i386 0x00010000
217 #define WOW64_CONTEXT_i486 0x00010000
218 #define WOW64_CONTEXT_CONTROL (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000001))
219 #define WOW64_CONTEXT_INTEGER (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000002))
220 #define WOW64_CONTEXT_SEGMENTS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000004))
221 #define WOW64_CONTEXT_FLOATING_POINT (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000008))
222 #define WOW64_CONTEXT_DEBUG_REGISTERS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000010))
223 #define WOW64_CONTEXT_EXTENDED_REGISTERS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000020))
224 #define WOW64_CONTEXT_FULL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS)
225 #define WOW64_CONTEXT_ALL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | \
226  WOW64_CONTEXT_SEGMENTS | WOW64_CONTEXT_FLOATING_POINT | \
227  WOW64_CONTEXT_DEBUG_REGISTERS | WOW64_CONTEXT_EXTENDED_REGISTERS)
228 
229 #define WOW64_CONTEXT_XSTATE (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000040))
230 
231 #define WOW64_CONTEXT_EXCEPTION_ACTIVE 0x08000000
232 #define WOW64_CONTEXT_SERVICE_ACTIVE 0x10000000
233 #define WOW64_CONTEXT_EXCEPTION_REQUEST 0x40000000
234 #define WOW64_CONTEXT_EXCEPTION_REPORTING 0x80000000
235 
236 #define WOW64_SIZE_OF_80387_REGISTERS 80
237 #define WOW64_MAXIMUM_SUPPORTED_EXTENSION 512
238 
240 {
251 
252 #include "pshpack4.h"
253 typedef struct _WOW64_CONTEXT
254 {
281 #include "poppack.h"
282 
283 #if defined(TARGET_i386)
284 #define SIZE_OF_80387_REGISTERS 80
285 #define CONTEXT_i386 0x10000
286 #define CONTEXT_i486 0x10000
287 #define CONTEXT_CONTROL (CONTEXT_i386|0x00000001L)
288 #define CONTEXT_INTEGER (CONTEXT_i386|0x00000002L)
289 #define CONTEXT_SEGMENTS (CONTEXT_i386|0x00000004L)
290 #define CONTEXT_FLOATING_POINT (CONTEXT_i386|0x00000008L)
291 #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386|0x00000010L)
292 #define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L)
293 #define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS)
294 #define MAXIMUM_SUPPORTED_EXTENSION 512
295 
296 #define EXCEPTION_READ_FAULT 0
297 #define EXCEPTION_WRITE_FAULT 1
298 #define EXCEPTION_EXECUTE_FAULT 8
299 
300 typedef struct _FLOATING_SAVE_AREA {
303  DWORD TagWord;
308  BYTE RegisterArea[80];
311 
312 typedef struct _CONTEXT {
314  DWORD Dr0;
315  DWORD Dr1;
316  DWORD Dr2;
317  DWORD Dr3;
318  DWORD Dr6;
319  DWORD Dr7;
321  DWORD SegGs;
322  DWORD SegFs;
323  DWORD SegEs;
324  DWORD SegDs;
325  DWORD Edi;
326  DWORD Esi;
327  DWORD Ebx;
328  DWORD Edx;
329  DWORD Ecx;
330  DWORD Eax;
331  DWORD Ebp;
332  DWORD Eip;
333  DWORD SegCs;
334  DWORD EFlags;
335  DWORD Esp;
336  DWORD SegSs;
338 } CONTEXT;
339 
340 #elif defined TARGET_amd64
341 
342 typedef struct _M128A {
343  ULONGLONG Low;
344  LONGLONG High;
345 } M128A, *PM128A;
346 
347 typedef struct _XMM_SAVE_AREA32 {
348  WORD ControlWord;
349  WORD StatusWord;
350  BYTE TagWord;
351  BYTE Reserved1;
352  WORD ErrorOpcode;
353  DWORD ErrorOffset;
354  WORD ErrorSelector;
355  WORD Reserved2;
356  DWORD DataOffset;
357  WORD DataSelector;
358  WORD Reserved3;
359  DWORD MxCsr;
360  DWORD MxCsr_Mask;
361  M128A FloatRegisters[8];
362  M128A XmmRegisters[16];
363  BYTE Reserved4[96];
365 
366 typedef struct _CONTEXT {
367  DWORD64 P1Home;
368  DWORD64 P2Home;
369  DWORD64 P3Home;
370  DWORD64 P4Home;
371  DWORD64 P5Home;
372  DWORD64 P6Home;
373 
374  /* Control flags */
376  DWORD MxCsr;
377 
378  /* Segment */
379  WORD SegCs;
380  WORD SegDs;
381  WORD SegEs;
382  WORD SegFs;
383  WORD SegGs;
384  WORD SegSs;
385  DWORD EFlags;
386 
387  /* Debug */
388  DWORD64 Dr0;
389  DWORD64 Dr1;
390  DWORD64 Dr2;
391  DWORD64 Dr3;
392  DWORD64 Dr6;
393  DWORD64 Dr7;
394 
395  /* Integer */
396  DWORD64 Rax;
397  DWORD64 Rcx;
398  DWORD64 Rdx;
399  DWORD64 Rbx;
400  DWORD64 Rsp;
401  DWORD64 Rbp;
402  DWORD64 Rsi;
403  DWORD64 Rdi;
404  DWORD64 R8;
405  DWORD64 R9;
406  DWORD64 R10;
407  DWORD64 R11;
408  DWORD64 R12;
409  DWORD64 R13;
410  DWORD64 R14;
411  DWORD64 R15;
412 
413  /* Counter */
414  DWORD64 Rip;
415 
416  /* Floating point */
417  union {
418  XMM_SAVE_AREA32 FltSave;
419  struct {
420  M128A Header[2];
421  M128A Legacy[8];
422  M128A Xmm0;
423  M128A Xmm1;
424  M128A Xmm2;
425  M128A Xmm3;
426  M128A Xmm4;
427  M128A Xmm5;
428  M128A Xmm6;
429  M128A Xmm7;
430  M128A Xmm8;
431  M128A Xmm9;
432  M128A Xmm10;
433  M128A Xmm11;
434  M128A Xmm12;
435  M128A Xmm13;
436  M128A Xmm14;
437  M128A Xmm15;
438  } DUMMYSTRUCTNAME;
439  } DUMMYUNIONNAME;
440 
441  /* Vector */
442  M128A VectorRegister[26];
443  DWORD64 VectorControl;
444 
445  /* Debug control */
446  DWORD64 DebugControl;
447  DWORD64 LastBranchToRip;
448  DWORD64 LastBranchFromRip;
449  DWORD64 LastExceptionToRip;
450  DWORD64 LastExceptionFromRip;
451 } CONTEXT;
452 
453 #elif defined TARGET_arm /* ARM? */
454 
455 /* The following flags control the contents of the CONTEXT structure. */
456 
457 #define CONTEXT_ARM 0x0200000
458 #define CONTEXT_CONTROL (CONTEXT_ARM | 0x00000001)
459 #define CONTEXT_INTEGER (CONTEXT_ARM | 0x00000002)
460 #define CONTEXT_FLOATING_POINT (CONTEXT_ARM | 0x00000004)
461 #define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 0x00000008)
462 
463 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER)
464 
465 #define EXCEPTION_READ_FAULT 0
466 #define EXCEPTION_WRITE_FAULT 1
467 #define EXCEPTION_EXECUTE_FAULT 8
468 
469 typedef struct _RUNTIME_FUNCTION
470 {
471  DWORD BeginAddress;
472  union {
473  DWORD UnwindData;
474  struct {
475  DWORD Flag : 2;
476  DWORD FunctionLength : 11;
477  DWORD Ret : 2;
478  DWORD H : 1;
479  DWORD Reg : 3;
480  DWORD R : 1;
481  DWORD L : 1;
482  DWORD C : 1;
483  DWORD StackAdjust : 10;
484  } DUMMYSTRUCTNAME;
485  } DUMMYUNIONNAME;
487 
488 #define UNWIND_HISTORY_TABLE_SIZE 12
489 typedef struct _UNWIND_HISTORY_TABLE_ENTRY
490 {
491  DWORD ImageBase;
492  PRUNTIME_FUNCTION FunctionEntry;
493 } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
494 
495 typedef struct _UNWIND_HISTORY_TABLE
496 {
497  DWORD Count;
498  BYTE LocalHint;
499  BYTE GlobalHint;
500  BYTE Search;
501  BYTE Once;
502  DWORD LowAddress;
504  UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
505 } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
506 
507 typedef struct _CONTEXT {
508  /* The flags values within this flag control the contents of
509  a CONTEXT record.
510 
511  If the context record is used as an input parameter, then
512  for each portion of the context record controlled by a flag
513  whose value is set, it is assumed that that portion of the
514  context record contains valid context. If the context record
515  is being used to modify a thread's context, then only that
516  portion of the threads context will be modified.
517 
518  If the context record is used as an IN OUT parameter to capture
519  the context of a thread, then only those portions of the thread's
520  context corresponding to set flags will be returned.
521 
522  The context record is never used as an OUT only parameter. */
523 
525 
526  /* This section is specified/returned if the ContextFlags word contains
527  the flag CONTEXT_INTEGER. */
528  ULONG R0;
529  ULONG R1;
530  ULONG R2;
531  ULONG R3;
532  ULONG R4;
533  ULONG R5;
534  ULONG R6;
535  ULONG R7;
536  ULONG R8;
537  ULONG R9;
538  ULONG R10;
539  ULONG Fp;
540  ULONG Ip;
541 
542  /* These are selected by CONTEXT_CONTROL */
543  ULONG Sp;
544  ULONG Lr;
545  ULONG Pc;
546  ULONG Cpsr;
547 } CONTEXT;
548 
552 #else
553 
554 #error "Unknown target platform"
555 
556 #endif
557 
558 typedef CONTEXT *PCONTEXT;
559 
560 typedef
562 NTAPI
564  struct _EXCEPTION_RECORD *ExceptionRecord,
566  struct _CONTEXT *ContextRecord,
569 typedef struct _NT_TIB {
574  union {
577  } DUMMYUNIONNAME;
579  struct _NT_TIB *Self;
580 } NT_TIB,*PNT_TIB;
581 
582 // rtltypes.h
584 {
588 
589 // winbase.h
590 #define INVALID_HANDLE_VALUE (HANDLE)(-1)
591 #define INVALID_SET_FILE_POINTER ((DWORD)-1)
592 #define HeapAlloc __HeapAlloc
593 #define HeapReAlloc __HeapReAlloc
594 #define HeapFree(x,y,z) free(z)
595 #define GetProcessHeap() 1
596 #define GetProcessId(x) 8
597 #define lstrcpynW __lstrcpynW
598 #define CloseHandle __CloseHandle
599 #define CreateFileA(a,b,c,d,e,f,g) fopen(a, "rb")
600 #define CreateFileW __CreateFileW
601 #define ReadFile(a,b,c,d,e) __ReadFile
602 #define SetFilePointer __SetFilePointer
603 #define CreateFileMappingW(a,b,c,d,e,f) a
604 #define MapViewOfFile __MapViewOfFile
605 #define UnmapViewOfFile __UnmapViewOfFile
606 #define LoadLibraryW(x) 0
607 #define FreeLibrary(x) 0
608 #define lstrcpyW strcpyW // Forward this to wine unicode inline function
609 #define lstrlenW strlenW // ditto
610 #define lstrcpynA __lstrcpynA
611 #define SetLastError(x)
612 #define GetProcAddress(x,y) 0
613 #define GetEnvironmentVariableA(x, y, z) 0
614 #define GetEnvironmentVariableW(x, y, z) 0
615 #define GetCurrentDirectoryW(x, y) 0
616 #define GetFileSizeEx __GetFileSizeEx
617 #define ReadProcessMemory(a,b,c,d,e) 0
618 #define GetCurrentProcess() (HANDLE)1
619 #define IsWow64Process __IsWow64Process
620 #define FILE_BEGIN 0
621 
622 void* __HeapAlloc(int heap, int flags, size_t size);
623 void* __HeapReAlloc(int heap, DWORD d2, void *slab, SIZE_T newsize);
624 WCHAR* __lstrcpynW(WCHAR* lpString1, const WCHAR* lpString2, int iMaxLength);
626 HANDLE __CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
627 BOOL __ReadFile(HANDLE,PVOID,DWORD,PDWORD,/*LPOVERLAPPED*/ PVOID);
630 BOOL __UnmapViewOfFile(const void*);
634 #define OPEN_EXISTING 3
635 #define FILE_MAP_READ SECTION_MAP_READ
636 typedef struct _LDT_ENTRY {
639  union {
640  struct {
645  } Bytes;
646  struct {
657  } Bits;
658  } HighWord;
660 
661 // umtypes.h
662 typedef LONG KPRIORITY;
663 
664 // winternl.h
665 #define RtlImageNtHeader __RtlImageNtHeader
666 #define RtlImageRvaToVa __RtlImageRvaToVa
667 #define RtlImageRvaToSection __RtlImageRvaToSection
668 #define RtlImageDirectoryEntryToData __RtlImageDirectoryEntryToData
669 #define RtlComputeCrc32 __RtlComputeCrc32
670 
671 #ifdef _MSC_VER
672 #define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
673 #else
674 #define RtlUlongByteSwap(_x) __builtin_bswap32((_x))
675 #endif
676 
681 
682 typedef struct _CLIENT_ID
683 {
687 #define GDI_BATCH_BUFFER_SIZE 0x136
688 typedef struct _GDI_TEB_BATCH
689 {
694 typedef struct _TEB
695 {
696  NT_TIB Tib; /* 000 */
698  CLIENT_ID ClientId; /* 020 */
701  PVOID Peb; /* 030 */
706  ULONG Win32ClientInfo[31]; /* 044 used for user32 private data in Wine */
707  PVOID WOW32Reserved; /* 0c0 */
708  ULONG CurrentLocale; /* 0c4 */
710  PVOID SystemReserved1[54]; /* 0cc used for kernel32 private data in Wine */
711  PVOID Spare1; /* 1a4 */
712  LONG ExceptionCode; /* 1a8 */
714  BYTE SpareBytes1[36]; /* 1ac */
715  PVOID SystemReserved2[10]; /* 1d4 used for ntdll private data in Wine */
717  ULONG gdiRgn; /* 6dc */
718  ULONG gdiPen; /* 6e0 */
719  ULONG gdiBrush; /* 6e4 */
722  ULONG GdiClientPID; /* 6f4 */
723  ULONG GdiClientTID; /* 6f8 */
725  PVOID UserReserved[5]; /* 700 */
726  PVOID glDispatchTable[280]; /* 714 */
727  ULONG glReserved1[26]; /* b74 */
728  PVOID glReserved2; /* bdc */
729  PVOID glSectionInfo; /* be0 */
730  PVOID glSection; /* be4 */
731  PVOID glTable; /* be8 */
732  PVOID glCurrentRC; /* bec */
733  PVOID glContext; /* bf0 */
735  UNICODE_STRING StaticUnicodeString; /* bf8 used by advapi32 */
736  WCHAR StaticUnicodeBuffer[261]; /* c00 used by advapi32 */
738  PVOID TlsSlots[64]; /* e10 */
739  LIST_ENTRY TlsLinks; /* f10 */
740  PVOID Vdm; /* f18 */
742  PVOID DbgSsReserved[2]; /* f20 */
744  PVOID Instrumentation[16]; /* f2c */
745  PVOID WinSockData; /* f6c */
746  ULONG GdiBatchCount; /* f70 */
747  ULONG Spare2; /* f74 */
748  ULONG Spare3; /* f78 */
749  ULONG Spare4; /* f7c */
752  PVOID Reserved5[3]; /* f88 */
754 } TEB, *PTEB;
755 
756 
757 // winver.h
758 typedef struct tagVS_FIXEDFILEINFO {
773 
774 
775 // psapi.h
776 typedef struct _MODULEINFO {
781 #define GetModuleFileNameExW(w, x, y, z) 0
782 
783 // pstypes.h
785 {
793 typedef enum _THREADINFOCLASS {
830 
831 
832 // dbghelp.h
834 #define MAX_SYM_NAME 2000
835 #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
836 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
837 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
838 #define CBA_SYMBOLS_UNLOADED 0x00000004
839 #define CBA_DUPLICATE_SYMBOL 0x00000005
840 #define CBA_READ_MEMORY 0x00000006
841 #define CBA_DEFERRED_SYMBOL_LOAD_CANCEL 0x00000007
842 #define CBA_SET_OPTIONS 0x00000008
843 #define CBA_EVENT 0x00000010
844 #define CBA_DEFERRED_SYMBOL_LOAD_PARTIAL 0x00000020
845 #define CBA_DEBUG_INFO 0x10000000
846 #define SYMOPT_CASE_INSENSITIVE 0x00000001
847 #define SYMOPT_UNDNAME 0x00000002
848 #define SYMOPT_DEFERRED_LOADS 0x00000004
849 #define SYMOPT_LOAD_LINES 0x00000010
850 #define SYMOPT_LOAD_ANYTHING 0x00000040
851 #define SYMOPT_PUBLICS_ONLY 0x00004000
852 #define SYMOPT_NO_PUBLICS 0x00008000
853 #define SYMOPT_AUTO_PUBLICS 0x00010000
854 #define SYMFLAG_VALUEPRESENT 0x00000001
855 #define SYMFLAG_REGISTER 0x00000008
856 #define SYMFLAG_REGREL 0x00000010
857 #define SYMFLAG_FRAMEREL 0x00000020
858 #define SYMFLAG_PARAMETER 0x00000040
859 #define SYMFLAG_LOCAL 0x00000080
860 #define SYMFLAG_CONSTANT 0x00000100
861 #define SYMFLAG_EXPORT 0x00000200
862 #define SYMFLAG_FORWARDER 0x00000400
863 #define SYMFLAG_FUNCTION 0x00000800
864 #define SYMFLAG_VIRTUAL 0x00001000
865 #define SYMFLAG_THUNK 0x00002000
866 #define SYMFLAG_TLSREL 0x00004000
867 #define SYMFLAG_SLOT 0x00008000
868 #define SYMFLAG_ILREL 0x00010000
869 #define SYMFLAG_METADATA 0x00020000
870 #define SYMFLAG_CLR_TOKEN 0x00040000
871 #define SYMFLAG_NULL 0x00080000
872 #define SYMFLAG_FUNC_NO_RETURN 0x00100000
873 #define SYMFLAG_SYNTHETIC_ZEROBASE 0x00200000
874 #define SYMFLAG_PUBLIC_CODE 0x00400000
875 #define UNDNAME_COMPLETE (0x0000)
876 #define UNDNAME_NAME_ONLY (0x1000)
878 {
883 #define SYMSEARCH_GLOBALSONLY 0x04
884 /* flags for SymLoadModuleEx */
885 #define SLMFLAG_VIRTUAL 0x1
886 #define SLMFLAG_NO_SYMBOLS 0x4
887 typedef struct _DBGHELP_MODLOAD_DATA
888 {
895 typedef struct _SYMBOL_INFO
896 {
911  CHAR Name[1];
913 typedef enum
914 {
915  SymNone = 0,
925 } SYM_TYPE;
926 typedef struct _IMAGEHLP_MODULEW64
927 {
952 typedef struct _IMAGEHLP_LINE64
953 {
960 typedef enum
961 {
964 /* __WINESRC__ */
967 typedef struct _SRCCODEINFO
968 {
979 BOOL WINAPI SymInitialize(HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess);
983 BOOL WINAPI SymMatchStringW(PCWSTR string, PCWSTR re, BOOL _case);
985  PCSTR ModuleName, DWORD BaseOfDll, DWORD SizeOfDll);
1000 #define FindExecutableImageExW __FindExecutableImageExW
1004 {
1013 typedef enum
1014 {
1019 } ADDRESS_MODE;
1021 {
1031 typedef struct _tagADDRESS64
1032 {
1049 
1051 
1052 typedef struct _tagADDRESS
1053 {
1057 } ADDRESS, *LPADDRESS;
1058 
1059 typedef struct _IMAGEHLP_MODULE
1060 {
1072 typedef struct _IMAGEHLP_MODULEW
1073 {
1094 
1095 typedef struct _IMAGEHLP_MODULE64
1096 {
1121 typedef DWORD RVA;
1122 typedef ULONG64 RVA64;
1123 typedef enum _MINIDUMP_TYPE
1124 {
1125  MiniDumpNormal = 0x0000,
1140 } MINIDUMP_TYPE;
1142 {
1151 {
1162 {
1175 {
1179 {
1183 {
1187  union
1188  {
1194  } DUMMYUNIONNAME;
1197 {
1198  union
1199  {
1202  struct
1203  {
1206  } DUMMYSTRUCTNAME;
1207  } DUMMYUNIONNAME;
1211 {
1215 typedef struct _SYMBOL_INFOW
1216 {
1234 {
1246 typedef struct _KDHELP64
1247 {
1257 } KDHELP64, *PKDHELP64;
1258 typedef struct _STACKFRAME64
1259 {
1273 {
1302 typedef struct _SOURCEFILE
1303 {
1307 typedef struct _SOURCEFILEW
1308 {
1314 typedef struct _SRCCODEINFOW
1315 {
1326 #if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
1327 #define IMAGEHLP_SYMBOL IMAGEHLP_SYMBOL64
1328 #define IMAGEHLP_SYMBOLW IMAGEHLP_SYMBOLW64
1329 #define PIMAGEHLP_SYMBOL PIMAGEHLP_SYMBOL64
1330 #define PIMAGEHLP_SYMBOLW PIMAGEHLP_SYMBOLW64
1331 #else
1332 typedef struct _IMAGEHLP_SYMBOL
1333 {
1341 
1342 typedef struct _IMAGEHLP_SYMBOLW
1343 {
1351 #endif
1352 typedef struct _IMAGEHLP_SYMBOL64
1353 {
1361 typedef struct _IMAGEHLP_SYMBOLW64
1362 {
1370 #if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
1371 #define IMAGEHLP_LINE IMAGEHLP_LINE64
1372 #define PIMAGEHLP_LINE PIMAGEHLP_LINE64
1373 #define IMAGEHLP_LINEW IMAGEHLP_LINEW64
1374 #define PIMAGEHLP_LINEW PIMAGEHLP_LINEW64
1375 #else
1376 typedef struct _IMAGEHLP_LINE
1377 {
1384 
1385 typedef struct _IMAGEHLP_LINEW
1386 {
1393 #endif
1394 typedef struct _IMAGEHLP_LINEW64
1395 {
1402 #if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
1403 #define IMAGEHLP_DEFERRED_SYMBOL_LOAD IMAGEHLP_DEFERRED_SYMBOL_LOAD64
1404 #define PIMAGEHLP_DEFERRED_SYMBOL_LOAD PIMAGEHLP_DEFERRED_SYMBOL_LOAD64
1405 #else
1407 {
1416 #endif
1418 {
1428 typedef struct API_VERSION
1429 {
1435 
1436 // cvconst.h
1437 /* symbols & types enumeration */
1439 {
1472 };
1473 
1475 {
1477  btVoid = 1,
1478  btChar = 2,
1479  btWChar = 3,
1480  btInt = 6,
1481  btUInt = 7,
1482  btFloat = 8,
1483  btBCD = 9,
1484  btBool = 10,
1485  btLong = 13,
1486  btULong = 14,
1488  btDate = 26,
1491  btBit = 29,
1492  btBSTR = 30,
1494 };
1495 
1496 /* kind of UDT */
1498 {
1502 };
1503 
1504 /* kind of SymTagData */
1506 {
1517 };
1518 
1519 /* values for registers (on different CPUs) */
1521 {
1522  /* those values are common to all supported CPUs (and CPU independent) */
1523  CV_ALLREG_ERR = 30000,
1524  CV_ALLREG_TEB = 30001,
1533  CV_ALLREG_TID = 30010,
1534  CV_ALLREG_ENV = 30011,
1536 
1537  /* Intel x86 CPU */
1573 
1574  /* <pcode> */
1578  CV_REG_PCDR3 = 43, /* this includes PCDR4 to PCDR7 */
1579  CV_REG_CR0 = 80, /* this includes CR1 to CR4 */
1580  CV_REG_DR0 = 90, /* this includes DR1 to DR7 */
1581  /* </pcode> */
1582 
1588  CV_REG_TR = 115,
1589 
1590  CV_REG_PSEUDO1 = 116, /* this includes Pseudo02 to Pseudo09 */
1591  CV_REG_ST0 = 128, /* this includes ST1 to ST7 */
1594  CV_REG_TAG = 138,
1602  CV_REG_MM0 = 146, /* this includes MM1 to MM7 */
1603  CV_REG_XMM0 = 154, /* this includes XMM1 to XMM7 */
1605  CV_REG_XMM0L = 194, /* this includes XMM1L to XMM7L */
1606  CV_REG_XMM0H = 202, /* this includes XMM1H to XMM7H */
1627 
1628  CV_REG_YMM0 = 252, /* this includes YMM1 to YMM7 */
1629  CV_REG_YMM0H = 260, /* this includes YMM1H to YMM7H */
1630  CV_REG_YMM0I0 = 268, /* this includes YMM0I1 to YMM0I3 */
1631  CV_REG_YMM1I0 = 272, /* this includes YMM1I1 to YMM1I3 */
1632  CV_REG_YMM2I0 = 276, /* this includes YMM2I1 to YMM2I3 */
1633  CV_REG_YMM3I0 = 280, /* this includes YMM3I1 to YMM3I3 */
1634  CV_REG_YMM4I0 = 284, /* this includes YMM4I1 to YMM4I3 */
1635  CV_REG_YMM5I0 = 288, /* this includes YMM5I1 to YMM5I3 */
1636  CV_REG_YMM6I0 = 292, /* this includes YMM6I1 to YMM6I3 */
1637  CV_REG_YMM7I0 = 296, /* this includes YMM7I1 to YMM7I3 */
1638  CV_REG_YMM0F0 = 300, /* this includes YMM0F1 to YMM0F7 */
1639  CV_REG_YMM1F0 = 308, /* this includes YMM1F1 to YMM1F7 */
1640  CV_REG_YMM2F0 = 316, /* this includes YMM2F1 to YMM2F7 */
1641  CV_REG_YMM3F0 = 324, /* this includes YMM3F1 to YMM3F7 */
1642  CV_REG_YMM4F0 = 332, /* this includes YMM4F1 to YMM4F7 */
1643  CV_REG_YMM5F0 = 340, /* this includes YMM5F1 to YMM5F7 */
1644  CV_REG_YMM6F0 = 348, /* this includes YMM6F1 to YMM6F7 */
1645  CV_REG_YMM7F0 = 356, /* this includes YMM7F1 to YMM7F7 */
1646  CV_REG_YMM0D0 = 364, /* this includes YMM0D1 to YMM0D3 */
1647  CV_REG_YMM1D0 = 368, /* this includes YMM1D1 to YMM1D3 */
1648  CV_REG_YMM2D0 = 372, /* this includes YMM2D1 to YMM2D3 */
1649  CV_REG_YMM3D0 = 376, /* this includes YMM3D1 to YMM3D3 */
1650  CV_REG_YMM4D0 = 380, /* this includes YMM4D1 to YMM4D3 */
1651  CV_REG_YMM5D0 = 384, /* this includes YMM5D1 to YMM5D3 */
1652  CV_REG_YMM6D0 = 388, /* this includes YMM6D1 to YMM6D3 */
1653  CV_REG_YMM7D0 = 392, /* this includes YMM7D1 to YMM7D3 */
1654 
1655  /* Motorola 68K CPU */
1656  CV_R68_D0 = 0, /* this includes D1 to D7 too */
1657  CV_R68_A0 = 8, /* this includes A1 to A7 too */
1672  CV_R68_FP0 = 32, /* this includes FP1 to FP7 */
1692  CV_R68_BAD0 = 64, /* this includes BAD1 to BAD7 */
1693  CV_R68_BAC0 = 72, /* this includes BAC1 to BAC7 */
1694 
1695  /* MIPS 4000 CPU */
1701  CV_M4_IntA0 = 14, /* this includes IntA1 to IntA3 */
1702  CV_M4_IntT0 = 18, /* this includes IntT1 to IntT7 */
1703  CV_M4_IntS0 = 26, /* this includes IntS1 to IntS7 */
1716  CV_M4_FltF0 = 60, /* this includes FltF1 to Flt31 */
1718 
1719  /* Alpha AXP CPU */
1721  CV_ALPHA_FltF0 = 10, /* this includes FltF1 to FltF31 */
1723  CV_ALPHA_IntT0 = 43, /* this includes T1 to T7 */
1724  CV_ALPHA_IntS0 = 51, /* this includes S1 to S5 */
1726  CV_ALPHA_IntA0 = 58, /* this includes A1 to A5 */
1742 
1743  /* Motorola & IBM PowerPC CPU */
1744  CV_PPC_GPR0 = 1, /* this includes GPR1 to GPR31 */
1746  CV_PPC_CR0 = 34, /* this includes CR1 to CR7 */
1747  CV_PPC_FPR0 = 42, /* this includes FPR1 to FPR31 */
1748 
1751  CV_PPC_SR0 = 76, /* this includes SR1 to SR15 */
1753  CV_PPC_MQ = 100,
1754  CV_PPC_XER = 101,
1757  CV_PPC_LR = 108,
1758  CV_PPC_CTR = 109,
1762  CV_PPC_DAR = 119,
1763  CV_PPC_DEC = 122,
1767  CV_PPC_SPRG0 = 372, /* this includes SPRG1 to SPRG3 */
1768  CV_PPC_ASR = 280,
1769  CV_PPC_EAR = 382,
1770  CV_PPC_PVR = 287,
1787  CV_PPC_PMR0 = 1044, /* this includes PMR1 to PMR15 */
1789  CV_PPC_DCMP = 1077,
1793  CV_PPC_ICMP = 1081,
1794  CV_PPC_RPA = 1082,
1795  CV_PPC_HID0 = 1108, /* this includes HID1 to HID15 */
1796 
1797  /* Java */
1799 
1800  /* Hitachi SH3 CPU */
1802  CV_SH3_IntR0 = 10, /* this include R1 to R13 */
1824  CV_SH_FpR0 = 80, /* this includes FpR1 to FpR15 */
1825  CV_SH_XFpR0 = 96, /* this includes XFpR1 to XXFpR15 */
1826 
1827  /* ARM CPU */
1829  CV_ARM_R0 = 10, /* this includes R1 to R12 */
1837  CV_ARM_FS0 = 50, /* this includes FS1 to FS31 */
1838  CV_ARM_FPEXTRA0 = 90, /* this includes FPEXTRA1 to FPEXTRA7 */
1839  CV_ARM_WR0 = 128, /* this includes WR1 to WR15 */
1844  CV_ARM_WC4 = 148,
1845  CV_ARM_WC5 = 149,
1846  CV_ARM_WC6 = 150,
1847  CV_ARM_WC7 = 151,
1848  CV_ARM_WCGR0 = 152, /* this includes WCGR1 to WCGR3 */
1853  CV_ARM_FS32 = 200, /* this includes FS33 to FS63 */
1854  CV_ARM_ND0 = 300, /* this includes ND1 to ND31 */
1855  CV_ARM_NQ0 = 400, /* this includes NQ1 to NQ15 */
1856 
1857  /* Intel IA64 CPU */
1859  CV_IA64_Br0 = 512, /* this includes Br1 to Br7 */
1860  CV_IA64_P0 = 704, /* this includes P1 to P63 */
1862  CV_IA64_IntH0 = 832, /* this includes H1 to H15 */
1863  CV_IA64_Ip = 1016,
1865  CV_IA64_Cfm = 1018,
1866  CV_IA64_Psr = 1019,
1870  CV_IA64_IntR0 = 1024, /* this includes R1 to R127 */
1871  CV_IA64_FltF0 = 2048, /* this includes FltF1 to FltF127 */
1872  /* some IA64 registers missing */
1873 
1874  /* TriCore CPU */
1876  CV_TRI_D0 = 10, /* includes D1 to D15 */
1877  CV_TRI_A0 = 26, /* includes A1 to A15 */
1904  CV_TRI_DPRx_0 = 68, /* includes DPRx_1 to DPRx_3 */
1905  CV_TRI_CPRx_0 = 68, /* includes CPRx_1 to CPRx_3 */
1906  CV_TRI_DPMx_0 = 68, /* includes DPMx_1 to DPMx_3 */
1907  CV_TRI_CPMx_0 = 68, /* includes CPMx_1 to CPMx_3 */
1919 
1920  /* AM33 (and the likes) CPU */
1922  CV_AM33_E0 = 10, /* this includes E1 to E7 */
1923  CV_AM33_A0 = 20, /* this includes A1 to A3 */
1924  CV_AM33_D0 = 30, /* this includes D1 to D3 */
1925  CV_AM33_FS0 = 40, /* this includes FS1 to FS31 */
1937 
1938  /* Mitsubishi M32R CPU */
1940  CV_M32R_R0 = 10, /* this includes R1 to R11 */
1954 
1955  /* AMD/Intel x86_64 CPU */
1990 
1991  /* <pcode> */
1995  CV_AMD64_PCDR3 = CV_REG_PCDR3, /* this includes PCDR4 to PCDR7 */
1996  CV_AMD64_CR0 = CV_REG_CR0, /* this includes CR1 to CR4 */
1997  CV_AMD64_DR0 = CV_REG_DR0, /* this includes DR1 to DR7 */
1998  /* </pcode> */
1999 
2006 
2007  CV_AMD64_PSEUDO1 = CV_REG_PSEUDO1, /* this includes Pseudo02 to Pseudo09 */
2008  CV_AMD64_ST0 = CV_REG_ST0, /* this includes ST1 to ST7 */
2019  CV_AMD64_MM0 = CV_REG_MM0, /* this includes MM1 to MM7 */
2020  CV_AMD64_XMM0 = CV_REG_XMM0, /* this includes XMM1 to XMM7 */
2022  CV_AMD64_XMM0L = CV_REG_XMM0L, /* this includes XMM1L to XMM7L */
2023  CV_AMD64_XMM0H = CV_REG_XMM0H, /* this includes XMM1H to XMM7H */
2044 
2045  CV_AMD64_XMM8 = 252, /* this includes XMM9 to XMM15 */
2046 
2055 
2064 
2065  /* Wine extension */
2067  CV_ARM64_X0 = 10, /* this includes X0 to X30 */
2071 };
2072 
2073 typedef enum
2074 {
2080 } THUNK_ORDINAL;
2081 
2082 typedef enum CV_call_e
2083 {
2107 } CV_call_e;
2108 
2109 
2110 // wtypes.h
2111 typedef LONG SCODE;
2112 typedef double DATE;
2113 typedef unsigned short VARTYPE;
2114 typedef union tagCY {
2115  struct {
2116 #ifdef WORDS_BIGENDIAN
2117  LONG Hi;
2118  ULONG Lo;
2119 #else
2122 #endif
2123  } DUMMYSTRUCTNAME;
2125 } CY;
2126 typedef struct tagDEC {
2128  union {
2129  struct {
2132  } DUMMYSTRUCTNAME;
2134  } DUMMYUNIONNAME;
2136  union {
2137  struct {
2138 #ifdef WORDS_BIGENDIAN
2139  ULONG Mid32;
2140  ULONG Lo32;
2141 #else
2144 #endif
2145  } DUMMYSTRUCTNAME1;
2147  } DUMMYUNIONNAME1;
2148 } DECIMAL;
2149 typedef short VARIANT_BOOL;
2151 typedef WCHAR OLECHAR;
2152 typedef OLECHAR *BSTR;
2153 enum VARENUM {
2155  VT_NULL = 1,
2156  VT_I2 = 2,
2157  VT_I4 = 3,
2158  VT_R4 = 4,
2159  VT_R8 = 5,
2160  VT_CY = 6,
2161  VT_DATE = 7,
2162  VT_BSTR = 8,
2164  VT_ERROR = 10,
2165  VT_BOOL = 11,
2169  VT_I1 = 16,
2170  VT_UI1 = 17,
2171  VT_UI2 = 18,
2172  VT_UI4 = 19,
2173  VT_I8 = 20,
2174  VT_UI8 = 21,
2175  VT_INT = 22,
2176  VT_UINT = 23,
2177  VT_VOID = 24,
2179  VT_PTR = 26,
2183  VT_LPSTR = 30,
2189  VT_BLOB = 65,
2195  VT_CF = 71,
2196  VT_CLSID = 72,
2198  VT_BSTR_BLOB = 0xfff,
2199  VT_VECTOR = 0x1000,
2200  VT_ARRAY = 0x2000,
2201  VT_BYREF = 0x4000,
2202  VT_RESERVED = 0x8000,
2203  VT_ILLEGAL = 0xffff,
2205  VT_TYPEMASK = 0xfff
2206 };
2207 
2208 // oaidl.h
2209 typedef struct tagSAFEARRAYBOUND {
2212 } SAFEARRAYBOUND;
2213 typedef struct tagSAFEARRAY {
2220 } SAFEARRAY;
2222 
2223 #if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
2224 #define __VARIANT_NAME_1 n1
2225 #define __VARIANT_NAME_2 n2
2226 #define __VARIANT_NAME_3 n3
2227 #define __VARIANT_NAME_4 brecVal
2228 #else
2229 #define __tagVARIANT
2230 #define __VARIANT_NAME_1
2231 #define __VARIANT_NAME_2
2232 #define __VARIANT_NAME_3
2233 #define __tagBRECORD
2234 #define __VARIANT_NAME_4
2235 #endif
2236 typedef struct tagVARIANT VARIANT;
2237 struct tagVARIANT {
2238  union {
2239  struct __tagVARIANT {
2244  union {
2245  signed char cVal;
2265  signed char *pcVal;
2288  struct __tagBRECORD {
2291  } __VARIANT_NAME_4;
2292  } __VARIANT_NAME_3;
2293  } __VARIANT_NAME_2;
2295  } __VARIANT_NAME_1;
2296 };
2297 
2301 
2302 // wine/windef16.h
2303 typedef DWORD SEGPTR;
2304 
2305 // wine/winbase16.h
2306 typedef struct _STACK32FRAME
2307 {
2308  DWORD restore_addr; /* 00 return address for restoring code selector */
2309  DWORD codeselector; /* 04 code selector to restore */
2310  EXCEPTION_REGISTRATION_RECORD frame; /* 08 Exception frame */
2311  SEGPTR frame16; /* 10 16-bit frame from last CallFrom16() */
2312  DWORD edi; /* 14 saved registers */
2313  DWORD esi; /* 18 */
2314  DWORD ebx; /* 1c */
2315  DWORD ebp; /* 20 saved 32-bit frame pointer */
2316  DWORD retaddr; /* 24 return address */
2317  DWORD target; /* 28 target address / CONTEXT86 pointer */
2318  DWORD nb_args; /* 2c number of 16-bit argument bytes */
2319 } STACK32FRAME;
2320 
2321 /* 16-bit stack layout after __wine_call_from_16() */
2322 typedef struct _STACK16FRAME
2323 {
2324  STACK32FRAME *frame32; /* 00 32-bit frame from last CallTo16() */
2325  DWORD edx; /* 04 saved registers */
2326  DWORD ecx; /* 08 */
2327  DWORD ebp; /* 0c */
2328  WORD ds; /* 10 */
2329  WORD es; /* 12 */
2330  WORD fs; /* 14 */
2331  WORD gs; /* 16 */
2332  DWORD callfrom_ip; /* 18 callfrom tail IP */
2333  DWORD module_cs; /* 1c module code segment */
2334  DWORD relay; /* 20 relay function address */
2335  WORD entry_ip; /* 22 entry point IP */
2336  DWORD entry_point; /* 26 API entry point to call, reused as mutex count */
2337  WORD bp; /* 2a 16-bit stack frame chain */
2338  WORD ip; /* 2c return address */
2339  WORD cs; /* 2e */
2340 } STACK16FRAME;
_THREAD_WRITE_FLAGS
Definition: compat.h:1003
struct _EXCEPTION_RECORD * PEXCEPTION_RECORD
PVOID glCurrentRC
Definition: compat.h:732
struct _THREAD_BASIC_INFORMATION THREAD_BASIC_INFORMATION
DWORD64 Address
Definition: compat.h:1355
struct API_VERSION * LPAPI_VERSION
BasicType
Definition: compat.h:1474
BOOL WINAPI SymCleanup(HANDLE hProcess)
Definition: dbghelp.c:531
signed char * PCHAR
Definition: retypes.h:7
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
struct _NT_TIB * Self
Definition: compat.h:579
PVOID EnvironmentPointer
Definition: compat.h:697
WCHAR OLECHAR
Definition: compat.h:2151
WORD LimitLow
Definition: compat.h:637
DWORD Dr7
Definition: compat.h:261
ULONG Tag
Definition: compat.h:908
SYM_TYPE SymType
Definition: compat.h:1103
ULONG cbElements
Definition: compat.h:2216
DWORD SegEs
Definition: compat.h:265
BYTE BaseMid
Definition: compat.h:641
ULONGLONG Lo64
Definition: compat.h:2146
#define WOW64_MAXIMUM_SUPPORTED_EXTENSION
Definition: compat.h:237
const uint16_t * PCWSTR
Definition: typedefs.h:57
PVOID WOW32Reserved
Definition: compat.h:707
BOOL(CALLBACK * PENUMLOADED_MODULES_CALLBACKW64)(PCWSTR, DWORD64, ULONG, PVOID)
Definition: compat.h:1046
DWORD MaxNameLength
Definition: compat.h:1338
struct tagCY::@356 DUMMYSTRUCTNAME
PVOID UserReserved[5]
Definition: compat.h:725
SYM_TYPE
Definition: compat.h:913
DWORD SizeOfImage
Definition: compat.h:778
#define R(b, x)
Definition: sha2.c:134
ADDRESS_MODE Mode
Definition: compat.h:1056
static __inline const char * debugstr_w(const WCHAR *s)
Definition: compat.h:58
ULONG Win32ClientInfo[31]
Definition: compat.h:706
ULONG64 RVA64
Definition: compat.h:1122
#define WOW64_SIZE_OF_80387_REGISTERS
Definition: compat.h:236
WCHAR StaticUnicodeBuffer[261]
Definition: compat.h:736
PVOID Instrumentation[16]
Definition: compat.h:744
BSTR * pbstrVal
Definition: compat.h:2278
struct _IMAGEHLP_MODULEW64 IMAGEHLP_MODULEW64
struct _EXCEPTION_REGISTRATION_RECORD * Next
Definition: compat.h:585
ULONG NameLen
Definition: compat.h:909
BYTE bVal
Definition: compat.h:2250
Definition: compat.h:2157
struct _IMAGEHLP_LINEW * PIMAGEHLP_LINEW
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
DWORD64 ModBase
Definition: compat.h:1318
DWORD64 WINAPI SymLoadModuleExW(HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD)
Definition: module.c:796
ULONG64 Address
Definition: compat.h:1225
ULONG Esp
Definition: nt_native.h:1479
CY * pcyVal
Definition: compat.h:2281
PVOID GdiThreadLocaleInfo
Definition: compat.h:724
PVOID IRecordInfo
Definition: compat.h:31
VOID * PIMAGEHLP_CONTEXT
Definition: compat.h:833
ULONG MaxNameLen
Definition: compat.h:910
DWORD SizeOfStruct
Definition: compat.h:1378
Definition: compat.h:922
struct _IMAGEHLP_LINEW IMAGEHLP_LINEW
BOOL(CALLBACK * PENUMLOADED_MODULES_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID)
Definition: compat.h:1045
KAFFINITY AffinityMask
Definition: compat.h:789
DWORD WINAPI SymLoadModule(HANDLE hProcess, HANDLE hFile, PCSTR ImageName, PCSTR ModuleName, DWORD BaseOfDll, DWORD SizeOfDll)
Definition: module.c:749
ULONG Eip
Definition: nt_native.h:1476
struct _SECURITY_ATTRIBUTES * LPSECURITY_ATTRIBUTES
BOOL(CALLBACK * PENUMDIRTREE_CALLBACKW)(PCWSTR, PVOID)
Definition: compat.h:1037
Definition: compat.h:2173
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:306
struct _IMAGEHLP_MODULE * PIMAGEHLP_MODULE
WCHAR ModuleName[32]
Definition: compat.h:935
USHORT MajorVersion
Definition: compat.h:1430
MINIDUMP_THREAD_EX_CALLBACK ThreadEx
Definition: compat.h:1190
_IRQL_requires_same_ _In_ PVOID EstablisherFrame
Definition: ntbasedef.h:654
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
EXCEPTION_DISPOSITION NTAPI EXCEPTION_ROUTINE(struct _EXCEPTION_RECORD *ExceptionRecord, PVOID EstablisherFrame, struct _CONTEXT *ContextRecord, PVOID DispatcherContext)
Definition: compat.h:563
PVOID glReserved2
Definition: compat.h:728
LIST_ENTRY TlsLinks
Definition: compat.h:739
ULONG MaxNameLen
Definition: compat.h:1230
struct _SOURCEFILE SOURCEFILE
Definition: compat.h:2169
IMAGEHLP_EXTENDED_OPTIONS
Definition: compat.h:960
DWORD dwFileDateMS
Definition: compat.h:770
PVOID Win32ThreadInfo
Definition: compat.h:705
FLOATING_SAVE_AREA FloatSave
Definition: nt_native.h:1446
ULONG64 ModBase
Definition: compat.h:1222
DWORD WINAPI SymSetOptions(DWORD opts)
Definition: dbghelp.c:559
PVOID WINAPI SymFunctionTableAccess(HANDLE, DWORD)
Definition: module.c:1359
PVOID Key
Definition: compat.h:970
DWORD64 BaseOfImage
Definition: compat.h:929
PVOID glContext
Definition: compat.h:733
M128A
Definition: ketypes.h:925
struct _IMAGEHLP_SYMBOL * PIMAGEHLP_SYMBOL
VARIANT_BOOL boolVal
Definition: compat.h:2255
Definition: compat.h:917
DWORD LineNumber
Definition: compat.h:1398
MINIDUMP_THREAD_CALLBACK Thread
Definition: compat.h:1189
uint16_t * PWSTR
Definition: typedefs.h:56
BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION]
Definition: compat.h:279
USHORT * puiVal
Definition: compat.h:2266
VARIANTARG * LPVARIANTARG
Definition: compat.h:2300
PVOID CsrClientThread
Definition: compat.h:704
DWORD SizeOfStruct
Definition: compat.h:1354
struct tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO
ULONG64 FuncTableEntry
Definition: compat.h:1240
struct _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY
struct _IMAGE_SEPARATE_DEBUG_HEADER * PIMAGE_SEPARATE_DEBUG_HEADER
STACK32FRAME * frame32
Definition: compat.h:2324
struct _MINIDUMP_CALLBACK_OUTPUT::@354::@355 DUMMYSTRUCTNAME
DWORD SizeOfStruct
Definition: compat.h:1316
unsigned char * PUCHAR
Definition: retypes.h:3
struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD
char CHAR
Definition: xmlstorage.h:175
DWORD64 WINAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD)
Definition: module.c:759
DWORD BaseOfImage
Definition: compat.h:1075
SHORT * piVal
Definition: compat.h:2271
CHAR LoadedPdbName[256]
Definition: compat.h:1107
SAFEARRAYBOUND rgsabound[1]
Definition: compat.h:2219
ULONG Scope
Definition: compat.h:907
struct _tagADDRESS64 ADDRESS64
ULONG Ecx
Definition: nt_native.h:1467
DWORD64 KeUserCallbackDispatcher
Definition: compat.h:1254
struct _STACKFRAME64 STACKFRAME64
WORD wReserved3
Definition: compat.h:2243
CHAR ModuleName[32]
Definition: compat.h:1104
union _LDT_ENTRY::@350 HighWord
LONG NTSTATUS
Definition: precomp.h:26
USHORT fFeatures
Definition: compat.h:2215
ULONG64 BackingStoreOffset
Definition: compat.h:1239
struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD64 IMAGEHLP_DEFERRED_SYMBOL_LOAD64
WCHAR ImageName[256]
Definition: compat.h:1082
USHORT wReserved
Definition: compat.h:2127
USHORT MinorVersion
Definition: compat.h:1431
#define CALLBACK
Definition: compat.h:35
DWORD dwFileVersionLS
Definition: compat.h:762
PVOID WINAPI SymFunctionTableAccess64(HANDLE, DWORD64)
Definition: module.c:1367
struct _MINIDUMP_CALLBACK_INPUT MINIDUMP_CALLBACK_INPUT
DWORD64 Address
Definition: compat.h:1322
ULONG Flags
Definition: compat.h:903
BOOL(CALLBACK * PSYM_ENUMLINES_CALLBACKW)(PSRCCODEINFOW, PVOID)
Definition: compat.h:1324
FLOATING_SAVE_AREA * PFLOATING_SAVE_AREA
Definition: nt_native.h:1394
ULONG Lo32
Definition: compat.h:2142
GLdouble n
Definition: glext.h:7729
HANDLE HWND
Definition: compat.h:19
ULONG R6
Definition: ke.h:261
PVOID Key
Definition: compat.h:1317
DWORD SizeOfStruct
Definition: compat.h:1344
_EXCEPTION_DISPOSITION
Definition: compat.h:88
BOOL(CALLBACK * PSYM_ENUMSYMBOLS_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID)
Definition: compat.h:1047
DWORD SizeOfStruct
Definition: compat.h:1387
DWORD ebx
Definition: compat.h:2314
ULONG R0
Definition: ke.h:255
DWORD Pres
Definition: compat.h:650
union _MINIDUMP_CALLBACK_OUTPUT::@354 DUMMYUNIONNAME
double DATE
Definition: compat.h:2112
MINIDUMP_MODULE_CALLBACK Module
Definition: compat.h:1191
PVOID ActiveRpcHandle
Definition: compat.h:699
ULONG TypeIndex
Definition: compat.h:898
FLOAT * pfltVal
Definition: compat.h:2273
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
const char * wine_dbgstr_an(const char *s, int n)
Definition: compat.c:313
#define EXCEPTION_MAXIMUM_PARAMETERS
Definition: compat.h:206
_In_ BOOL _In_ HANDLE hProcess
Definition: mapping.h:70
Definition: strmini.h:380
PVOID(CALLBACK * PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE, DWORD64)
Definition: compat.h:1038
DWORD EFlags
Definition: compat.h:276
DWORD SegFs
Definition: compat.h:264
ULONG64 Address
Definition: compat.h:905
DWORD64(CALLBACK * PGET_MODULE_BASE_ROUTINE64)(HANDLE, DWORD64)
Definition: compat.h:1039
DWORD BaseHi
Definition: compat.h:656
* PM128A
Definition: ketypes.h:925
struct _MINIDUMP_THREAD_CALLBACK * PMINIDUMP_THREAD_CALLBACK
ULONG SegGs
Definition: nt_native.h:1453
struct _IMAGEHLP_DEFERRED_SYMBOL_LOADW64 IMAGEHLP_DEFERRED_SYMBOL_LOADW64
DWORD LineNumber
Definition: compat.h:1380
SAFEARRAY * parray
Definition: compat.h:2262
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char * ModuleName
Definition: acpixf.h:1274
OLECHAR * BSTR
Definition: compat.h:2152
struct _MINIDUMP_CALLBACK_INPUT * PMINIDUMP_CALLBACK_INPUT
ULONG SegFs
Definition: nt_native.h:1454
uint16_t * PWCHAR
Definition: typedefs.h:56
struct _STACK32FRAME STACK32FRAME
BOOL(CALLBACK * PFIND_EXE_FILE_CALLBACKW)(HANDLE, PCWSTR, PVOID)
Definition: compat.h:999
ULONG SegDs
Definition: nt_native.h:1456
WCHAR * __lstrcpynW(WCHAR *lpString1, const WCHAR *lpString2, int iMaxLength)
struct _KDHELP64 KDHELP64
struct tagVARIANT::@361::__tagVARIANT::@362::__tagBRECORD __VARIANT_NAME_4
SAFEARRAY ** pparray
Definition: compat.h:2285
ADDRESS64 AddrBStore
Definition: compat.h:1264
PVOID byref
Definition: compat.h:2280
char * LPSTR
Definition: xmlstorage.h:182
_IMAGEHLP_SYMBOL_TYPE_INFO
Definition: compat.h:1272
HANDLE UniqueProcess
Definition: compat.h:684
struct _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC
DataKind
Definition: compat.h:1505
ULONG WaitingOnLoaderLock
Definition: compat.h:751
struct _tagADDRESS ADDRESS
BOOL(CALLBACK * PSYM_ENUMSYMBOLS_CALLBACKW)(PCWSTR, ULONG, ULONG, PVOID)
Definition: compat.h:1093
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
BYTE sign
Definition: compat.h:2131
#define BOOL
Definition: nt_native.h:43
DWORD SegGs
Definition: compat.h:263
ULONG ulVal
Definition: compat.h:2247
struct _MINIDUMP_CALLBACK_OUTPUT * PMINIDUMP_CALLBACK_OUTPUT
union _CONTEXT::@3742 DUMMYUNIONNAME
#define DWORD
Definition: nt_native.h:44
DWORD ThCallbackStack
Definition: compat.h:1249
WORD BaseLow
Definition: compat.h:638
int32_t INT
Definition: typedefs.h:58
BYTE Flags1
Definition: compat.h:642
short VARIANT_BOOL
Definition: compat.h:2149
struct _CONTEXT CONTEXT
struct API_VERSION API_VERSION
PVOID ArbitraryUserPointer
Definition: compat.h:578
PCHAR FileName
Definition: compat.h:957
static __inline const char * wine_dbgstr_w(const WCHAR *s)
Definition: compat.h:59
WORD Segment
Definition: compat.h:1034
PVOID WinSockData
Definition: compat.h:745
LONG KPRIORITY
Definition: compat.h:662
struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD * PIMAGEHLP_DEFERRED_SYMBOL_LOAD
ULONG Dr7
Definition: nt_native.h:1439
ULONG Dr3
Definition: nt_native.h:1437
struct _STACK16FRAME STACK16FRAME
BOOL(CALLBACK * PENUMLOADED_MODULES_CALLBACK)(PCSTR, ULONG, ULONG, PVOID)
Definition: compat.h:1085
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
DWORD target
Definition: compat.h:2317
PEXCEPTION_ROUTINE Handler
Definition: compat.h:586
INT __WideCharToMultiByte(UINT page, DWORD flags, LPCWSTR src, INT srclen, LPSTR dst, INT dstlen, LPCSTR defchar, BOOL *used)
Definition: compat.c:238
PVOID ExceptionAddress
Definition: compat.h:211
HANDLE __CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
Definition: compat.c:152
ULONG __RtlComputeCrc32(ULONG Initial, PUCHAR Data, ULONG Length)
Definition: compat.c:501
DWORD Dr6
Definition: compat.h:260