[ros-diffs] [cgutman] 52286: [VFATLIB] - Set the BIOS drive number depending on the media type (independent of the actual number of drives) because it's only relevant for the boot drive - See http://support.mi...

cgutman at svn.reactos.org cgutman at svn.reactos.org
Thu Jun 16 23:38:35 UTC 2011


Author: cgutman
Date: Thu Jun 16 23:38:35 2011
New Revision: 52286

URL: http://svn.reactos.org/svn/reactos?rev=52286&view=rev
Log:
[VFATLIB]
- Set the BIOS drive number depending on the media type (independent of the actual number of drives) because it's only relevant for the boot drive
- See http://support.microsoft.com/kb/140418 for details

Modified:
    trunk/reactos/lib/fslib/vfatlib/fat12.c
    trunk/reactos/lib/fslib/vfatlib/fat16.c
    trunk/reactos/lib/fslib/vfatlib/fat32.c

Modified: trunk/reactos/lib/fslib/vfatlib/fat12.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatlib/fat12.c?rev=52286&r1=52285&r2=52286&view=diff
==============================================================================
--- trunk/reactos/lib/fslib/vfatlib/fat12.c [iso-8859-1] (original)
+++ trunk/reactos/lib/fslib/vfatlib/fat12.c [iso-8859-1] Thu Jun 16 23:38:35 2011
@@ -323,7 +323,7 @@
     BootSector.Heads = DiskGeometry->TracksPerCylinder;
     BootSector.HiddenSectors = PartitionInfo->HiddenSectors;
     BootSector.SectorsHuge = (SectorCount >= 0x10000) ? (unsigned long)SectorCount : 0;
-    BootSector.Drive = 0xff; /* No BIOS boot drive available */
+    BootSector.Drive = DiskGeometry->MediaType == FixedMedia ? 0x80 : 0x00;
     BootSector.ExtBootSignature = 0x29;
     BootSector.VolumeID = CalcVolumeSerialNumber();
     if ((Label == NULL) || (Label->Buffer == NULL))

Modified: trunk/reactos/lib/fslib/vfatlib/fat16.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatlib/fat16.c?rev=52286&r1=52285&r2=52286&view=diff
==============================================================================
--- trunk/reactos/lib/fslib/vfatlib/fat16.c [iso-8859-1] (original)
+++ trunk/reactos/lib/fslib/vfatlib/fat16.c [iso-8859-1] Thu Jun 16 23:38:35 2011
@@ -330,7 +330,7 @@
     BootSector.Heads = DiskGeometry->TracksPerCylinder;
     BootSector.HiddenSectors = PartitionInfo->HiddenSectors;
     BootSector.SectorsHuge = (SectorCount >= 0x10000) ? (unsigned long)SectorCount : 0;
-    BootSector.Drive = 0xff; /* No BIOS boot drive available */
+    BootSector.Drive = DiskGeometry->MediaType == FixedMedia ? 0x80 : 0x00;
     BootSector.ExtBootSignature = 0x29;
     BootSector.VolumeID = CalcVolumeSerialNumber();
     if ((Label == NULL) || (Label->Buffer == NULL))

Modified: trunk/reactos/lib/fslib/vfatlib/fat32.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatlib/fat32.c?rev=52286&r1=52285&r2=52286&view=diff
==============================================================================
--- trunk/reactos/lib/fslib/vfatlib/fat32.c [iso-8859-1] (original)
+++ trunk/reactos/lib/fslib/vfatlib/fat32.c [iso-8859-1] Thu Jun 16 23:38:35 2011
@@ -408,7 +408,7 @@
     BootSector.RootCluster = 2;
     BootSector.FSInfoSector = 1;
     BootSector.BootBackup = 6;
-    BootSector.Drive = 0xff; /* No BIOS boot drive available */
+    BootSector.Drive = DiskGeometry->MediaType == FixedMedia ? 0x80 : 0x00;
     BootSector.ExtBootSignature = 0x29;
     BootSector.VolumeID = CalcVolumeSerialNumber ();
     if ((Label == NULL) || (Label->Buffer == NULL))




More information about the Ros-diffs mailing list