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
8 #ifndef __INCLUDE_INTERNAL_LDR_H
9 #define __INCLUDE_INTERNAL_LDR_H
12 #include <internal/io.h>
13 #include <ntdll/ldr.h>
14 #include <internal/module.h>
16 #define KERNEL_MODULE_NAME L"ntoskrnl.exe"
17 #define HAL_MODULE_NAME L"hal.dll"
18 #define DRIVER_ROOT_NAME L"\\Driver\\"
19 #define FILESYSTEM_ROOT_NAME L"\\FileSystem\\"
22 extern ULONG_PTR LdrHalBase
;
25 LdrLoadInitialProcess(PHANDLE ProcessHandle
,
26 PHANDLE ThreadHandle
);
29 LdrLoadAutoConfigDrivers (
33 LdrInitModuleManagement (
38 LdrInitializeBootStartDriver(IN PVOID ModuleLoadBase
,
40 IN ULONG ModuleLength
);
45 PVOID
* LdrStartupAddress
48 LdrpGetSystemDllEntryPoint (VOID
);
50 LdrpGetSystemDllApcDispatcher(VOID
);
52 LdrpGetSystemDllExceptionDispatcher(VOID
);
54 LdrpGetSystemDllCallbackDispatcher(VOID
);
64 LdrGetProcedureAddress (IN PVOID BaseAddress
,
67 OUT PVOID
*ProcedureAddress
);
70 LdrpLoadImage(PUNICODE_STRING DriverName
,
72 PVOID
*SectionPointer
,
74 PVOID
*ExportDirectory
);
77 LdrpUnloadImage(PVOID ModuleBase
);
80 LdrpLoadAndCallImage(PUNICODE_STRING DriverName
);
83 LdrpQueryModuleInformation(PVOID Buffer
,
88 RtlImageDirectoryEntryToData (
90 IN BOOLEAN ImageLoaded
,
96 LdrInitDebug(PLOADER_MODULE Module
, PWCH Name
);
98 PVOID
LdrSafePEProcessModule(
101 PVOID ImportModuleBase
,
105 LdrLoadModule(PUNICODE_STRING Filename
,
106 PMODULE_OBJECT
*ModuleObject
);
109 LdrUnloadModule(PMODULE_OBJECT ModuleObject
);
112 LdrGetModuleObject(PUNICODE_STRING ModuleName
);
115 LdrGetAddressInformation(IN PIMAGE_SYMBOL_INFO SymbolInfo
,
116 IN ULONG_PTR RelativeAddress
,
117 OUT PULONG LineNumber
,
118 OUT PCH FileName OPTIONAL
,
119 OUT PCH FunctionName OPTIONAL
);
125 LdrLoadUserModuleSymbols(PLDR_MODULE LdrModule
);
128 LdrUnloadModuleSymbols(PIMAGE_SYMBOL_INFO SymbolInfo
);
132 #endif /* __INCLUDE_INTERNAL_LDR_H */