mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
On debug add more binary data from the responses to the report.
This commit is contained in:
@@ -493,7 +493,9 @@ namespace DiscImageChef.Core.Devices.Report
|
|||||||
report.ATA.WRVSectorCountMode2 = ataId.WRVSectorCountMode2;
|
report.ATA.WRVSectorCountMode2 = ataId.WRVSectorCountMode2;
|
||||||
report.ATA.WRVSectorCountMode2Specified = true;
|
report.ATA.WRVSectorCountMode2Specified = true;
|
||||||
}
|
}
|
||||||
|
if(debug)
|
||||||
|
report.ATA.Identify = buffer;
|
||||||
|
|
||||||
if(removable)
|
if(removable)
|
||||||
{
|
{
|
||||||
List<testedMediaType> mediaTests = new List<testedMediaType>();
|
List<testedMediaType> mediaTests = new List<testedMediaType>();
|
||||||
|
|||||||
@@ -458,6 +458,8 @@ namespace DiscImageChef.Core.Devices.Report
|
|||||||
report.ATAPI.WRVSectorCountMode2 = atapiId.WRVSectorCountMode2;
|
report.ATAPI.WRVSectorCountMode2 = atapiId.WRVSectorCountMode2;
|
||||||
report.ATAPI.WRVSectorCountMode2Specified = true;
|
report.ATAPI.WRVSectorCountMode2Specified = true;
|
||||||
}
|
}
|
||||||
|
if(debug)
|
||||||
|
report.ATAPI.Identify = buffer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -181,6 +181,9 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
report.SCSI.Inquiry.SyncTransfer = inq.Sync;
|
report.SCSI.Inquiry.SyncTransfer = inq.Sync;
|
||||||
report.SCSI.Inquiry.WideBus16 = inq.WBus16;
|
report.SCSI.Inquiry.WideBus16 = inq.WBus16;
|
||||||
report.SCSI.Inquiry.WideBus32 = inq.WBus32;
|
report.SCSI.Inquiry.WideBus32 = inq.WBus32;
|
||||||
|
|
||||||
|
if(debug)
|
||||||
|
report.SCSI.Inquiry.Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine("Querying list of SCSI EVPDs...");
|
DicConsole.WriteLine("Querying list of SCSI EVPDs...");
|
||||||
@@ -233,47 +236,52 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
Decoders.SCSI.PeripheralDeviceTypes devType = dev.SCSIType;
|
Decoders.SCSI.PeripheralDeviceTypes devType = dev.SCSIType;
|
||||||
|
|
||||||
DicConsole.WriteLine("Querying all mode pages and subpages using SCSI MODE SENSE (10)...");
|
DicConsole.WriteLine("Querying all mode pages and subpages using SCSI MODE SENSE (10)...");
|
||||||
sense = dev.ModeSense10(out buffer, out senseBuffer, false, true, ScsiModeSensePageControl.Default, 0x3F, 0xFF, timeout, out duration);
|
sense = dev.ModeSense10(out byte[] mode10Buffer, out senseBuffer, false, true, ScsiModeSensePageControl.Default, 0x3F, 0xFF, timeout, out duration);
|
||||||
if(sense || dev.Error)
|
if(sense || dev.Error)
|
||||||
{
|
{
|
||||||
DicConsole.WriteLine("Querying all mode pages using SCSI MODE SENSE (10)...");
|
DicConsole.WriteLine("Querying all mode pages using SCSI MODE SENSE (10)...");
|
||||||
sense = dev.ModeSense10(out buffer, out senseBuffer, false, true, ScsiModeSensePageControl.Default, 0x3F, 0x00, timeout, out duration);
|
sense = dev.ModeSense10(out mode10Buffer, out senseBuffer, false, true, ScsiModeSensePageControl.Default, 0x3F, 0x00, timeout, out duration);
|
||||||
if(!sense && dev.Error)
|
if(!sense && dev.Error)
|
||||||
{
|
{
|
||||||
report.SCSI.SupportsModeSense10 = true;
|
report.SCSI.SupportsModeSense10 = true;
|
||||||
report.SCSI.SupportsModeSubpages = false;
|
report.SCSI.SupportsModeSubpages = false;
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, devType);
|
decMode = Decoders.SCSI.Modes.DecodeMode10(mode10Buffer, devType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
report.SCSI.SupportsModeSense10 = true;
|
report.SCSI.SupportsModeSense10 = true;
|
||||||
report.SCSI.SupportsModeSubpages = true;
|
report.SCSI.SupportsModeSubpages = true;
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, devType);
|
decMode = Decoders.SCSI.Modes.DecodeMode10(mode10Buffer, devType);
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine("Querying all mode pages and subpages using SCSI MODE SENSE (6)...");
|
DicConsole.WriteLine("Querying all mode pages and subpages using SCSI MODE SENSE (6)...");
|
||||||
sense = dev.ModeSense6(out buffer, out senseBuffer, false, ScsiModeSensePageControl.Default, 0x3F, 0xFF, timeout, out duration);
|
sense = dev.ModeSense6(out byte[] mode6Buffer, out senseBuffer, false, ScsiModeSensePageControl.Default, 0x3F, 0xFF, timeout, out duration);
|
||||||
if(sense || dev.Error)
|
if(sense || dev.Error)
|
||||||
{
|
{
|
||||||
DicConsole.WriteLine("Querying all mode pages using SCSI MODE SENSE (6)...");
|
DicConsole.WriteLine("Querying all mode pages using SCSI MODE SENSE (6)...");
|
||||||
sense = dev.ModeSense6(out buffer, out senseBuffer, false, ScsiModeSensePageControl.Default, 0x3F, 0x00, timeout, out duration);
|
sense = dev.ModeSense6(out mode6Buffer, out senseBuffer, false, ScsiModeSensePageControl.Default, 0x3F, 0x00, timeout, out duration);
|
||||||
if(sense || dev.Error)
|
if(sense || dev.Error)
|
||||||
{
|
{
|
||||||
DicConsole.WriteLine("Querying SCSI MODE SENSE (6)...");
|
DicConsole.WriteLine("Querying SCSI MODE SENSE (6)...");
|
||||||
sense = dev.ModeSense(out buffer, out senseBuffer, timeout, out duration);
|
sense = dev.ModeSense(out mode6Buffer, out senseBuffer, timeout, out duration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
report.SCSI.SupportsModeSubpages = true;
|
report.SCSI.SupportsModeSubpages = true;
|
||||||
|
|
||||||
if(!sense && !dev.Error && !decMode.HasValue)
|
if(!sense && !dev.Error && !decMode.HasValue)
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, devType);
|
decMode = Decoders.SCSI.Modes.DecodeMode6(mode6Buffer, devType);
|
||||||
|
|
||||||
report.SCSI.SupportsModeSense6 |= (!sense && !dev.Error);
|
report.SCSI.SupportsModeSense6 |= (!sense && !dev.Error);
|
||||||
|
|
||||||
Decoders.SCSI.Modes.ModePage_2A? cdromMode = null;
|
Decoders.SCSI.Modes.ModePage_2A? cdromMode = null;
|
||||||
|
|
||||||
|
if(debug && report.SCSI.SupportsModeSense6)
|
||||||
|
report.SCSI.ModeSense6Data = mode6Buffer;
|
||||||
|
if(debug && report.SCSI.SupportsModeSense10)
|
||||||
|
report.SCSI.ModeSense10Data = mode10Buffer;
|
||||||
|
|
||||||
if(decMode.HasValue)
|
if(decMode.HasValue)
|
||||||
{
|
{
|
||||||
report.SCSI.ModeSense = new modeType();
|
report.SCSI.ModeSense = new modeType();
|
||||||
@@ -320,7 +328,7 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
if(dev.SCSIType == Decoders.SCSI.PeripheralDeviceTypes.MultiMediaDevice)
|
if(dev.SCSIType == Decoders.SCSI.PeripheralDeviceTypes.MultiMediaDevice)
|
||||||
MMC.Report(dev, ref report, debug, ref cdromMode, ref mediaTypes);
|
MMC.Report(dev, ref report, debug, ref cdromMode, ref mediaTypes);
|
||||||
else if(dev.SCSIType == Decoders.SCSI.PeripheralDeviceTypes.SequentialAccess)
|
else if(dev.SCSIType == Decoders.SCSI.PeripheralDeviceTypes.SequentialAccess)
|
||||||
SSC.Report(dev, ref report);
|
SSC.Report(dev, ref report, debug);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(removable)
|
if(removable)
|
||||||
@@ -438,6 +446,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
{
|
{
|
||||||
report.SCSI.SupportsModeSense10 = true;
|
report.SCSI.SupportsModeSense10 = true;
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
mediaTest.ModeSense10Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
||||||
@@ -447,6 +457,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
report.SCSI.SupportsModeSense6 = true;
|
report.SCSI.SupportsModeSense6 = true;
|
||||||
if(!decMode.HasValue)
|
if(!decMode.HasValue)
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
mediaTest.ModeSense6Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(decMode.HasValue)
|
if(decMode.HasValue)
|
||||||
@@ -658,6 +670,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
{
|
{
|
||||||
report.SCSI.SupportsModeSense10 = true;
|
report.SCSI.SupportsModeSense10 = true;
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
report.SCSI.ReadCapabilities.ModeSense10Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
||||||
@@ -667,6 +681,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
report.SCSI.SupportsModeSense6 = true;
|
report.SCSI.SupportsModeSense6 = true;
|
||||||
if(!decMode.HasValue)
|
if(!decMode.HasValue)
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
report.SCSI.ReadCapabilities.ModeSense10Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(decMode.HasValue)
|
if(decMode.HasValue)
|
||||||
|
|||||||
@@ -844,6 +844,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
{
|
{
|
||||||
report.SCSI.SupportsModeSense10 = true;
|
report.SCSI.SupportsModeSense10 = true;
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
mediaTest.ModeSense10Data = buffer;
|
||||||
}
|
}
|
||||||
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
||||||
sense = dev.ModeSense(out buffer, out senseBuffer, timeout, out duration);
|
sense = dev.ModeSense(out buffer, out senseBuffer, timeout, out duration);
|
||||||
@@ -852,6 +854,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
report.SCSI.SupportsModeSense6 = true;
|
report.SCSI.SupportsModeSense6 = true;
|
||||||
if(!decMode.HasValue)
|
if(!decMode.HasValue)
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
mediaTest.ModeSense6Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(decMode.HasValue)
|
if(decMode.HasValue)
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
{
|
{
|
||||||
internal static class SSC
|
internal static class SSC
|
||||||
{
|
{
|
||||||
internal static void Report(Device dev, ref DeviceReport report)
|
internal static void Report(Device dev, ref DeviceReport report, bool debug)
|
||||||
{
|
{
|
||||||
if(report == null)
|
if(report == null)
|
||||||
return;
|
return;
|
||||||
@@ -220,6 +220,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
{
|
{
|
||||||
report.SCSI.SupportsModeSense10 = true;
|
report.SCSI.SupportsModeSense10 = true;
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode10(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
seqTest.ModeSense10Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
DicConsole.WriteLine("Querying SCSI MODE SENSE...");
|
||||||
@@ -229,6 +231,8 @@ namespace DiscImageChef.Core.Devices.Report.SCSI
|
|||||||
report.SCSI.SupportsModeSense6 = true;
|
report.SCSI.SupportsModeSense6 = true;
|
||||||
if(!decMode.HasValue)
|
if(!decMode.HasValue)
|
||||||
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
decMode = Decoders.SCSI.Modes.DecodeMode6(buffer, dev.SCSIType);
|
||||||
|
if(debug)
|
||||||
|
seqTest.ModeSense6Data = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(decMode.HasValue)
|
if(decMode.HasValue)
|
||||||
|
|||||||
@@ -75,6 +75,8 @@ namespace DiscImageChef.Core.Devices.Report
|
|||||||
|
|
||||||
report.USB.RemovableMedia = pressedKey.Key == ConsoleKey.Y;
|
report.USB.RemovableMedia = pressedKey.Key == ConsoleKey.Y;
|
||||||
removable = report.USB.RemovableMedia;
|
removable = report.USB.RemovableMedia;
|
||||||
|
if(debug)
|
||||||
|
report.USB.Descriptors = dev.USBDescriptors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ namespace DiscImageChef.Metadata
|
|||||||
public string Manufacturer { get; set; }
|
public string Manufacturer { get; set; }
|
||||||
public string Product { get; set; }
|
public string Product { get; set; }
|
||||||
public bool RemovableMedia { get; set; }
|
public bool RemovableMedia { get; set; }
|
||||||
|
public byte[] Descriptors { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class firewireType
|
public class firewireType
|
||||||
@@ -154,10 +155,11 @@ namespace DiscImageChef.Metadata
|
|||||||
public uint WRVSectorCountMode3 { get; set; }
|
public uint WRVSectorCountMode3 { get; set; }
|
||||||
public uint WRVSectorCountMode2 { get; set; }
|
public uint WRVSectorCountMode2 { get; set; }
|
||||||
|
|
||||||
|
public byte[] Identify { get; set; }
|
||||||
|
|
||||||
public testedMediaType ReadCapabilities { get; set; }
|
public testedMediaType ReadCapabilities { get; set; }
|
||||||
public testedMediaType[] RemovableMedias { get; set; }
|
public testedMediaType[] RemovableMedias { get; set; }
|
||||||
|
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public bool AdditionalPIDSpecified { get; set; }
|
public bool AdditionalPIDSpecified { get; set; }
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
@@ -339,6 +341,8 @@ namespace DiscImageChef.Metadata
|
|||||||
public testedMediaType ReadCapabilities { get; set; }
|
public testedMediaType ReadCapabilities { get; set; }
|
||||||
public testedMediaType[] RemovableMedias { get; set; }
|
public testedMediaType[] RemovableMedias { get; set; }
|
||||||
public sscType SequentialDevice { get; set; }
|
public sscType SequentialDevice { get; set; }
|
||||||
|
public byte[] ModeSense6Data { get; set; }
|
||||||
|
public byte[] ModeSense10Data { get; set; }
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public bool ReadCapabilitiesSpecified { get; set; }
|
public bool ReadCapabilitiesSpecified { get; set; }
|
||||||
@@ -385,6 +389,7 @@ namespace DiscImageChef.Metadata
|
|||||||
public ushort[] VersionDescriptors { get; set; }
|
public ushort[] VersionDescriptors { get; set; }
|
||||||
public bool WideBus16 { get; set; }
|
public bool WideBus16 { get; set; }
|
||||||
public bool WideBus32 { get; set; }
|
public bool WideBus32 { get; set; }
|
||||||
|
public byte[] Data { get; set; }
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public bool ANSIVersionSpecified { get; set; }
|
public bool ANSIVersionSpecified { get; set; }
|
||||||
@@ -750,6 +755,9 @@ namespace DiscImageChef.Metadata
|
|||||||
public bool SupportsReadLong16 { get; set; }
|
public bool SupportsReadLong16 { get; set; }
|
||||||
public bool SupportsReadLong { get; set; }
|
public bool SupportsReadLong { get; set; }
|
||||||
|
|
||||||
|
public byte[] ModeSense6Data { get; set; }
|
||||||
|
public byte[] ModeSense10Data { get; set; }
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public bool BlocksSpecified { get; set; }
|
public bool BlocksSpecified { get; set; }
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
@@ -995,6 +1003,9 @@ namespace DiscImageChef.Metadata
|
|||||||
public SupportedDensity[] SupportedDensities { get; set; }
|
public SupportedDensity[] SupportedDensities { get; set; }
|
||||||
public SupportedMedia[] SupportedMediaTypes { get; set; }
|
public SupportedMedia[] SupportedMediaTypes { get; set; }
|
||||||
|
|
||||||
|
public byte[] ModeSense6Data { get; set; }
|
||||||
|
public byte[] ModeSense10Data { get; set; }
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
public bool CanReadMediaSerialSpecified { get; set; }
|
public bool CanReadMediaSerialSpecified { get; set; }
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
|
|||||||
Reference in New Issue
Block a user