- Fix definition of BOOT_DRIVER_LIST_ENTRY (Information provided by Alex Ionescu).

svn path=/trunk/; revision=35502
This commit is contained in:
Aleksey Bragin 2008-08-21 10:58:53 +00:00
parent 36b8b4a111
commit d1213e5977
3 changed files with 12 additions and 12 deletions

View file

@ -332,16 +332,16 @@ WinLdrLoadBootDrivers(PLOADER_PARAMETER_BLOCK LoaderBlock,
while (NextBd != &LoaderBlock->BootDriverListHead)
{
BootDriver = CONTAINING_RECORD(NextBd, BOOT_DRIVER_LIST_ENTRY, ListEntry);
BootDriver = CONTAINING_RECORD(NextBd, BOOT_DRIVER_LIST_ENTRY, Link);
DbgPrint((DPRINT_WINDOWS, "BootDriver %wZ DTE %08X RegPath: %wZ\n", &BootDriver->FilePath,
BootDriver->DataTableEntry, &BootDriver->RegistryPath));
BootDriver->LdrEntry, &BootDriver->RegistryPath));
// Paths are relative (FIXME: Are they always relative?)
// Load it
Status = WinLdrLoadDeviceDriver(LoaderBlock, BootPath, &BootDriver->FilePath,
0, &BootDriver->DataTableEntry);
0, &BootDriver->LdrEntry);
// If loading failed - cry loudly
//FIXME: Maybe remove it from the list and try to continue?
@ -353,9 +353,9 @@ 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->DataTableEntry = PaToVa(BootDriver->DataTableEntry);
BootDriver->LdrEntry = PaToVa(BootDriver->LdrEntry);
NextBd = BootDriver->ListEntry.Flink;
NextBd = BootDriver->Link.Flink;
}
return TRUE;
@ -620,12 +620,12 @@ WinLdrpDumpBootDriver(PLOADER_PARAMETER_BLOCK LoaderBlock)
while (NextBd != &LoaderBlock->BootDriverListHead)
{
BootDriver = CONTAINING_RECORD(NextBd, BOOT_DRIVER_LIST_ENTRY, ListEntry);
BootDriver = CONTAINING_RECORD(NextBd, BOOT_DRIVER_LIST_ENTRY, Link);
DbgPrint((DPRINT_WINDOWS, "BootDriver %wZ DTE %08X RegPath: %wZ\n", &BootDriver->FilePath,
BootDriver->DataTableEntry, &BootDriver->RegistryPath));
BootDriver->LdrEntry, &BootDriver->RegistryPath));
NextBd = BootDriver->ListEntry.Flink;
NextBd = BootDriver->Link.Flink;
}
}

View file

@ -685,7 +685,7 @@ WinLdrAddDriverToList(LIST_ENTRY *BootDriverListHead,
return FALSE;
// DTE will be filled during actual load of the driver
BootDriverEntry->DataTableEntry = NULL;
BootDriverEntry->LdrEntry = NULL;
// Check - if we have a valid ImagePath, if not - we need to build it
// like "System32\\Drivers\\blah.sys"
@ -768,7 +768,7 @@ WinLdrAddDriverToList(LIST_ENTRY *BootDriverListHead,
return FALSE;
// Insert entry at top of the list
InsertTailList(BootDriverListHead, &BootDriverEntry->ListEntry);
InsertTailList(BootDriverListHead, &BootDriverEntry->Link);
return TRUE;
}

View file

@ -118,10 +118,10 @@ typedef struct _MEMORY_ALLOCATION_DESCRIPTOR
typedef struct _BOOT_DRIVER_LIST_ENTRY
{
LIST_ENTRY ListEntry;
LIST_ENTRY Link;
UNICODE_STRING FilePath;
UNICODE_STRING RegistryPath;
struct _LDR_DATA_TABLE_ENTRY *DataTableEntry;
struct _LDR_DATA_TABLE_ENTRY *LdrEntry;
} BOOT_DRIVER_LIST_ENTRY, *PBOOT_DRIVER_LIST_ENTRY;
typedef struct _ARC_DISK_SIGNATURE