Solved some bugs found testing on usb flash sticks.

This commit is contained in:
2015-10-31 21:32:10 +00:00
parent 6b9f8f97c8
commit 3a069ab37a
6 changed files with 29 additions and 13 deletions

View File

@@ -199,24 +199,25 @@ namespace DiscImageChef.Commands
Decoders.SCSI.PeripheralDeviceTypes devType = (DiscImageChef.Decoders.SCSI.PeripheralDeviceTypes)inq.Value.PeripheralDeviceType;
sense = dev.ModeSense10(out modeBuf, out senseBuf, false, true, ScsiModeSensePageControl.Current, 0x3F, 0xFF, dev.Timeout, out duration);
if (sense)
if (sense || dev.Error)
{
sense = dev.ModeSense10(out modeBuf, out senseBuf, false, true, ScsiModeSensePageControl.Current, 0x3F, 0x00, dev.Timeout, out duration);
}
if (!sense)
if (!sense && !dev.Error)
{
decMode = Decoders.SCSI.Modes.DecodeMode10(modeBuf, devType);
}
else
if(sense || dev.Error || !decMode.HasValue)
{
sense = dev.ModeSense6(out modeBuf, out senseBuf, false, ScsiModeSensePageControl.Current, 0x3F, 0x00, dev.Timeout, out duration);
if(sense)
if (sense || dev.Error)
sense = dev.ModeSense6(out modeBuf, out senseBuf, false, ScsiModeSensePageControl.Current, 0x3F, 0x00, dev.Timeout, out duration);
if(sense)
if (sense || dev.Error)
sense = dev.ModeSense(out modeBuf, out senseBuf, 15000, out duration);
if(!sense)
if (!sense && !dev.Error)
decMode = Decoders.SCSI.Modes.DecodeMode6(modeBuf, devType);
}