2 * Win95 Flat Thunk data structures
4 * Copyright 1998 Ulrich Weigand
7 #ifndef __WINE_FLATTHUNK_H
8 #define __WINE_FLATTHUNK_H
12 struct ThunkDataCommon
14 char magic
[4]; /* 00 */
15 DWORD checksum
; /* 04 */
20 struct ThunkDataCommon common
; /* 00 */
21 SEGPTR targetTable
; /* 08 */
22 DWORD firstTime
; /* 0C */
27 struct ThunkDataCommon common
; /* 00 */
28 DWORD
* targetTable
; /* 08 */
29 char lateBinding
[4]; /* 0C */
31 DWORD reserved1
; /* 14 */
32 DWORD reserved2
; /* 18 */
33 DWORD offsetQTThunk
; /* 1C */
34 DWORD offsetFTProlog
; /* 20 */
39 struct ThunkDataCommon common
; /* 00 */
40 DWORD flags1
; /* 08 */
41 DWORD reserved1
; /* 0C */
42 struct ThunkDataSL
* fpData
; /* 10 */
43 SEGPTR spData
; /* 14 */
44 DWORD reserved2
; /* 18 */
45 char lateBinding
[4]; /* 1C */
46 DWORD flags2
; /* 20 */
47 DWORD reserved3
; /* 20 */
48 SEGPTR apiDatabase
; /* 28 */
53 struct ThunkDataCommon common
; /* 00 */
54 DWORD reserved1
; /* 08 */
55 struct ThunkDataSL
* data
; /* 0C */
56 char lateBinding
[4]; /* 10 */
58 DWORD reserved2
; /* 18 */
59 DWORD reserved3
; /* 1C */
60 DWORD offsetTargetTable
; /* 20 */
66 This structure differs from the Win95 original
,
67 but
this should
not matter since it is strictly internal to
68 the thunk handling routines in KRNL386
/ KERNEL32
.
70 For reference
, here is the Win95 layout
:
72 struct ThunkDataCommon common
; /* 00 */
73 DWORD flags1
; /* 08 */
74 SEGPTR apiDatabase
; /* 0C */
77 DWORD lenMBATotal
; /* 14 */
78 DWORD lenMBAUsed
; /* 18 */
79 DWORD flags2
; /* 1C */
80 char pszDll16
[256]; /* 20 */
81 char pszDll32
[256]; /*120 */
83 We
do it differently since all our thunk handling is done
84 by
32-bit code
. Therefore we
do not need
do provide
85 easy access to
this data
, especially the process target
86 table database
, for 16-bit code
.
89 struct ThunkDataCommon common
;
91 struct SLApiDB
* apiDB
;
92 struct SLTargetDB
* targetDB
;
100 struct SLTargetDB
* next
;
108 DWORD errorReturnValue
;
112 #endif /* __WINE_FLATTHUNK_H */