Began seperation of machine-dependant/independant sections of memory
[reactos.git] / reactos / ntoskrnl / ldr / rtl.c
1 /* $Id: rtl.c,v 1.6 2000/04/07 02:24:00 dwelch Exp $
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/ldr/loader.c
6 * PURPOSE: Loader utilities
7 * PROGRAMMERS: Jean Michault
8 * Rex Jolliff (rex@lvcablemodem.com)
9 */
10
11 /* INCLUDES *****************************************************************/
12
13 #include <ddk/ntddk.h>
14 #include <internal/i386/segment.h>
15 #include <internal/linkage.h>
16 #include <internal/module.h>
17 #include <internal/ntoskrnl.h>
18 #include <internal/ob.h>
19 #include <internal/ps.h>
20 #include <string.h>
21 #include <internal/string.h>
22 #include <internal/teb.h>
23 #include <internal/ldr.h>
24
25 //#define NDEBUG
26 #include <internal/debug.h>
27
28 /* FUNCTIONS ****************************************************************/
29
30 PIMAGE_NT_HEADERS STDCALL RtlImageNtHeader (IN PVOID BaseAddress)
31 {
32 PIMAGE_DOS_HEADER DosHeader;
33 PIMAGE_NT_HEADERS NTHeaders;
34
35 DPRINT("BaseAddress %x\n", BaseAddress);
36 DosHeader = (PIMAGE_DOS_HEADER)BaseAddress;
37 DPRINT("DosHeader %x\n", DosHeader);
38 NTHeaders = (PIMAGE_NT_HEADERS)(BaseAddress + DosHeader->e_lfanew);
39 DPRINT("NTHeaders %x\n", NTHeaders);
40 DPRINT("DosHeader->e_magic %x DosHeader->e_lfanew %x\n",
41 DosHeader->e_magic, DosHeader->e_lfanew);
42 DPRINT("*NTHeaders %x\n", *(PULONG)NTHeaders);
43 if ((DosHeader->e_magic != IMAGE_DOS_MAGIC)
44 || (DosHeader->e_lfanew == 0L)
45 || (*(PULONG) NTHeaders != IMAGE_PE_MAGIC))
46 {
47 return(NULL);
48 }
49 return(NTHeaders);
50 }
51
52
53 /* EOF */