[FREELDR]: DiskGetBootPath can recognize ramdisk now.

svn path=/trunk/; revision=65974
This commit is contained in:
Hermès Bélusca-Maïto 2015-01-04 17:08:41 +00:00
parent 7e2cc1475e
commit df529736f3

View file

@ -106,11 +106,23 @@ DiskGetBootPath(char *BootPath, unsigned Size)
{
static char Path[] = "multi(0)disk(0)";
char Device[4];
char Partition[4];
PARTITION_TABLE_ENTRY PartitionEntry;
MASTER_BOOT_RECORD MasterBootRecord;
if (FrldrBootDrive < 0x80)
/* 0x49 is our magic ramdisk drive, so try to detect it first */
if (FrldrBootDrive == 0x49)
{
/* This is the ramdisk. See ArmDiskGetBootPath too... */
PCCH RamDiskPath = "ramdisk(0)";
if (Size < sizeof(RamDiskPath))
{
return FALSE;
}
strcpy(BootPath, RamDiskPath);
}
else if (FrldrBootDrive < 0x80)
{
/* This is a floppy */
@ -132,6 +144,8 @@ DiskGetBootPath(char *BootPath, unsigned Size)
else if (DiskReadBootRecord(FrldrBootDrive, 0, &MasterBootRecord))
{
ULONG BootPartition;
PARTITION_TABLE_ENTRY PartitionEntry;
char Partition[4];
/* This is a hard disk */
if (!DiskGetActivePartitionEntry(FrldrBootDrive, &PartitionEntry, &BootPartition))