1 #include <ntos/kdbgsyms.h>
4 typedef NTSTATUS
STDCALL (*PEPFUNC
)(PPEB
);
6 typedef struct _LDR_MODULE
8 LIST_ENTRY InLoadOrderModuleList
;
9 LIST_ENTRY InMemoryOrderModuleList
; // not used
10 LIST_ENTRY InInitializationOrderModuleList
; // not used
14 UNICODE_STRING FullDllName
;
15 UNICODE_STRING BaseDllName
;
25 } LDR_MODULE
, *PLDR_MODULE
;
28 #define RVA(m, b) ((ULONG)b + m)
31 PEPFUNC
LdrPEStartup(PVOID ImageBase
, HANDLE SectionHandle
);
32 NTSTATUS
LdrMapSections(HANDLE ProcessHandle
,
35 PIMAGE_NT_HEADERS NTHeaders
);
36 NTSTATUS
LdrMapNTDllForProcess(HANDLE ProcessHandle
,
37 PHANDLE NTDllSectionHandle
);
42 LdrDisableThreadCalloutsForDll (IN PVOID BaseAddress
);
45 LdrGetDllHandle (IN ULONG Unknown1
,
47 IN PUNICODE_STRING DllName
,
48 OUT PVOID
*BaseAddress
);
51 LdrGetProcedureAddress (IN PVOID BaseAddress
,
54 OUT PVOID
*ProcedureAddress
);
57 LdrInitializeThunk (ULONG Unknown1
,
63 LdrLoadDll (IN PWSTR SearchPath OPTIONAL
,
65 IN PUNICODE_STRING Name
,
66 OUT PVOID
*BaseAddress OPTIONAL
);
69 LdrShutdownProcess (VOID
);
72 LdrShutdownThread (VOID
);
75 LdrUnloadDll (IN PVOID BaseAddress
);
77 VOID
LdrLoadModuleSymbols(PLDR_MODULE ModuleObject
);