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