Raw IP and ICMP fixes
[reactos.git] / reactos / ntoskrnl / include / internal / module.h
1
2 #ifndef __MODULE_H
3 #define __MODULE_H
4
5 #include <ddk/ntddk.h>
6 #include <internal/config.h>
7 #include <pe.h>
8 #include <ntos/kdbgsyms.h>
9
10 typedef struct _MODULE_TEXT_SECTION
11 {
12 ULONG Base;
13 ULONG Length;
14 LIST_ENTRY ListEntry;
15 PWCH Name;
16 #ifdef KDBG
17 SYMBOL_TABLE Symbols;
18 #endif /* KDBG */
19 PVOID SymbolsBase;
20 ULONG SymbolsLength;
21 } MODULE_TEXT_SECTION, *PMODULE_TEXT_SECTION;
22
23 typedef struct _MODULE_OBJECT
24 {
25 CSHORT ObjectType;
26 CSHORT ObjectSize;
27 PVOID Base;
28 ULONG Length;
29 ULONG Flags;
30 PVOID EntryPoint;
31 LIST_ENTRY ListEntry;
32 UNICODE_STRING FullName;
33 UNICODE_STRING BaseName;
34 PMODULE_TEXT_SECTION TextSection;
35 union
36 {
37 struct
38 {
39 PIMAGE_FILE_HEADER FileHeader;
40 PIMAGE_OPTIONAL_HEADER OptionalHeader;
41 PIMAGE_SECTION_HEADER SectionList;
42 } PE;
43 } Image;
44 } MODULE_OBJECT, *PMODULE_OBJECT;
45
46 typedef MODULE_OBJECT MODULE, *PMODULE;
47
48 #define MODULE_FLAG_BIN 0x0001
49 #define MODULE_FLAG_MZ 0x0002
50 #define MODULE_FLAG_NE 0x0004
51 #define MODULE_FLAG_PE 0x0008
52 #define MODULE_FLAG_COFF 0x0010
53
54 typedef struct _INSTANCE
55 {
56 HANDLE ModuleHandle;
57 } INSTANCE, *PINSTANCE;
58
59 BOOLEAN process_boot_module(unsigned int start);
60
61 #endif
62