// /*************************************************************************** // Aaru Data Preservation Suite // ---------------------------------------------------------------------------- // // Filename : Properties.cs // Author(s) : Natalia Portillo // // Component : Core. // // --[ Description ] ---------------------------------------------------------- // // Contains the device info properties. // // --[ License ] -------------------------------------------------------------- // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // ---------------------------------------------------------------------------- // Copyright © 2011-2021 Natalia Portillo // ****************************************************************************/ using System.Collections.Generic; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Structs.Devices.SCSI; using Aaru.Decoders.ATA; using Aaru.Decoders.DVD; using Aaru.Decoders.SCSI; using Aaru.Decoders.SCSI.SSC; using Aaru.Devices; using Inquiry = Aaru.CommonTypes.Structs.Devices.SCSI.Inquiry; namespace Aaru.Core.Devices.Info { public partial class DeviceInfo { /// Raw IDENTIFY DEVICE response public byte[] AtaIdentify { get; } /// Raw IDENTIFY PACKET DEVICE response public byte[] AtapiIdentify { get; } /// Raw INQUIRY response public byte[] ScsiInquiryData { get; } /// Decoded INQUIRY response public Inquiry? ScsiInquiry { get; } /// Response for ATA Memory Card Pass Through public AtaErrorRegistersChs? AtaMcptError { get; } /// List of raw EVPD page indexed by page number public Dictionary ScsiEvpdPages { get; } /// Decoded MODE SENSE response public Modes.DecodedMode? ScsiMode { get; } /// Raw MODE SENSE(6) response public byte[] ScsiModeSense6 { get; } /// Raw MODE SENSE(10) response public byte[] ScsiModeSense10 { get; } /// Raw GET CONFIGURATION response public byte[] MmcConfiguration { get; } /// Decoded Plextor features public Plextor PlextorFeatures { get; } /// Decoded Kreon features public KreonFeatures KreonFeatures { get; } /// Raw GET BLOCK LIMITS support public byte[] BlockLimits { get; } /// Raw density support public byte[] DensitySupport { get; } /// Decoded density support public DensitySupport.DensitySupportHeader? DensitySupportHeader { get; } /// Raw medium density support public byte[] MediumDensitySupport { get; } /// Decoded medium density support public DensitySupport.MediaTypeSupportHeader? MediaTypeSupportHeader { get; } /// Raw CID registers public byte[] CID { get; } /// Raw CSD public byte[] CSD { get; } /// Raw extended CSD public byte[] ExtendedCSD { get; } /// Raw SCR registers public byte[] SCR { get; } /// Raw OCR registers public byte[] OCR { get; } /// Aaru's device type public DeviceType Type { get; } /// Device manufacturer public string Manufacturer { get; } /// Device model public string Model { get; } /// Device firmware version or revision public string FirmwareRevision { get; } /// Device serial number public string Serial { get; } /// SCSI Peripheral Device Type public PeripheralDeviceTypes ScsiType { get; } /// Is media removable from device? public bool IsRemovable { get; } /// Is device attached via USB? public bool IsUsb { get; } /// USB vendor ID public ushort UsbVendorId { get; } /// USB product ID public ushort UsbProductId { get; } /// Raw USB descriptors public byte[] UsbDescriptors { get; } /// USB manufacturer string public string UsbManufacturerString { get; } /// USB product string public string UsbProductString { get; } /// USB serial number string public string UsbSerialString { get; } /// Is device attached via FireWire? public bool IsFireWire { get; } /// FireWire's device GUID public ulong FireWireGuid { get; } /// FireWire's device model ID public uint FireWireModel { get; } /// FireWire's device model name public string FireWireModelName { get; } /// FireWire's device vendor ID public uint FireWireVendor { get; } /// FireWire's device vendor name public string FireWireVendorName { get; } /// Is device a CompactFlash device? public bool IsCompactFlash { get; } /// Is device a PCMCIA or CardBus device? public bool IsPcmcia { get; } /// PCMCIA/CardBus CIS public byte[] Cis { get; } /// MMC device CSS/CPRM Region Protection Code public CSS_CPRM.RegionalPlaybackControlState? RPC { get; } } }