a71584d5597fcd434f6f3b65ca9d830e50b2b073
[reactos.git] / reactos / ntoskrnl / include / internal / ldr.h
1 #ifndef __INCLUDE_INTERNAL_LDR_H
2 #define __INCLUDE_INTERNAL_LDR_H
3
4 #define KERNEL_MODULE_NAME L"ntoskrnl.exe"
5 #define HAL_MODULE_NAME L"hal.dll"
6 #define DRIVER_ROOT_NAME L"\\Driver\\"
7 #define FILESYSTEM_ROOT_NAME L"\\FileSystem\\"
8
9 extern ULONG_PTR LdrHalBase;
10
11 NTSTATUS
12 LdrLoadInitialProcess(
13 PHANDLE ProcessHandle,
14 PHANDLE ThreadHandle
15 );
16
17 VOID
18 LdrLoadAutoConfigDrivers (VOID);
19
20 VOID
21 LdrInitModuleManagement (VOID);
22
23 NTSTATUS
24 STDCALL
25 LdrpMapSystemDll(
26 PEPROCESS Process,
27 PVOID *DllBase
28 );
29
30 NTSTATUS
31 STDCALL
32 LdrpInitializeSystemDll(VOID);
33
34 NTSTATUS
35 STDCALL
36 LdrpGetSystemDllEntryPoints(VOID);
37
38 PVOID
39 LdrpGetSystemDllEntryPoint (VOID);
40
41 PVOID
42 LdrpGetSystemDllApcDispatcher(VOID);
43
44 PVOID
45 LdrpGetSystemDllExceptionDispatcher(VOID);
46
47 PVOID
48 LdrpGetSystemDllCallbackDispatcher(VOID);
49
50 PVOID
51 LdrpGetSystemDllRaiseExceptionDispatcher(VOID);
52
53 NTSTATUS
54 LdrpMapImage(
55 HANDLE ProcessHandle,
56 HANDLE SectionHandle,
57 PVOID * ImageBase
58 );
59
60 NTSTATUS
61 LdrpLoadImage(
62 PUNICODE_STRING DriverName,
63 PVOID *ModuleBase,
64 PVOID *SectionPointer,
65 PVOID *EntryPoint,
66 PVOID *ExportDirectory
67 );
68
69 NTSTATUS
70 LdrpUnloadImage(PVOID ModuleBase);
71
72 NTSTATUS
73 LdrpLoadAndCallImage(PUNICODE_STRING DriverName);
74
75 NTSTATUS
76 LdrpQueryModuleInformation(
77 PVOID Buffer,
78 ULONG Size,
79 PULONG ReqSize
80 );
81
82 VOID
83 LdrInit1(VOID);
84
85 VOID
86 LdrInitDebug(
87 PLOADER_MODULE Module,
88 PWCH Name
89 );
90
91 PVOID
92 LdrSafePEProcessModule(
93 PVOID ModuleLoadBase,
94 PVOID DriverBase,
95 PVOID ImportModuleBase,
96 PULONG DriverSize
97 );
98
99 NTSTATUS
100 LdrLoadModule(
101 PUNICODE_STRING Filename,
102 PMODULE_OBJECT *ModuleObject
103 );
104
105 NTSTATUS
106 LdrUnloadModule(PMODULE_OBJECT ModuleObject);
107
108 PMODULE_OBJECT
109 LdrGetModuleObject(PUNICODE_STRING ModuleName);
110
111 #endif /* __INCLUDE_INTERNAL_LDR_H */