#define LATCH (CLOCK_TICK_RATE / HZ)
static unsigned int delay_count = 1;
+
+/* Used for BIOS disks pre-enumeration performed when detecting the boot devices in InitializeBootDevices() */
extern UCHAR PcBiosDiskCount;
/* This function is slightly different in its PC and XBOX versions */
static CHAR Hex[] = "0123456789abcdef";
+/* Data cache for BIOS disks pre-enumeration */
UCHAR PcBiosDiskCount = 0;
static CHAR PcDiskIdentifier[32][20];
}
if (!Changed)
{
- TRACE("BIOS reports success for disk %d but data didn't change\n",
- (int)DiskCount);
+ TRACE("BIOS reports success for disk %d (0x%02X) but data didn't change\n",
+ (int)DiskCount, DriveNumber);
break;
}
memset(DiskReadBuffer, 0xcd, DiskReadBufferSize);
}
DiskReportError(TRUE);
+
+ PcBiosDiskCount = DiskCount;
TRACE("BIOS reports %d harddisk%s\n",
(int)DiskCount, (DiskCount == 1) ? "" : "s");
reactos_disk_count++;
FsRegisterDevice(BootPath, &DiskVtbl);
- DiskCount++;
+ DiskCount++; // This is not accounted for in the number of pre-enumerated BIOS drives!
+ TRACE("Additional boot drive detected: 0x%02X\n", (int)FrldrBootDrive);
}
- PcBiosDiskCount = DiskCount;
- TRACE("BIOS reports %d harddisk%s\n",
- (int)DiskCount, (DiskCount == 1) ? "": "s");
-
return (DiskCount != 0);
}