Copy wininet to branch
[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 LdrpMapSystemDll (
38 HANDLE ProcessHandle,
39 PVOID * LdrStartupAddress
40 );
41 PVOID
42 LdrpGetSystemDllEntryPoint (VOID);
43 PVOID
44 LdrpGetSystemDllApcDispatcher(VOID);
45 PVOID
46 LdrpGetSystemDllExceptionDispatcher(VOID);
47 PVOID
48 LdrpGetSystemDllCallbackDispatcher(VOID);
49 PVOID
50 LdrpGetSystemDllRaiseExceptionDispatcher(VOID);
51 NTSTATUS
52 LdrpMapImage (
53 HANDLE ProcessHandle,
54 HANDLE SectionHandle,
55 PVOID * ImageBase
56 );
57
58
59 NTSTATUS STDCALL
60 LdrGetProcedureAddress (IN PVOID BaseAddress,
61 IN PANSI_STRING Name,
62 IN ULONG Ordinal,
63 OUT PVOID *ProcedureAddress);
64
65 NTSTATUS
66 LdrpLoadImage(PUNICODE_STRING DriverName,
67 PVOID *ModuleBase,
68 PVOID *SectionPointer,
69 PVOID *EntryPoint,
70 PVOID *ExportDirectory);
71
72 NTSTATUS
73 LdrpUnloadImage(PVOID ModuleBase);
74
75 NTSTATUS
76 LdrpLoadAndCallImage(PUNICODE_STRING DriverName);
77
78 NTSTATUS
79 LdrpQueryModuleInformation(PVOID Buffer,
80 ULONG Size,
81 PULONG ReqSize);
82
83 PVOID STDCALL
84 RtlImageDirectoryEntryToData (
85 IN PVOID BaseAddress,
86 IN BOOLEAN ImageLoaded,
87 IN ULONG Directory,
88 OUT PULONG Size);
89 VOID
90 LdrInit1(VOID);
91 VOID
92 LdrInitDebug(PLOADER_MODULE Module, PWCH Name);
93
94 PVOID LdrSafePEProcessModule(
95 PVOID ModuleLoadBase,
96 PVOID DriverBase,
97 PVOID ImportModuleBase,
98 PULONG DriverSize);
99
100 NTSTATUS
101 LdrLoadModule(PUNICODE_STRING Filename,
102 PMODULE_OBJECT *ModuleObject);
103
104 NTSTATUS
105 LdrUnloadModule(PMODULE_OBJECT ModuleObject);
106
107 PMODULE_OBJECT
108 LdrGetModuleObject(PUNICODE_STRING ModuleName);
109
110 #endif /* __INCLUDE_INTERNAL_LDR_H */