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);
/* 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);
}
}