1 /* $Id: rtl.c,v 1.6 2000/04/07 02:24:00 dwelch Exp $
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)
11 /* INCLUDES *****************************************************************/
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>
21 #include <internal/string.h>
22 #include <internal/teb.h>
23 #include <internal/ldr.h>
26 #include <internal/debug.h>
28 /* FUNCTIONS ****************************************************************/
30 PIMAGE_NT_HEADERS STDCALL
RtlImageNtHeader (IN PVOID BaseAddress
)
32 PIMAGE_DOS_HEADER DosHeader
;
33 PIMAGE_NT_HEADERS NTHeaders
;
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
))