- Major changes to HAL/kernel loading and freeldr hacks:

- Add PE routines for traversing the import table and fixing up the imports.
  - Add routine for getting the LOADER_MODULE for a freeldr module by name.
  - Add the ability to load a not-yet-loaded-driver that's in an import entry (ie: dependencies). Only used for HAL now.
  - Map HAL in the same was as the kernel, instead of relocating it as a hack from within the kernel.
  - Refactor some routines to better share code. Don't read freed memory anymore.
  - Use LdrRelocateImageWithBias instead of quintuplicating relocation code.
  - Parse kernel and HAL imports while PE-loading from within freeldr.
  - Remove dozens of freeldr.c hacks from the kernel. Remove slow code which was making two copies of the parameter block and wasting over 30KB in static strings that were immediately copied to other strings...
  - Don't use HalModuleObject and NtoskrnlModuleObject anymore. Remove LdrSafePEProcessModule and other similar boot-time hacks. Reimplement MmGetSystemRoutineAddress.
- NDK/DDK fixes.
- Add KDCOM to bootcd/installation.

svn path=/trunk/; revision=24778
This commit is contained in:
Alex Ionescu
2006-11-19 17:53:31 +00:00
parent c157acf875
commit 312f07d0e5
19 changed files with 648 additions and 613 deletions
+1
View File
@@ -395,6 +395,7 @@ extern POBJECT_TYPE NTSYSAPI IoFileObjectType;
extern POBJECT_TYPE NTSYSAPI PsThreadType;
extern POBJECT_TYPE NTSYSAPI LpcPortObjectType;
extern POBJECT_TYPE NTSYSAPI SeTokenObjectType;
extern POBJECT_TYPE NTSYSAPI PsProcessType;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
extern volatile CCHAR NTSYSAPI KeNumberProcessors;
+2 -2
View File
@@ -41,8 +41,8 @@ Author:
//
#ifndef NTOS_MODE_USER
extern NTSYSAPI struct _EPROCESS* PsInitialSystemProcess;
extern NTSYSAPI POBJECT_TYPE PsProcessType;
//extern NTSYSAPI struct _EPROCESS* PsInitialSystemProcess;
//extern NTSYSAPI POBJECT_TYPE PsProcessType;
#endif
+1 -1
View File
@@ -2495,7 +2495,7 @@ DbgPrintEx(
ULONG
NTAPI
DbgPrompt(
IN PCH PromptString,
IN PCCH PromptString,
OUT PCH OutputString,
IN ULONG OutputSize
);
+3 -3
View File
@@ -29,14 +29,14 @@ typedef struct _ROS_LOADER_PARAMETER_BLOCK
ULONG MemLower;
ULONG MemHigher;
ULONG BootDevice;
ULONG CommandLine;
PCHAR CommandLine;
ULONG ModsCount;
ULONG ModsAddr;
PLOADER_MODULE ModsAddr;
UCHAR Syms[12];
ULONG MmapLength;
ULONG MmapAddr;
ULONG DrivesCount;
ULONG DrivesAddr;
PARC_DISK_SIGNATURE DrivesAddr;
ULONG ConfigTable;
ULONG BootLoaderName;
ULONG PageDirectoryStart;