Subversion Repositories Kolibri OS

Rev

Rev 908 | Rev 1066 | 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
 
204
205
 
914 serge 206