*nix newlines throughout file fixed.
[reactos.git] / reactos / include / ntdll / ldr.h
index 326b053..1112626 100644 (file)
@@ -1,8 +1,18 @@
+#ifndef __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
+#define __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
+
 #include <ntos/kdbgsyms.h>
-#include "../ntoskrnl/include/internal/config.h"
+#include <roscfg.h>
+#include <napi/teb.h>
 
 typedef NTSTATUS STDCALL (*PEPFUNC)(PPEB);
 
+/* Type for a DLL's entry point */
+typedef BOOL STDCALL
+(* PDLLMAIN_FUNC)(HANDLE hInst,
+                 ULONG ul_reason_for_call,
+                 LPVOID lpReserved);
+
 typedef struct _LDR_MODULE
 {
    LIST_ENTRY     InLoadOrderModuleList;
@@ -20,15 +30,54 @@ typedef struct _LDR_MODULE
    ULONG          CheckSum;
    ULONG          TimeDateStamp;
 #ifdef KDBG
-  SYMBOL_TABLE    Symbols;
+  IMAGE_SYMBOL_INFO SymbolInfo;
 #endif /* KDBG */
 } LDR_MODULE, *PLDR_MODULE;
 
+typedef struct _LDR_SYMBOL_INFO {
+  PLDR_MODULE ModuleObject;
+  ULONG_PTR ImageBase;
+  PVOID SymbolsBuffer;
+  ULONG SymbolsBufferLength;
+  PVOID SymbolStringsBuffer;
+  ULONG SymbolStringsBufferLength;
+} LDR_SYMBOL_INFO, *PLDR_SYMBOL_INFO;
+
 
 #define RVA(m, b) ((ULONG)b + m)
 
 
-PEPFUNC LdrPEStartup(PVOID ImageBase, HANDLE SectionHandle);
+typedef struct _MODULE_ENTRY
+{
+  ULONG Unknown0;
+  ULONG Unknown1;
+  PVOID BaseAddress;
+  ULONG SizeOfImage;
+  ULONG Flags;
+  USHORT Unknown2;
+  USHORT Unknown3;
+  SHORT LoadCount;
+  USHORT PathLength;
+  CHAR ModuleName[256];
+} MODULE_ENTRY, *PMODULE_ENTRY;
+
+typedef struct _MODULE_INFORMATION
+{
+  ULONG ModuleCount;
+  MODULE_ENTRY ModuleEntry[1];
+} MODULE_INFORMATION, *PMODULE_INFORMATION;
+
+#ifdef KDBG
+
+VOID
+LdrpLoadUserModuleSymbols(PLDR_MODULE LdrModule);
+
+#endif
+
+PEPFUNC LdrPEStartup (PVOID  ImageBase,
+                     HANDLE SectionHandle,
+                     PLDR_MODULE* Module,
+                     PWSTR FullDosName);
 NTSTATUS LdrMapSections(HANDLE ProcessHandle,
                        PVOID ImageBase,
                        HANDLE SectionHandle,
@@ -37,43 +86,51 @@ NTSTATUS LdrMapNTDllForProcess(HANDLE ProcessHandle,
                               PHANDLE NTDllSectionHandle);
 
 
+NTSTATUS STDCALL
+LdrDisableThreadCalloutsForDll(IN PVOID BaseAddress);
 
 NTSTATUS STDCALL
-LdrDisableThreadCalloutsForDll (IN PVOID BaseAddress);
+LdrGetDllHandle(IN ULONG Unknown1,
+               IN ULONG Unknown2,
+               IN PUNICODE_STRING DllName,
+               OUT PVOID *BaseAddress);
 
 NTSTATUS STDCALL
-LdrGetDllHandle (IN ULONG Unknown1,
-                 IN ULONG Unknown2,
-                 IN PUNICODE_STRING DllName,
-                 OUT PVOID *BaseAddress);
+LdrFindEntryForAddress(PVOID Address,
+                      PLDR_MODULE *Module);
 
 NTSTATUS STDCALL
-LdrGetProcedureAddress (IN PVOID BaseAddress,
-                        IN PANSI_STRING Name,
-                        IN ULONG Ordinal,
-                        OUT PVOID *ProcedureAddress);
+LdrGetProcedureAddress(IN PVOID BaseAddress,
+                      IN PANSI_STRING Name,
+                      IN ULONG Ordinal,
+                      OUT PVOID *ProcedureAddress);
 
 VOID STDCALL
-LdrInitializeThunk (ULONG Unknown1,
-                    ULONG Unknown2,
-                    ULONG Unknown3,
-                    ULONG Unknown4);
+LdrInitializeThunk(ULONG Unknown1,
+                  ULONG Unknown2,
+                  ULONG Unknown3,
+                  ULONG Unknown4);
+
+NTSTATUS STDCALL
+LdrLoadDll(IN PWSTR SearchPath OPTIONAL,
+          IN ULONG LoadFlags,
+          IN PUNICODE_STRING Name,
+          OUT PVOID *BaseAddress OPTIONAL);
 
 NTSTATUS STDCALL
-LdrLoadDll (IN PWSTR SearchPath OPTIONAL,
-            IN ULONG LoadFlags,
-            IN PUNICODE_STRING Name,
-            OUT PVOID *BaseAddress OPTIONAL);
+LdrQueryProcessModuleInformation(IN PMODULE_INFORMATION ModuleInformation OPTIONAL,
+                                IN ULONG Size OPTIONAL,
+                                OUT PULONG ReturnedSize);
 
 NTSTATUS STDCALL
-LdrShutdownProcess (VOID);
+LdrShutdownProcess(VOID);
 
 NTSTATUS STDCALL
-LdrShutdownThread (VOID);
+LdrShutdownThread(VOID);
 
 NTSTATUS STDCALL
-LdrUnloadDll (IN PVOID BaseAddress);
+LdrUnloadDll(IN PVOID BaseAddress);
 
-VOID LdrLoadModuleSymbols(PLDR_MODULE ModuleObject);
+#endif /* __NTOSKRNL_INCLUDE_INTERNAL_LDR_H */
 
 /* EOF */