[SETUPLIB][USETUP] Move the floppy-disk accessibility check into InstallFatBootcodeTo...
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 3 Sep 2017 16:19:59 +0000 (16:19 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 27 Oct 2018 22:25:51 +0000 (00:25 +0200)
svn path=/branches/setup_improvements/; revision=75751

base/setup/lib/bootsup.c
base/setup/usetup/usetup.c

index 7ea6240..0ef4e82 100644 (file)
@@ -2303,7 +2303,11 @@ InstallFatBootcodeToFloppy(
     WCHAR SrcPath[MAX_PATH];
     WCHAR DstPath[MAX_PATH];
 
     WCHAR SrcPath[MAX_PATH];
     WCHAR DstPath[MAX_PATH];
 
-    /* Format the floppy first */
+    /* Verify that the floppy disk is accessible */
+    if (DoesDirExist(NULL, FloppyDevice.Buffer) == FALSE)
+        return STATUS_DEVICE_NOT_READY;
+
+    /* Format the floppy disk */
     FatFS = GetFileSystemByName(L"FAT");
     if (!FatFS)
     {
     FatFS = GetFileSystemByName(L"FAT");
     if (!FatFS)
     {
index f29935b..a576458 100644 (file)
@@ -4532,16 +4532,14 @@ BootLoaderFloppyPage(PINPUT_RECORD Ir)
         }
         else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)    /* ENTER */
         {
         }
         else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)    /* ENTER */
         {
-            if (DoesDirExist(NULL, L"\\Device\\Floppy0\\") == FALSE)
-            {
-                MUIDisplayError(ERROR_NO_FLOPPY, Ir, POPUP_WAIT_ENTER);
-                return BOOT_LOADER_FLOPPY_PAGE;
-            }
-
-            Status = InstallFatBootcodeToFloppy(&USetupData.SourceRootPath, &USetupData.DestinationArcPath);
+            Status = InstallFatBootcodeToFloppy(&USetupData.SourceRootPath,
+                                                &USetupData.DestinationArcPath);
             if (!NT_SUCCESS(Status))
             {
             if (!NT_SUCCESS(Status))
             {
-                /* Print error message */
+                if (Status == STATUS_DEVICE_NOT_READY)
+                    MUIDisplayError(ERROR_NO_FLOPPY, Ir, POPUP_WAIT_ENTER);
+
+                /* TODO: Print error message */
                 return BOOT_LOADER_FLOPPY_PAGE;
             }
 
                 return BOOT_LOADER_FLOPPY_PAGE;
             }
 
@@ -4625,8 +4623,7 @@ BootLoaderHarddiskMbrPage(PINPUT_RECORD Ir)
                                       DestinationDevicePathBuffer);
     if (!NT_SUCCESS(Status))
     {
                                       DestinationDevicePathBuffer);
     if (!NT_SUCCESS(Status))
     {
-        DPRINT1("InstallMbrBootCodeToDisk() failed (Status %lx)\n",
-                Status);
+        DPRINT1("InstallMbrBootCodeToDisk() failed (Status %lx)\n", Status);
         MUIDisplayError(ERROR_INSTALL_BOOTCODE, Ir, POPUP_WAIT_ENTER);
         return QUIT_PAGE;
     }
         MUIDisplayError(ERROR_INSTALL_BOOTCODE, Ir, POPUP_WAIT_ENTER);
         return QUIT_PAGE;
     }