Large partial cleanup of ntoskrnl internal headers, mostly to delete obsoleted or...
[reactos.git] / reactos / ntoskrnl / include / internal / module.h
1 #ifndef __MODULE_H
2 #define __MODULE_H
3
4 typedef struct _MODULE_TEXT_SECTION
5 {
6 ULONG Base;
7 ULONG Length;
8 LIST_ENTRY ListEntry;
9 PWCH Name;
10 PIMAGE_OPTIONAL_HEADER OptionalHeader;
11 PROSSYM_INFO RosSymInfo;
12 } MODULE_TEXT_SECTION, *PMODULE_TEXT_SECTION;
13
14 typedef struct _MODULE_OBJECT
15 {
16 CSHORT ObjectType;
17 CSHORT ObjectSize;
18 PVOID Base;
19 ULONG Length;
20 ULONG Flags;
21 PVOID EntryPoint;
22 LIST_ENTRY ListEntry;
23 UNICODE_STRING FullName;
24 UNICODE_STRING BaseName;
25 PMODULE_TEXT_SECTION TextSection;
26 union
27 {
28 struct
29 {
30 PIMAGE_FILE_HEADER FileHeader;
31 PIMAGE_OPTIONAL_HEADER OptionalHeader;
32 PIMAGE_SECTION_HEADER SectionList;
33 } PE;
34 } Image;
35 } MODULE_OBJECT, *PMODULE_OBJECT;
36
37 typedef MODULE_OBJECT MODULE, *PMODULE;
38
39 #define MODULE_FLAG_BIN 0x0001
40 #define MODULE_FLAG_MZ 0x0002
41 #define MODULE_FLAG_NE 0x0004
42 #define MODULE_FLAG_PE 0x0008
43 #define MODULE_FLAG_COFF 0x0010
44
45 typedef struct _INSTANCE
46 {
47 HANDLE ModuleHandle;
48 } INSTANCE, *PINSTANCE;
49
50 BOOLEAN process_boot_module(unsigned int start);
51
52 #endif
53