From 655e78f3cca5275614eab0e4d572048965176a8f Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Wed, 30 Aug 2006 01:22:41 +0000 Subject: [PATCH] - Jesus Christ... will Hell freeze over before someone finally listens and implements a proper PE loader in Freeloader? svn path=/trunk/; revision=23793 --- reactos/ntoskrnl/ke/main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/reactos/ntoskrnl/ke/main.c b/reactos/ntoskrnl/ke/main.c index 74912e05706..386993f6a44 100644 --- a/reactos/ntoskrnl/ke/main.c +++ b/reactos/ntoskrnl/ke/main.c @@ -72,6 +72,8 @@ VOID INIT_FUNCTION _main(ULONG MultiBootMagic, PROS_LOADER_PARAMETER_BLOCK _Load #pragma alloc_text(INIT, _main) #endif +extern LDR_DATA_TABLE_ENTRY HalModuleObject; + /* FUNCTIONS ****************************************************************/ /* @@ -240,6 +242,17 @@ _main(ULONG MultiBootMagic, (PVOID)KERNEL_BASE, &DriverSize); + // + // + // HACK HACK HACK WHEN WILL YOU PEOPLE FIX FREELDR?!?!?! + // FREELDR SENDS US AN ***INVALID*** HAL PE HEADER!!! + // WE READ IT IN LdrInitModuleManagement ABOVE!!! + // WE SET .SizeOfImage TO A *GARBAGE* VALUE!!! + // + // This dirty hack fixes it, and should make symbol lookup work too. + // + HalModuleObject.SizeOfImage = RtlImageNtHeader((PVOID)HalModuleObject.DllBase)->OptionalHeader.SizeOfImage; + /* Increase the last kernel address with the size of HAL */ LastKernelAddress += PAGE_ROUND_UP(DriverSize);