Changed internal/config.h -> roscfg.h in a number of files.
[reactos.git] / reactos / include / ntdll / ldr.h
1 #include <ntos/kdbgsyms.h>
2 #include <roscfg.h>
3
4 typedef NTSTATUS STDCALL (*PEPFUNC)(PPEB);
5
6 typedef struct _LDR_MODULE
7 {
8 LIST_ENTRY InLoadOrderModuleList;
9 LIST_ENTRY InMemoryOrderModuleList; // not used
10 LIST_ENTRY InInitializationOrderModuleList; // not used
11 PVOID BaseAddress;
12 ULONG EntryPoint;
13 ULONG SizeOfImage;
14 UNICODE_STRING FullDllName;
15 UNICODE_STRING BaseDllName;
16 ULONG Flags;
17 SHORT LoadCount;
18 SHORT TlsIndex;
19 HANDLE SectionHandle;
20 ULONG CheckSum;
21 ULONG TimeDateStamp;
22 #ifdef KDBG
23 SYMBOL_TABLE Symbols;
24 #endif /* KDBG */
25 } LDR_MODULE, *PLDR_MODULE;
26
27
28 #define RVA(m, b) ((ULONG)b + m)
29
30
31 PEPFUNC LdrPEStartup(PVOID ImageBase, HANDLE SectionHandle);
32 NTSTATUS LdrMapSections(HANDLE ProcessHandle,
33 PVOID ImageBase,
34 HANDLE SectionHandle,
35 PIMAGE_NT_HEADERS NTHeaders);
36 NTSTATUS LdrMapNTDllForProcess(HANDLE ProcessHandle,
37 PHANDLE NTDllSectionHandle);
38
39
40
41 NTSTATUS STDCALL
42 LdrDisableThreadCalloutsForDll (IN PVOID BaseAddress);
43
44 NTSTATUS STDCALL
45 LdrGetDllHandle (IN ULONG Unknown1,
46 IN ULONG Unknown2,
47 IN PUNICODE_STRING DllName,
48 OUT PVOID *BaseAddress);
49
50 NTSTATUS STDCALL
51 LdrGetProcedureAddress (IN PVOID BaseAddress,
52 IN PANSI_STRING Name,
53 IN ULONG Ordinal,
54 OUT PVOID *ProcedureAddress);
55
56 VOID STDCALL
57 LdrInitializeThunk (ULONG Unknown1,
58 ULONG Unknown2,
59 ULONG Unknown3,
60 ULONG Unknown4);
61
62 NTSTATUS STDCALL
63 LdrLoadDll (IN PWSTR SearchPath OPTIONAL,
64 IN ULONG LoadFlags,
65 IN PUNICODE_STRING Name,
66 OUT PVOID *BaseAddress OPTIONAL);
67
68 NTSTATUS STDCALL
69 LdrShutdownProcess (VOID);
70
71 NTSTATUS STDCALL
72 LdrShutdownThread (VOID);
73
74 NTSTATUS STDCALL
75 LdrUnloadDll (IN PVOID BaseAddress);
76
77 VOID LdrLoadModuleSymbols(PLDR_MODULE ModuleObject);
78
79 /* EOF */