[VFATLIB] Fix FAT partitions formatting in a non clean fashion.
[reactos.git] / sdk / lib / fslib / vfatlib / fat16.c
index d0beaa3..1438532 100644 (file)
@@ -38,9 +38,9 @@ Fat16WriteBootSector(IN HANDLE FileHandle,
     RtlZeroMemory(NewBootSector, BootSector->BytesPerSector);
 
     /* Copy FAT16 BPB to new bootsector */
-    memcpy(&NewBootSector->OEMName[0],
-           &BootSector->OEMName[0],
-           FIELD_OFFSET(FAT16_BOOT_SECTOR, Res2) - FIELD_OFFSET(FAT16_BOOT_SECTOR, OEMName));
+    memcpy(&NewBootSector->Jump[0],
+           &BootSector->Jump[0],
+           FIELD_OFFSET(FAT16_BOOT_SECTOR, Res2) - FIELD_OFFSET(FAT16_BOOT_SECTOR, Jump));
            /* FAT16 BPB length (up to (not including) Res2) */
 
     /* Write the boot sector signature */
@@ -283,6 +283,10 @@ Fat16Format(IN HANDLE FileHandle,
 
     RtlZeroMemory(&BootSector, sizeof(FAT16_BOOT_SECTOR));
     memcpy(&BootSector.OEMName[0], "MSWIN4.1", 8);
+    /* FIXME: Add dummy bootloader for real */
+    BootSector.Jump[0] = 0xeb;
+    BootSector.Jump[1] = 0x3c;
+    BootSector.Jump[2] = 0x90;
     BootSector.BytesPerSector = DiskGeometry->BytesPerSector;
     BootSector.SectorsPerCluster = ClusterSize / BootSector.BytesPerSector;
     BootSector.ReservedSectors = 1;