mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 15:26:02 +00:00
[FREELDR]: The WinLDR code forgot to update the File Path of boot driver entries from PA to VA as well, not just the registry path. It also tried to touch the PA LoaderBlock right after enabling the MMU. It should touch the VA LoaderBlock instead, since there is no guarantee that the address has been identity mapped (and hence the PA address interpreted as a VA address by the MMU is bogus).
svn path=/trunk/; revision=45519
This commit is contained in:
parent
8e6d54f4b8
commit
9eea228a7d
1 changed files with 2 additions and 1 deletions
|
@ -316,6 +316,7 @@ WinLdrLoadBootDrivers(PLOADER_PARAMETER_BLOCK LoaderBlock,
|
|||
|
||||
// Convert the RegistryPath and DTE addresses to VA since we are not going to use it anymore
|
||||
BootDriver->RegistryPath.Buffer = PaToVa(BootDriver->RegistryPath.Buffer);
|
||||
BootDriver->FilePath.Buffer = PaToVa(BootDriver->FilePath.Buffer);
|
||||
BootDriver->LdrEntry = PaToVa(BootDriver->LdrEntry);
|
||||
|
||||
NextBd = BootDriver->Link.Flink;
|
||||
|
@ -584,7 +585,7 @@ LoadAndBootWindows(PCSTR OperatingSystemName,
|
|||
WinLdrTurnOnPaging(LoaderBlock, PcrBasePage, TssBasePage, GdtIdt);
|
||||
|
||||
/* Save final value of LoaderPagesSpanned */
|
||||
LoaderBlock->Extension->LoaderPagesSpanned = LoaderPagesSpanned;
|
||||
LoaderBlockVA->Extension->LoaderPagesSpanned = LoaderPagesSpanned;
|
||||
|
||||
DPRINTM(DPRINT_WINDOWS, "Hello from paged mode, KiSystemStartup %p, LoaderBlockVA %p!\n",
|
||||
KiSystemStartup, LoaderBlockVA);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue