mirror of
https://github.com/reactos/reactos.git
synced 2024-08-04 10:30:59 +00:00
- Use new way of obtaining the hardware tree in winldr too.
- NT4 requires text mode to be set up, and further version of Windows OS require a different preparation. - Fix configuration tree conversion routine to also convert Identifier pointers from physical address to virtual address. svn path=/trunk/; revision=31991
This commit is contained in:
parent
57da0f7d20
commit
43dbecaac6
|
@ -87,11 +87,13 @@ ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start)
|
|||
if (Child->Sibling)
|
||||
Child->Sibling = PaToVa(Child->Sibling);
|
||||
|
||||
DbgPrint((DPRINT_WINDOWS, "Device 0x%X class %d type %d, parent %p\n", Child,
|
||||
Child->ComponentEntry.Class, Child->ComponentEntry.Type, Child->Parent));
|
||||
if (Child->ComponentEntry.Identifier)
|
||||
Child->ComponentEntry.Identifier = PaToVa(Child->ComponentEntry.Identifier);
|
||||
|
||||
// If the child has a sibling list, then search the sibling list
|
||||
// for an entry that matches the specified class, type, and key.
|
||||
DbgPrint((DPRINT_WINDOWS, "Device 0x%X class %d type %d id %p, parent %p\n", Child,
|
||||
Child->ComponentEntry.Class, Child->ComponentEntry.Type, Child->ComponentEntry.Identifier, Child->Parent));
|
||||
|
||||
// Go through siblings list
|
||||
Sibling = VaToPa(Child->Sibling);
|
||||
while (Sibling != NULL)
|
||||
{
|
||||
|
@ -107,11 +109,13 @@ ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start)
|
|||
if (Sibling->Sibling)
|
||||
Sibling->Sibling = PaToVa(Sibling->Sibling);
|
||||
|
||||
DbgPrint((DPRINT_WINDOWS, "Device 0x%X class %d type %d sib, parent %p\n", Sibling,
|
||||
Sibling->ComponentEntry.Class, Sibling->ComponentEntry.Type, Sibling->Parent));
|
||||
if (Sibling->ComponentEntry.Identifier)
|
||||
Sibling->ComponentEntry.Identifier = PaToVa(Sibling->ComponentEntry.Identifier);
|
||||
|
||||
// If the sibling has a child tree, then search the child tree
|
||||
// for an entry that matches the specified class, type, and key.
|
||||
DbgPrint((DPRINT_WINDOWS, "Device 0x%X class %d type %d id %p, parent %p\n", Sibling,
|
||||
Sibling->ComponentEntry.Class, Sibling->ComponentEntry.Type, Sibling->ComponentEntry.Identifier, Sibling->Parent));
|
||||
|
||||
// Recurse into the Child tree
|
||||
if (VaToPa(Sibling->Child) != NULL)
|
||||
ConvertConfigToVA(VaToPa(Sibling->Child));
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
extern ULONG reactos_disk_count;
|
||||
extern ARC_DISK_SIGNATURE reactos_arc_disk_info[];
|
||||
extern char reactos_arc_strings[32][256];
|
||||
extern char reactos_arc_hardware_data[HW_MAX_ARC_HEAP_SIZE];
|
||||
|
||||
BOOLEAN
|
||||
WinLdrCheckForLoadedDll(IN OUT PLOADER_PARAMETER_BLOCK WinLdrBlock,
|
||||
|
@ -430,10 +429,7 @@ LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion)
|
|||
AllocateAndInitLPB(&LoaderBlock);
|
||||
|
||||
/* Detect hardware */
|
||||
MachHwDetect();
|
||||
LoaderBlock->ConfigurationRoot = MmHeapAlloc(16 * 1024);
|
||||
RtlCopyMemory(LoaderBlock->ConfigurationRoot,
|
||||
(PVOID)reactos_arc_hardware_data, 16 * 1024);
|
||||
LoaderBlock->ConfigurationRoot = MachHwDetect();
|
||||
|
||||
/* Load kernel */
|
||||
strcpy(FileName, BootPath);
|
||||
|
@ -495,6 +491,9 @@ LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion)
|
|||
|
||||
/* "Stop all motors", change videomode */
|
||||
DiskStopFloppyMotor();
|
||||
if (OperatingSystemVersion < _WIN32_WINNT_WIN2K)
|
||||
MachVideoPrepareForReactOS(TRUE);
|
||||
else
|
||||
MachVideoPrepareForReactOS(FALSE);
|
||||
|
||||
/* Debugging... */
|
||||
|
|
Loading…
Reference in a new issue