Subversion Repositories Kolibri OS

Rev

Rev 914 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
892 serge 1
 
2
typedef unsigned int DWORD;
3
typedef unsigned int LONG;
4
typedef unsigned char BYTE;
5
6
 
7
#define IMAGE_NT_SIGNATURE   0x00004550
8
#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
9
10
 
11
typedef struct _IMAGE_DOS_HEADER
12
{
13
    WORD    e_magic;
14
    WORD    e_cblp;
15
    WORD    e_cp;
16
    WORD    e_crlc;
17
    WORD    e_cparhdr;
18
    WORD    e_minalloc;
19
    WORD    e_maxalloc;
20
    WORD    e_ss;
21
    WORD    e_sp;
22
    WORD    e_csum;
23
    WORD    e_ip;
24
    WORD    e_cs;
25
    WORD    e_lfarlc;
26
    WORD    e_ovno;
27
    WORD    e_res[4];
28
    WORD    e_oemid;
29
    WORD    e_oeminfo;
30
    WORD    e_res2[10];
31
    LONG    e_lfanew;
32
} IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;
33
#pragma pack(pop)
34
35
 
36
 
37
typedef struct _IMAGE_FILE_HEADER
38
{
39
    WORD    Machine;
40
    WORD    NumberOfSections;
41
    DWORD   TimeDateStamp;
42
    DWORD   PointerToSymbolTable;
43
    DWORD   NumberOfSymbols;
44
    WORD    SizeOfOptionalHeader;
45
    WORD    Characteristics;
46
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
47
48
 
914 serge 49
50
 
51
                                                and compatible processors */
52
typedef struct _IMAGE_DATA_DIRECTORY {
892 serge 53
    DWORD   VirtualAddress;
54
    DWORD   Size;
55
} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;
56
57
 
58
59
 
60
    WORD    Magic;
61
    BYTE    MajorLinkerVersion;
62
    BYTE    MinorLinkerVersion;
63
    DWORD   SizeOfCode;
64
    DWORD   SizeOfInitializedData;
65
    DWORD   SizeOfUninitializedData;
66
    DWORD   AddressOfEntryPoint;
67
    DWORD   BaseOfCode;
68
    DWORD   BaseOfData;
69
    DWORD   ImageBase;
70
    DWORD   SectionAlignment;
71
    DWORD   FileAlignment;
72
    WORD    MajorOperatingSystemVersion;
73
    WORD    MinorOperatingSystemVersion;
74
    WORD    MajorImageVersion;
75
    WORD    MinorImageVersion;
76
    WORD    MajorSubsystemVersion;
77
    WORD    MinorSubsystemVersion;
78
    DWORD   Win32VersionValue;
79
    DWORD   SizeOfImage;
80
    DWORD   SizeOfHeaders;
81
    DWORD   CheckSum;
82
    WORD    Subsystem;
83
    WORD    DllCharacteristics;
84
    DWORD   SizeOfStackReserve;
85
    DWORD   SizeOfStackCommit;
86
    DWORD   SizeOfHeapReserve;
87
    DWORD   SizeOfHeapCommit;
88
    DWORD   LoaderFlags;
89
    DWORD   NumberOfRvaAndSizes;
90
	IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
91
} IMAGE_OPTIONAL_HEADER,*PIMAGE_OPTIONAL_HEADER;
92
93
 
94
95
 
96
 
97
typedef struct _IMAGE_NT_HEADERS
98
{
99
    DWORD Signature;
100
	IMAGE_FILE_HEADER FileHeader;
101
	IMAGE_OPTIONAL_HEADER OptionalHeader;
102
} IMAGE_NT_HEADERS32,*PIMAGE_NT_HEADERS32;
103
104
 
105
106
 
107
{
108
	BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
109
    union
110
    {
111
        DWORD PhysicalAddress;
112
		DWORD VirtualSize;
113
	} Misc;
114
    DWORD   VirtualAddress;
115
    DWORD   SizeOfRawData;
116
    DWORD   PointerToRawData;
117
    DWORD   PointerToRelocations;
118
    DWORD   PointerToLinenumbers;
119
    WORD    NumberOfRelocations;
120
    WORD    NumberOfLinenumbers;
121
    DWORD   Characteristics;
122
} IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER;
123
#pragma pack(pop)
124
125
 
126
typedef struct _IMAGE_BASE_RELOCATION {
127
	DWORD VirtualAddress;
128
	DWORD SizeOfBlock;
129
} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION;
130
#pragma pack(pop)
131
132
 
133
{
134
    union
135
    {
136
		DWORD Characteristics;
137
		DWORD OriginalFirstThunk;
138
    };
139
    DWORD   TimeDateStamp;
140
    DWORD   ForwarderChain;
141
    DWORD   Name;
142
    DWORD   FirstThunk;
143
} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR;
144
145
 
146
{
147
    union
148
    {
149
		DWORD ForwarderString;
150
		DWORD Function;
151
		DWORD Ordinal;
152
		DWORD AddressOfData;
153
	} u1;
154
} IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;
155
156
 
157
{
158
	WORD Hint;
159
	BYTE Name[1];
160
} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME;
161
162
 
163
164
 
165
	DWORD Characteristics;
166
	DWORD TimeDateStamp;
167
	WORD MajorVersion;
168
	WORD MinorVersion;
169
	DWORD Name;
170
	DWORD Base;
171
	DWORD NumberOfFunctions;
172
	DWORD NumberOfNames;
173
	DWORD AddressOfFunctions;
174
	DWORD AddressOfNames;
175
	DWORD AddressOfNameOrdinals;
176
} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY;
177
178
 
179
 
180
{
181
    link_t  link;
182
183
 
184
    size_t  img_size;
185
    char   *img_name;
186
    md_t   *img_md;
187
188
 
189
    PIMAGE_SECTION_HEADER    img_sec;
190
    PIMAGE_EXPORT_DIRECTORY  img_exp;
191
    u32_t   img_map[8];                  /* mapped treads */
192
}dll_t;
193
194
 
908 serge 195
892 serge 196
 
197
198
 
914 serge 199
892 serge 200
 
908 serge 201
892 serge 202
 
203
 
1066 serge 204
892 serge 205
 
914 serge 206