[FLOPPY]
[reactos.git] / reactos / drivers / storage / floppy / floppy.c
index ea4a2be..0b65e28 100644 (file)
@@ -680,7 +680,11 @@ InitController(PCONTROLLER_INFO ControllerInfo)
     TRACE_(FLOPPY, "InitController called with Controller 0x%p\n", ControllerInfo);
 
     /* Get controller in a known state */
-    HwConfigure(ControllerInfo, FALSE, TRUE, TRUE, 0, 0);
+    if(HwConfigure(ControllerInfo, FALSE, TRUE, TRUE, 0, 0) != STATUS_SUCCESS)
+    {
+        WARN_(FLOPPY, "InitController: unable to configure controller\n");
+        return STATUS_IO_DEVICE_ERROR;
+    }
 
     /* Get the controller version */
     ControllerVersion = HwGetVersion(ControllerInfo);
@@ -983,6 +987,11 @@ AddControllers(PDRIVER_OBJECT DriverObject)
 
             /* 3k: Clear the DO_DEVICE_INITIALIZING flag */
             gControllerInfo[i].DriveInfo[j].DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
+
+            /* 3l: Attempt to get drive info - if a floppy is already present */
+            StartMotor(&gControllerInfo[i].DriveInfo[j]);
+            RWDetermineMediaType(&gControllerInfo[i].DriveInfo[j], TRUE);
+            StopMotor(gControllerInfo[i].DriveInfo[j].ControllerInfo);
         }
     }