Skip to content

Commit 6eac9b5

Browse files
committed
[FREELDR] Pass VA instead of PA to PeLdrAllocateDataTableEntry
This allows to create DTEs for loader modules.
1 parent 8a5ef4c commit 6eac9b5

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

boot/freeldr/freeldr/include/peloader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ PeLdrAllocateDataTableEntry(
4444
IN OUT PLIST_ENTRY ModuleListHead,
4545
IN PCCH BaseDllName,
4646
IN PCCH FullDllName,
47-
IN PVOID BasePA,
47+
IN PVOID BaseVA,
4848
OUT PLDR_DATA_TABLE_ENTRY *NewEntry);
4949

5050
VOID

boot/freeldr/freeldr/lib/peloader.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ PeLdrpLoadAndScanReferencedDll(
418418
Success = PeLdrAllocateDataTableEntry(Parent ? Parent->Blink : ModuleListHead,
419419
ImportName,
420420
FullDllName,
421-
BasePA,
421+
PaToVa(BasePA),
422422
DataTableEntry);
423423
if (!Success)
424424
{
@@ -682,10 +682,10 @@ PeLdrAllocateDataTableEntry(
682682
IN OUT PLIST_ENTRY ModuleListHead,
683683
IN PCCH BaseDllName,
684684
IN PCCH FullDllName,
685-
IN PVOID BasePA,
685+
IN PVOID BaseVA,
686686
OUT PLDR_DATA_TABLE_ENTRY *NewEntry)
687687
{
688-
PVOID BaseVA = PaToVa(BasePA);
688+
PVOID BasePA = VaToPa(BaseVA);
689689
PWSTR BaseDllNameBuffer, Buffer;
690690
PLDR_DATA_TABLE_ENTRY DataTableEntry;
691691
PIMAGE_NT_HEADERS NtHeaders;

boot/freeldr/freeldr/ntldr/winldr.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,11 @@ WinLdrLoadDeviceDriver(PLIST_ENTRY LoadOrderListHead,
342342
}
343343

344344
// Allocate a DTE for it
345-
Success = PeLdrAllocateDataTableEntry(LoadOrderListHead, DllName, DllName, DriverBase, DriverDTE);
345+
Success = PeLdrAllocateDataTableEntry(LoadOrderListHead,
346+
DllName,
347+
DllName,
348+
PaToVa(DriverBase),
349+
DriverDTE);
346350
if (!Success)
347351
{
348352
/* Cleanup and bail out */
@@ -542,7 +546,7 @@ LoadModule(
542546
Success = PeLdrAllocateDataTableEntry(&LoaderBlock->LoadOrderListHead,
543547
ImportName,
544548
FullFileName,
545-
BaseAddress,
549+
PaToVa(BaseAddress),
546550
Dte);
547551
if (!Success)
548552
{

0 commit comments

Comments
 (0)