From e9e55162d98b3d893a3600f216458f91224a6a74 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 19 Oct 2015 00:32:48 +0100 Subject: [PATCH] Added ATA/ATAPI IDENTIFY DEVICE disk tags. --- DiscImageChef.Decoders/ATA.cs | 2 -- DiscImageChef.Decoders/ChangeLog | 5 +++++ DiscImageChef.DiscImages/ChangeLog | 5 +++++ DiscImageChef.DiscImages/ImagePlugin.cs | 6 +++++- DiscImageChef/ChangeLog | 5 +++++ DiscImageChef/Commands/Decode.cs | 28 +++++++++++++++++++++++++ 6 files changed, 48 insertions(+), 3 deletions(-) diff --git a/DiscImageChef.Decoders/ATA.cs b/DiscImageChef.Decoders/ATA.cs index b0e87462..23bcd173 100644 --- a/DiscImageChef.Decoders/ATA.cs +++ b/DiscImageChef.Decoders/ATA.cs @@ -1862,8 +1862,6 @@ namespace DiscImageChef.Decoders return null; } - //IdentifyDevice ATAID = new IdentifyDevice(); - IntPtr ptr = Marshal.AllocHGlobal(512); Marshal.Copy(IdentifyDeviceResponse, 0, ptr, 512); IdentifyDevice ATAID = (IdentifyDevice)Marshal.PtrToStructure(ptr, typeof(IdentifyDevice)); diff --git a/DiscImageChef.Decoders/ChangeLog b/DiscImageChef.Decoders/ChangeLog index a9bb884d..2d08ac8e 100644 --- a/DiscImageChef.Decoders/ChangeLog +++ b/DiscImageChef.Decoders/ChangeLog @@ -1,3 +1,8 @@ +2015-10-19 Natalia Portillo + + * ATA.cs: + Added ATA/ATAPI IDENTIFY DEVICE disk tags. + 2015-10-18 Natalia Portillo * BD.cs: diff --git a/DiscImageChef.DiscImages/ChangeLog b/DiscImageChef.DiscImages/ChangeLog index e69371da..bc038501 100644 --- a/DiscImageChef.DiscImages/ChangeLog +++ b/DiscImageChef.DiscImages/ChangeLog @@ -1,3 +1,8 @@ +2015-10-19 Natalia Portillo + + * ImagePlugin.cs: + Added ATA/ATAPI IDENTIFY DEVICE disk tags. + 2015-10-18 Natalia Portillo * VHD.cs: diff --git a/DiscImageChef.DiscImages/ImagePlugin.cs b/DiscImageChef.DiscImages/ImagePlugin.cs index 2d798610..4caf6246 100644 --- a/DiscImageChef.DiscImages/ImagePlugin.cs +++ b/DiscImageChef.DiscImages/ImagePlugin.cs @@ -952,7 +952,11 @@ namespace DiscImageChef.ImagePlugins /// BD-R Pseudo-overwrite information MMC_POWResourcesInformation, /// SCSI INQUIRY response - SCSI_INQUIRY + SCSI_INQUIRY, + /// ATA IDENTIFY DEVICE response + ATA_IDENTIFY, + /// ATA IDENTIFY PACKET DEVICE response + ATAPI_IDENTIFY }; /// diff --git a/DiscImageChef/ChangeLog b/DiscImageChef/ChangeLog index b4ce0ac8..44af6697 100644 --- a/DiscImageChef/ChangeLog +++ b/DiscImageChef/ChangeLog @@ -1,3 +1,8 @@ +2015-10-19 Natalia Portillo + + * Commands/Decode.cs: + Added ATA/ATAPI IDENTIFY DEVICE disk tags. + 2015-10-18 Natalia Portillo * Main.cs: diff --git a/DiscImageChef/Commands/Decode.cs b/DiscImageChef/Commands/Decode.cs index f99666e7..060463e4 100644 --- a/DiscImageChef/Commands/Decode.cs +++ b/DiscImageChef/Commands/Decode.cs @@ -87,6 +87,34 @@ namespace DiscImageChef.Commands } break; } + case DiskTagType.ATA_IDENTIFY: + { + byte[] identify = inputFormat.ReadDiskTag(DiskTagType.ATA_IDENTIFY); + if (identify == null) + DicConsole.WriteLine("Error reading ATA IDENTIFY DEVICE response from disc image"); + else + { + DicConsole.WriteLine("ATA IDENTIFY DEVICE command response:"); + DicConsole.WriteLine("================================================================================"); + DicConsole.WriteLine(Decoders.ATA.PrettifyIdentifyDevice(identify)); + DicConsole.WriteLine("================================================================================"); + } + break; + } + case DiskTagType.ATAPI_IDENTIFY: + { + byte[] identify = inputFormat.ReadDiskTag(DiskTagType.ATAPI_IDENTIFY); + if (identify == null) + DicConsole.WriteLine("Error reading ATA IDENTIFY PACKET DEVICE response from disc image"); + else + { + DicConsole.WriteLine("ATA IDENTIFY PACKET DEVICE command response:"); + DicConsole.WriteLine("================================================================================"); + DicConsole.WriteLine(Decoders.ATA.PrettifyIdentifyDevice(identify)); + DicConsole.WriteLine("================================================================================"); + } + break; + } case DiskTagType.CD_ATIP: { byte[] atip = inputFormat.ReadDiskTag(DiskTagType.CD_ATIP);