Files
Aaru/Aaru.Decoders/SCSI/Inquiry.cs

2543 lines
102 KiB
C#
Raw Normal View History

2017-05-19 20:28:49 +01:00
// /***************************************************************************
2020-02-27 12:31:23 +00:00
// Aaru Data Preservation Suite
* LICENSE.MIT: * LICENSE.LGPL: Added LICENSE files for LGPL and MIT licenses. * DiscImageChef.Devices/Enums.cs: * DiscImageChef.Partitions/MBR.cs: * DiscImageChef.Partitions/RDB.cs: * DiscImageChef.DiscImages/GDI.cs: * DiscImageChef.Partitions/Sun.cs: * DiscImageChef.DiscImages/VHD.cs: * DiscImageChef.Partitions/GPT.cs: * DiscImageChef.Filesystems/FFS.cs: * DiscImageChef.Filesystems/FAT.cs: * DiscImageChef.Partitions/NeXT.cs: * DiscImageChef.Devices/Command.cs: * DiscImageChef.DiscImages/Nero.cs: * DiscImageChef.Decoders/CD/PMA.cs: * DiscImageChef.Decoders/CD/TOC.cs: * DiscImageChef.Filesystems/BFS.cs: * DiscImageChef.Filesystems/ODS.cs: * DiscImageChef.Helpers/PrintHex.cs: * DiscImageChef.Helpers/Swapping.cs: * DiscImageChef.Decoders/DVD/PRI.cs: * DiscImageChef.Decoders/DVD/DMI.cs: * DiscImageChef.Decoders/DVD/DDS.cs: * DiscImageChef.Decoders/DVD/RMD.cs: * DiscImageChef.Decoders/DVD/UDI.cs: * DiscImageChef.Partitions/Atari.cs: * DiscImageChef.Decoders/DVD/BCA.cs: * DiscImageChef.Filesystems/SysV.cs: * DiscImageChef.Filesystems/HPFS.cs: * DiscImageChef.Filesystems/NTFS.cs: * DiscImageChef.Filesystems/APFS.cs: * DiscImageChef.Decoders/DVD/PFI.cs: * DiscImageChef.Decoders/CD/ATIP.cs: * DiscImageChef.Filesystems/Acorn.cs: * DiscImageChef.DiscImages/CDRWin.cs: * DiscImageChef.DiscImages/CDRDAO.cs: * DiscImageChef.Filesystems/BTRFS.cs: * DiscImageChef.Decoders/Xbox/DMI.cs: * DiscImageChef.Helpers/ArrayFill.cs: * DiscImageChef.Settings/Settings.cs: * DiscImageChef.Filesystems/Opera.cs: * DiscImageChef.Filesystems/extFS.cs: * DiscImageChef.Decoders/DVD/CPRM.cs: * DiscImageChef.Decoders/DVD/ADIP.cs: * DiscImageChef.Decoders/CD/Enums.cs: * DiscImageChef.Decoders/DVD/AACS.cs: * DiscImageChef.Decoders/SCSI/EVPD.cs: * DiscImageChef.Filesystems/ProDOS.cs: * DiscImageChef.Metadata/MediaType.cs: * DiscImageChef.Console/DicConsole.cs: * DiscImageChef.Decoders/DVD/Spare.cs: * DiscImageChef.Filesystems/ext2FS.cs: * DiscImageChef.Decoders/DVD/Enums.cs: * DiscImageChef.Filesystems/Symbian.cs: * DiscImageChef.Decoders/SCSI/Types.cs: * DiscImageChef.Filesystems/UNIXBFS.cs: * DiscImageChef.DiscImages/TeleDisk.cs: * DiscImageChef.Decoders/SCSI/Sense.cs: * DiscImageChef.Decoders/CD/FullTOC.cs: * DiscImageChef.Decoders/Blu-ray/DI.cs: * DiscImageChef.Decoders/ATA/Errors.cs: * DiscImageChef.Filesystems/ISO9660.cs: * DiscImageChef.Filesystems/MinixFS.cs: * DiscImageChef.Devices/Linux/Enums.cs: * DiscImageChef.Filesystems/SolarFS.cs: * DiscImageChef.Filesystems/Structs.cs: * DiscImageChef.DiscImages/Apple2MG.cs: * DiscImageChef.Decoders/SCSI/Modes.cs: * DiscImageChef.Metadata/Dimensions.cs: * DiscImageChef.Partitions/AppleMap.cs: * DiscImageChef.Decoders/Floppy/ISO.cs: * DiscImageChef.Decoders/DVD/Layers.cs: * DiscImageChef.Decoders/CD/Session.cs: * DiscImageChef.Decoders/SCSI/Enums.cs: * DiscImageChef.Filesystems/Nintendo.cs: * DiscImageChef.Helpers/DateHandlers.cs: * DiscImageChef.Filesystems/AmigaDOS.cs: * DiscImageChef.DiscImages/ImageInfo.cs: * DiscImageChef.Checksums/MD5Context.cs: * DiscImageChef.Devices/Linux/Extern.cs: * DiscImageChef.Filesystems/AppleHFS.cs: * DiscImageChef.Filesystems/AppleMFS.cs: * DiscImageChef.Helpers/ArrayIsEmpty.cs: * DiscImageChef.Decoders/Blu-ray/BCA.cs: * DiscImageChef.Decoders/Blu-ray/DDS.cs: * DiscImageChef.Filesystems/PCEngine.cs: * DiscImageChef.Decoders/ATA/Identify.cs: * DiscImageChef.Devices/Linux/Command.cs: * DiscImageChef.Devices/FreeBSD/Enums.cs: * DiscImageChef.Decoders/SCSI/Inquiry.cs: * DiscImageChef.Metadata/DeviceReport.cs: * DiscImageChef.Decoders/Floppy/Amiga.cs: * DiscImageChef.Devices/Linux/Structs.cs: * DiscImageChef.Devices/Windows/Enums.cs: * DiscImageChef.Decoders/DVD/CSS&CPRM.cs: * DiscImageChef.Checksums/SHA1Context.cs: * DiscImageChef.DiscImages/DiskCopy42.cs: * DiscImageChef.Partitions/PartPlugin.cs: * DiscImageChef.CommonTypes/Partition.cs: * DiscImageChef.Decoders/Floppy/Enums.cs: * DiscImageChef.CommonTypes/MediaType.cs: * DiscImageChef.Decoders/Floppy/Apple2.cs: * DiscImageChef.Devices/Windows/Extern.cs: * DiscImageChef.Decoders/SCSI/MMC/CPRM.cs: * DiscImageChef.Helpers/StringHandlers.cs: * DiscImageChef.DiscImages/ImagePlugin.cs: * DiscImageChef.Checksums/CRC64Context.cs: * DiscImageChef.Checksums/CRC32Context.cs: * DiscImageChef.DiscImages/ZZZRawImage.cs: * DiscImageChef.Checksums/CRC16Context.cs: * DiscImageChef.Filesystems/LisaFS/Dir.cs: * DiscImageChef.Decoders/DVD/Cartridge.cs: * DiscImageChef.Decoders/Blu-ray/Spare.cs: * DiscImageChef.Filesystems/Filesystem.cs: * DiscImageChef.Decoders/SCSI/MMC/AACS.cs: * DiscImageChef.Devices/FreeBSD/Extern.cs: * DiscImageChef.Devices/Device/Commands.cs: * DiscImageChef.Checksums/SHA384Context.cs: * DiscImageChef.Devices/FreeBSD/Command.cs: * DiscImageChef.Checksums/SHA512Context.cs: * DiscImageChef.Decoders/SCSI/MMC/Enums.cs: * DiscImageChef.Devices/Windows/Command.cs: * DiscImageChef.Devices/FreeBSD/Structs.cs: * DiscImageChef.Devices/Windows/Structs.cs: * DiscImageChef.Filesystems/LisaFS/Info.cs: * DiscImageChef.Checksums/SHA256Context.cs: * DiscImageChef.Filesystems/LisaFS/File.cs: * DiscImageChef.Filesystems/AppleHFSPlus.cs: * DiscImageChef.Filesystems/LisaFS/Super.cs: * DiscImageChef.Filesystems/LisaFS/Xattr.cs: * DiscImageChef.Checksums/Adler32Context.cs: * DiscImageChef.Decoders/Floppy/System34.cs: * DiscImageChef.Checksums/SpamSumContext.cs: * DiscImageChef.Decoders/SCSI/MMC/Hybrid.cs: * DiscImageChef.Devices/Device/Variables.cs: * DiscImageChef.Filesystems/LisaFS/Consts.cs: * DiscImageChef.Filesystems/LisaFS/LisaFS.cs: * DiscImageChef.Decoders/Floppy/Commodore.cs: * DiscImageChef.Checksums/FletcherContext.cs: * DiscImageChef.Filesystems/LisaFS/Extent.cs: * DiscImageChef.Devices/Device/Destructor.cs: * DiscImageChef.Decoders/Floppy/AppleSony.cs: * DiscImageChef.Filesystems/LisaFS/Structs.cs: * DiscImageChef.Decoders/SCSI/VendorString.cs: * DiscImageChef.Decoders/SCSI/MMC/Features.cs: * DiscImageChef.Devices/Device/Constructor.cs: * DiscImageChef.Checksums/RIPEMD160Context.cs: * DiscImageChef.Decoders/CD/CDTextOnLeadIn.cs: * DiscImageChef.Decoders/Blu-ray/Cartridge.cs: * DiscImageChef.Decoders/Floppy/System3740.cs: * DiscImageChef.Filesystems/LisaFS/Encoding.cs: * DiscImageChef.Decoders/SCSI/ModesEncoders.cs: * DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs: * DiscImageChef.Helpers/BigEndianBitConverter.cs: * DiscImageChef.Decoders/Floppy/Perpendicular.cs: * DiscImageChef.Decoders/SCSI/SSC/BlockLimits.cs: * DiscImageChef.Decoders/SCSI/MMC/WriteProtect.cs: * DiscImageChef.Devices/Device/ScsiCommands/HP.cs: * DiscImageChef.Devices/Device/AtaCommands/Cfa.cs: * DiscImageChef.Devices/Device/ScsiCommands/NEC.cs: * DiscImageChef.Helpers/EndianAwareBinaryReader.cs: * DiscImageChef.Devices/Device/ScsiCommands/MMC.cs: * DiscImageChef.Devices/Device/AtaCommands/MCPT.cs: * DiscImageChef.Devices/Device/ScsiCommands/SSC.cs: * DiscImageChef.Devices/Device/ScsiCommands/SPC.cs: * DiscImageChef.Devices/Device/ScsiCommands/SMC.cs: * DiscImageChef.Devices/Device/ScsiCommands/SBC.cs: * DiscImageChef.Metadata/Properties/AssemblyInfo.cs: * DiscImageChef.Devices/Device/AtaCommands/Atapi.cs: * DiscImageChef.Devices/Device/AtaCommands/Ata28.cs: * DiscImageChef.Devices/Device/AtaCommands/Smart.cs: * DiscImageChef.Decoders/SCSI/SSC/DensitySupport.cs: * DiscImageChef.Devices/Device/AtaCommands/Ata48.cs: * DiscImageChef.Decoders/SCSI/MMC/DiscInformation.cs: * DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs: * DiscImageChef.Devices/Device/ScsiCommands/SyQuest.cs: * DiscImageChef.Devices/Device/ScsiCommands/Plextor.cs: * DiscImageChef.Devices/Device/ScsiCommands/Plasmon.cs: * DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs: * DiscImageChef.Devices/Device/ScsiCommands/Adaptec.cs: * DiscImageChef.Devices/Device/ScsiCommands/Fujitsu.cs: * DiscImageChef.Devices/Device/ScsiCommands/HL-DT-ST.cs: * DiscImageChef.Devices/Device/ScsiCommands/Certance.cs: * DiscImageChef.Decoders/SCSI/DiscStructureCapabilities.cs: * DiscImageChef.Devices/Device/ScsiCommands/ArchiveCorp.cs: Relicensed as LGPL. Updated standard header. * DiscImageChef/Main.cs: * DiscImageChef/Plugins.cs: * DiscImageChef/Options.cs: * DiscImageChef/Commands/Ls.cs: * DiscImageChef/Core/IBGLog.cs: * DiscImageChef/Core/MHDDLog.cs: * DiscImageChef/AssemblyInfo.cs: * DiscImageChef/Core/Checksum.cs: * DiscImageChef/Commands/Decode.cs: * DiscImageChef/Core/Statistics.cs: * DiscImageChef/Commands/Verify.cs: * DiscImageChef/Commands/Formats.cs: * DiscImageChef/Commands/Entropy.cs: * DiscImageChef/Commands/Compare.cs: * DiscImageChef.Interop/DetectOS.cs: * DiscImageChef/Commands/Analyze.cs: * DiscImageChef/Commands/Commands.cs: * DiscImageChef/Commands/PrintHex.cs: * DiscImageChef/Commands/Checksum.cs: * DiscImageChef/DetectImageFormat.cs: * DiscImageChef/Commands/DumpMedia.cs: * DiscImageChef/Commands/Benchmark.cs: * DiscImageChef/Commands/Configure.cs: * DiscImageChef/Commands/MediaInfo.cs: * DiscImageChef.Interop/PlatformID.cs: * DiscImageChef/Commands/MediaScan.cs: * DiscImageChef/Commands/Statistics.cs: * DiscImageChef/Commands/DeviceInfo.cs: * DiscImageChef.Checksums/ReedSolomon.cs: * DiscImageChef/Commands/DeviceReport.cs: * DiscImageChef/Commands/ExtractFiles.cs: * DiscImageChef.Checksums/CDChecksums.cs: * DiscImageChef/Commands/CreateSidecar.cs: Updated standard header. * DiscImageChef.Checksums/DiscImageChef.Checksums.csproj: Relicensed project as LGPL. Updated standard header. Embed license as resource. * DiscImageChef.Console/DiscImageChef.Console.csproj: * DiscImageChef.Devices/DiscImageChef.Devices.csproj: * DiscImageChef.Helpers/DiscImageChef.Helpers.csproj: * DiscImageChef.Settings/DiscImageChef.Settings.csproj: * DiscImageChef.Decoders/DiscImageChef.Decoders.csproj: * DiscImageChef.Metadata/DiscImageChef.Metadata.csproj: * DiscImageChef.Partitions/DiscImageChef.Partitions.csproj: * DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj: * DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj: * DiscImageChef.CommonTypes/DiscImageChef.CommonTypes.csproj: Relicensed as LGPL. Updated standard header. Embed license as resource. * DiscImageChef/DiscImageChef.csproj: * DiscImageChef.Interop/DiscImageChef.Interop.csproj: Updated standard header. Embed license as resource.
2016-07-28 18:13:49 +01:00
// ----------------------------------------------------------------------------
//
// Filename : Inquiry.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Device structures decoders.
//
// --[ Description ] ----------------------------------------------------------
//
// Decodes SCSI INQUIRY responses.
//
// --[ License ] --------------------------------------------------------------
//
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of the
// License, or (at your option) any later version.
//
// This library 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
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
2022-12-03 16:07:08 +00:00
// Copyright © 2011-2023 Natalia Portillo
* LICENSE.MIT: * LICENSE.LGPL: Added LICENSE files for LGPL and MIT licenses. * DiscImageChef.Devices/Enums.cs: * DiscImageChef.Partitions/MBR.cs: * DiscImageChef.Partitions/RDB.cs: * DiscImageChef.DiscImages/GDI.cs: * DiscImageChef.Partitions/Sun.cs: * DiscImageChef.DiscImages/VHD.cs: * DiscImageChef.Partitions/GPT.cs: * DiscImageChef.Filesystems/FFS.cs: * DiscImageChef.Filesystems/FAT.cs: * DiscImageChef.Partitions/NeXT.cs: * DiscImageChef.Devices/Command.cs: * DiscImageChef.DiscImages/Nero.cs: * DiscImageChef.Decoders/CD/PMA.cs: * DiscImageChef.Decoders/CD/TOC.cs: * DiscImageChef.Filesystems/BFS.cs: * DiscImageChef.Filesystems/ODS.cs: * DiscImageChef.Helpers/PrintHex.cs: * DiscImageChef.Helpers/Swapping.cs: * DiscImageChef.Decoders/DVD/PRI.cs: * DiscImageChef.Decoders/DVD/DMI.cs: * DiscImageChef.Decoders/DVD/DDS.cs: * DiscImageChef.Decoders/DVD/RMD.cs: * DiscImageChef.Decoders/DVD/UDI.cs: * DiscImageChef.Partitions/Atari.cs: * DiscImageChef.Decoders/DVD/BCA.cs: * DiscImageChef.Filesystems/SysV.cs: * DiscImageChef.Filesystems/HPFS.cs: * DiscImageChef.Filesystems/NTFS.cs: * DiscImageChef.Filesystems/APFS.cs: * DiscImageChef.Decoders/DVD/PFI.cs: * DiscImageChef.Decoders/CD/ATIP.cs: * DiscImageChef.Filesystems/Acorn.cs: * DiscImageChef.DiscImages/CDRWin.cs: * DiscImageChef.DiscImages/CDRDAO.cs: * DiscImageChef.Filesystems/BTRFS.cs: * DiscImageChef.Decoders/Xbox/DMI.cs: * DiscImageChef.Helpers/ArrayFill.cs: * DiscImageChef.Settings/Settings.cs: * DiscImageChef.Filesystems/Opera.cs: * DiscImageChef.Filesystems/extFS.cs: * DiscImageChef.Decoders/DVD/CPRM.cs: * DiscImageChef.Decoders/DVD/ADIP.cs: * DiscImageChef.Decoders/CD/Enums.cs: * DiscImageChef.Decoders/DVD/AACS.cs: * DiscImageChef.Decoders/SCSI/EVPD.cs: * DiscImageChef.Filesystems/ProDOS.cs: * DiscImageChef.Metadata/MediaType.cs: * DiscImageChef.Console/DicConsole.cs: * DiscImageChef.Decoders/DVD/Spare.cs: * DiscImageChef.Filesystems/ext2FS.cs: * DiscImageChef.Decoders/DVD/Enums.cs: * DiscImageChef.Filesystems/Symbian.cs: * DiscImageChef.Decoders/SCSI/Types.cs: * DiscImageChef.Filesystems/UNIXBFS.cs: * DiscImageChef.DiscImages/TeleDisk.cs: * DiscImageChef.Decoders/SCSI/Sense.cs: * DiscImageChef.Decoders/CD/FullTOC.cs: * DiscImageChef.Decoders/Blu-ray/DI.cs: * DiscImageChef.Decoders/ATA/Errors.cs: * DiscImageChef.Filesystems/ISO9660.cs: * DiscImageChef.Filesystems/MinixFS.cs: * DiscImageChef.Devices/Linux/Enums.cs: * DiscImageChef.Filesystems/SolarFS.cs: * DiscImageChef.Filesystems/Structs.cs: * DiscImageChef.DiscImages/Apple2MG.cs: * DiscImageChef.Decoders/SCSI/Modes.cs: * DiscImageChef.Metadata/Dimensions.cs: * DiscImageChef.Partitions/AppleMap.cs: * DiscImageChef.Decoders/Floppy/ISO.cs: * DiscImageChef.Decoders/DVD/Layers.cs: * DiscImageChef.Decoders/CD/Session.cs: * DiscImageChef.Decoders/SCSI/Enums.cs: * DiscImageChef.Filesystems/Nintendo.cs: * DiscImageChef.Helpers/DateHandlers.cs: * DiscImageChef.Filesystems/AmigaDOS.cs: * DiscImageChef.DiscImages/ImageInfo.cs: * DiscImageChef.Checksums/MD5Context.cs: * DiscImageChef.Devices/Linux/Extern.cs: * DiscImageChef.Filesystems/AppleHFS.cs: * DiscImageChef.Filesystems/AppleMFS.cs: * DiscImageChef.Helpers/ArrayIsEmpty.cs: * DiscImageChef.Decoders/Blu-ray/BCA.cs: * DiscImageChef.Decoders/Blu-ray/DDS.cs: * DiscImageChef.Filesystems/PCEngine.cs: * DiscImageChef.Decoders/ATA/Identify.cs: * DiscImageChef.Devices/Linux/Command.cs: * DiscImageChef.Devices/FreeBSD/Enums.cs: * DiscImageChef.Decoders/SCSI/Inquiry.cs: * DiscImageChef.Metadata/DeviceReport.cs: * DiscImageChef.Decoders/Floppy/Amiga.cs: * DiscImageChef.Devices/Linux/Structs.cs: * DiscImageChef.Devices/Windows/Enums.cs: * DiscImageChef.Decoders/DVD/CSS&CPRM.cs: * DiscImageChef.Checksums/SHA1Context.cs: * DiscImageChef.DiscImages/DiskCopy42.cs: * DiscImageChef.Partitions/PartPlugin.cs: * DiscImageChef.CommonTypes/Partition.cs: * DiscImageChef.Decoders/Floppy/Enums.cs: * DiscImageChef.CommonTypes/MediaType.cs: * DiscImageChef.Decoders/Floppy/Apple2.cs: * DiscImageChef.Devices/Windows/Extern.cs: * DiscImageChef.Decoders/SCSI/MMC/CPRM.cs: * DiscImageChef.Helpers/StringHandlers.cs: * DiscImageChef.DiscImages/ImagePlugin.cs: * DiscImageChef.Checksums/CRC64Context.cs: * DiscImageChef.Checksums/CRC32Context.cs: * DiscImageChef.DiscImages/ZZZRawImage.cs: * DiscImageChef.Checksums/CRC16Context.cs: * DiscImageChef.Filesystems/LisaFS/Dir.cs: * DiscImageChef.Decoders/DVD/Cartridge.cs: * DiscImageChef.Decoders/Blu-ray/Spare.cs: * DiscImageChef.Filesystems/Filesystem.cs: * DiscImageChef.Decoders/SCSI/MMC/AACS.cs: * DiscImageChef.Devices/FreeBSD/Extern.cs: * DiscImageChef.Devices/Device/Commands.cs: * DiscImageChef.Checksums/SHA384Context.cs: * DiscImageChef.Devices/FreeBSD/Command.cs: * DiscImageChef.Checksums/SHA512Context.cs: * DiscImageChef.Decoders/SCSI/MMC/Enums.cs: * DiscImageChef.Devices/Windows/Command.cs: * DiscImageChef.Devices/FreeBSD/Structs.cs: * DiscImageChef.Devices/Windows/Structs.cs: * DiscImageChef.Filesystems/LisaFS/Info.cs: * DiscImageChef.Checksums/SHA256Context.cs: * DiscImageChef.Filesystems/LisaFS/File.cs: * DiscImageChef.Filesystems/AppleHFSPlus.cs: * DiscImageChef.Filesystems/LisaFS/Super.cs: * DiscImageChef.Filesystems/LisaFS/Xattr.cs: * DiscImageChef.Checksums/Adler32Context.cs: * DiscImageChef.Decoders/Floppy/System34.cs: * DiscImageChef.Checksums/SpamSumContext.cs: * DiscImageChef.Decoders/SCSI/MMC/Hybrid.cs: * DiscImageChef.Devices/Device/Variables.cs: * DiscImageChef.Filesystems/LisaFS/Consts.cs: * DiscImageChef.Filesystems/LisaFS/LisaFS.cs: * DiscImageChef.Decoders/Floppy/Commodore.cs: * DiscImageChef.Checksums/FletcherContext.cs: * DiscImageChef.Filesystems/LisaFS/Extent.cs: * DiscImageChef.Devices/Device/Destructor.cs: * DiscImageChef.Decoders/Floppy/AppleSony.cs: * DiscImageChef.Filesystems/LisaFS/Structs.cs: * DiscImageChef.Decoders/SCSI/VendorString.cs: * DiscImageChef.Decoders/SCSI/MMC/Features.cs: * DiscImageChef.Devices/Device/Constructor.cs: * DiscImageChef.Checksums/RIPEMD160Context.cs: * DiscImageChef.Decoders/CD/CDTextOnLeadIn.cs: * DiscImageChef.Decoders/Blu-ray/Cartridge.cs: * DiscImageChef.Decoders/Floppy/System3740.cs: * DiscImageChef.Filesystems/LisaFS/Encoding.cs: * DiscImageChef.Decoders/SCSI/ModesEncoders.cs: * DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs: * DiscImageChef.Helpers/BigEndianBitConverter.cs: * DiscImageChef.Decoders/Floppy/Perpendicular.cs: * DiscImageChef.Decoders/SCSI/SSC/BlockLimits.cs: * DiscImageChef.Decoders/SCSI/MMC/WriteProtect.cs: * DiscImageChef.Devices/Device/ScsiCommands/HP.cs: * DiscImageChef.Devices/Device/AtaCommands/Cfa.cs: * DiscImageChef.Devices/Device/ScsiCommands/NEC.cs: * DiscImageChef.Helpers/EndianAwareBinaryReader.cs: * DiscImageChef.Devices/Device/ScsiCommands/MMC.cs: * DiscImageChef.Devices/Device/AtaCommands/MCPT.cs: * DiscImageChef.Devices/Device/ScsiCommands/SSC.cs: * DiscImageChef.Devices/Device/ScsiCommands/SPC.cs: * DiscImageChef.Devices/Device/ScsiCommands/SMC.cs: * DiscImageChef.Devices/Device/ScsiCommands/SBC.cs: * DiscImageChef.Metadata/Properties/AssemblyInfo.cs: * DiscImageChef.Devices/Device/AtaCommands/Atapi.cs: * DiscImageChef.Devices/Device/AtaCommands/Ata28.cs: * DiscImageChef.Devices/Device/AtaCommands/Smart.cs: * DiscImageChef.Decoders/SCSI/SSC/DensitySupport.cs: * DiscImageChef.Devices/Device/AtaCommands/Ata48.cs: * DiscImageChef.Decoders/SCSI/MMC/DiscInformation.cs: * DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs: * DiscImageChef.Devices/Device/ScsiCommands/SyQuest.cs: * DiscImageChef.Devices/Device/ScsiCommands/Plextor.cs: * DiscImageChef.Devices/Device/ScsiCommands/Plasmon.cs: * DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs: * DiscImageChef.Devices/Device/ScsiCommands/Adaptec.cs: * DiscImageChef.Devices/Device/ScsiCommands/Fujitsu.cs: * DiscImageChef.Devices/Device/ScsiCommands/HL-DT-ST.cs: * DiscImageChef.Devices/Device/ScsiCommands/Certance.cs: * DiscImageChef.Decoders/SCSI/DiscStructureCapabilities.cs: * DiscImageChef.Devices/Device/ScsiCommands/ArchiveCorp.cs: Relicensed as LGPL. Updated standard header. * DiscImageChef/Main.cs: * DiscImageChef/Plugins.cs: * DiscImageChef/Options.cs: * DiscImageChef/Commands/Ls.cs: * DiscImageChef/Core/IBGLog.cs: * DiscImageChef/Core/MHDDLog.cs: * DiscImageChef/AssemblyInfo.cs: * DiscImageChef/Core/Checksum.cs: * DiscImageChef/Commands/Decode.cs: * DiscImageChef/Core/Statistics.cs: * DiscImageChef/Commands/Verify.cs: * DiscImageChef/Commands/Formats.cs: * DiscImageChef/Commands/Entropy.cs: * DiscImageChef/Commands/Compare.cs: * DiscImageChef.Interop/DetectOS.cs: * DiscImageChef/Commands/Analyze.cs: * DiscImageChef/Commands/Commands.cs: * DiscImageChef/Commands/PrintHex.cs: * DiscImageChef/Commands/Checksum.cs: * DiscImageChef/DetectImageFormat.cs: * DiscImageChef/Commands/DumpMedia.cs: * DiscImageChef/Commands/Benchmark.cs: * DiscImageChef/Commands/Configure.cs: * DiscImageChef/Commands/MediaInfo.cs: * DiscImageChef.Interop/PlatformID.cs: * DiscImageChef/Commands/MediaScan.cs: * DiscImageChef/Commands/Statistics.cs: * DiscImageChef/Commands/DeviceInfo.cs: * DiscImageChef.Checksums/ReedSolomon.cs: * DiscImageChef/Commands/DeviceReport.cs: * DiscImageChef/Commands/ExtractFiles.cs: * DiscImageChef.Checksums/CDChecksums.cs: * DiscImageChef/Commands/CreateSidecar.cs: Updated standard header. * DiscImageChef.Checksums/DiscImageChef.Checksums.csproj: Relicensed project as LGPL. Updated standard header. Embed license as resource. * DiscImageChef.Console/DiscImageChef.Console.csproj: * DiscImageChef.Devices/DiscImageChef.Devices.csproj: * DiscImageChef.Helpers/DiscImageChef.Helpers.csproj: * DiscImageChef.Settings/DiscImageChef.Settings.csproj: * DiscImageChef.Decoders/DiscImageChef.Decoders.csproj: * DiscImageChef.Metadata/DiscImageChef.Metadata.csproj: * DiscImageChef.Partitions/DiscImageChef.Partitions.csproj: * DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj: * DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj: * DiscImageChef.CommonTypes/DiscImageChef.CommonTypes.csproj: Relicensed as LGPL. Updated standard header. Embed license as resource. * DiscImageChef/DiscImageChef.csproj: * DiscImageChef.Interop/DiscImageChef.Interop.csproj: Updated standard header. Embed license as resource.
2016-07-28 18:13:49 +01:00
// ****************************************************************************/
2015-10-05 20:27:44 +01:00
using System;
using System.Diagnostics.CodeAnalysis;
2017-12-19 19:33:46 +00:00
using System.Linq;
2015-10-05 20:27:44 +01:00
using System.Text;
2020-02-27 00:33:24 +00:00
using Aaru.CommonTypes.Structs.Devices.SCSI;
2020-07-20 15:43:51 +01:00
using Aaru.Helpers;
using Aaru.Localization;
2015-10-05 20:27:44 +01:00
namespace Aaru.Decoders.SCSI;
2022-03-06 13:29:37 +00:00
// Information from the following standards:
// T9/375-D revision 10l
// T10/995-D revision 10
// T10/1236-D revision 20
// T10/1416-D revision 23
// T10/1731-D revision 16
// T10/502 revision 05
// RFC 7144
// ECMA-111
2023-10-03 23:09:28 +01:00
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
2022-03-06 13:29:37 +00:00
public static class Inquiry
2015-10-05 20:27:44 +01:00
{
2022-03-06 13:29:37 +00:00
public static string Prettify(CommonTypes.Structs.Devices.SCSI.Inquiry? SCSIInquiryResponse)
2015-10-05 20:27:44 +01:00
{
2022-03-06 13:29:37 +00:00
if(SCSIInquiryResponse == null)
return null;
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
CommonTypes.Structs.Devices.SCSI.Inquiry response = SCSIInquiryResponse.Value;
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
var sb = new StringBuilder();
2015-10-05 20:27:44 +01:00
sb.AppendFormat(Localization.Device_vendor_0,
2022-03-06 13:29:37 +00:00
VendorString.Prettify(StringHandlers.CToString(response.VendorIdentification).Trim())).
AppendLine();
2019-11-25 00:54:38 +00:00
sb.AppendFormat(Localization.Device_name_0, StringHandlers.CToString(response.ProductIdentification).Trim()).
2022-03-06 13:29:37 +00:00
AppendLine();
2019-11-25 00:54:38 +00:00
sb.AppendFormat(Localization.Device_release_level_0,
StringHandlers.CToString(response.ProductRevisionLevel).Trim()).
AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
switch((PeripheralQualifiers)response.PeripheralQualifier)
{
case PeripheralQualifiers.Supported:
sb.AppendLine(Localization.Device_is_connected_and_supported);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralQualifiers.Unconnected:
sb.AppendLine(Localization.Device_is_supported_but_not_connected);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralQualifiers.Reserved:
sb.AppendLine(Localization.Reserved_value_set_in_Peripheral_Qualifier_field);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralQualifiers.Unsupported:
sb.AppendLine(Localization.Device_is_connected_but_unsupported);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Vendor_value_0_set_in_Peripheral_Qualifier_field,
response.PeripheralQualifier).
AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
switch((PeripheralDeviceTypes)response.PeripheralDeviceType)
{
case PeripheralDeviceTypes.DirectAccess: //0x00,
sb.AppendLine(Localization.Direct_access_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.SequentialAccess: //0x01,
sb.AppendLine(Localization.Sequential_access_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.PrinterDevice: //0x02,
sb.AppendLine(Localization.Printer_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.ProcessorDevice: //0x03,
sb.AppendLine(Localization.Processor_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.WriteOnceDevice: //0x04,
sb.AppendLine(Localization.Write_once_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.MultiMediaDevice: //0x05,
sb.AppendLine(Localization.CD_ROM_DVD_etc_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.ScannerDevice: //0x06,
sb.AppendLine(Localization.Scanner_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.OpticalDevice: //0x07,
sb.AppendLine(Localization.Optical_memory_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.MediumChangerDevice: //0x08,
sb.AppendLine(Localization.Medium_change_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.CommsDevice: //0x09,
sb.AppendLine(Localization.Communications_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.PrePressDevice1: //0x0A,
sb.AppendLine(Localization.Graphics_arts_pre_press_device_defined_in_ASC_IT8);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.PrePressDevice2: //0x0B,
sb.AppendLine(Localization.Graphics_arts_pre_press_device_defined_in_ASC_IT8);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.ArrayControllerDevice: //0x0C,
sb.AppendLine(Localization.Array_controller_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.EnclosureServiceDevice: //0x0D,
sb.AppendLine(Localization.Enclosure_services_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.SimplifiedDevice: //0x0E,
sb.AppendLine(Localization.Simplified_direct_access_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.OCRWDevice: //0x0F,
sb.AppendLine(Localization.Optical_card_reader_writer_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.BridgingExpander: //0x10,
sb.AppendLine(Localization.Bridging_Expanders);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.ObjectDevice: //0x11,
sb.AppendLine(Localization.Object_based_Storage_Device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.ADCDevice: //0x12,
sb.AppendLine(Localization.Automation_Drive_Interface);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.SCSISecurityManagerDevice: //0x13,
sb.AppendLine(Localization.Security_Manager_Device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.SCSIZonedBlockDevice: //0x14
sb.AppendLine(Localization.Host_managed_zoned_block_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.WellKnownDevice: //0x1E,
sb.AppendLine(Localization.Well_known_logical_unit);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case PeripheralDeviceTypes.UnknownDevice: //0x1F
sb.AppendLine(Localization.Unknown_or_no_device_type);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Unknown_device_type_field_value_0, response.PeripheralDeviceType).
AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
switch((ANSIVersions)response.ANSIVersion)
{
case ANSIVersions.ANSINoVersion:
sb.AppendLine(Localization.Device_does_not_claim_to_comply_with_any_SCSI_ANSI_standard);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ANSIVersions.ANSI1986Version:
sb.AppendLine(Localization.Device_claims_to_comply_with_ANSI_X3_131_1986_SCSI_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ANSIVersions.ANSI1994Version:
sb.AppendLine(Localization.Device_claims_to_comply_with_ANSI_X3_131_1994_SCSI_2);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ANSIVersions.ANSI1997Version:
sb.AppendLine(Localization.Device_claims_to_comply_with_ANSI_X3_301_1997_SPC_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ANSIVersions.ANSI2001Version:
sb.AppendLine(Localization.Device_claims_to_comply_with_ANSI_X3_351_2001_SPC_2);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ANSIVersions.ANSI2005Version:
sb.AppendLine(Localization.Device_claims_to_comply_with_ANSI_X3_408_2005_SPC_3);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ANSIVersions.ANSI2008Version:
sb.AppendLine(Localization.Device_claims_to_comply_with_ANSI_X3_408_2005_SPC_4);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Device_claims_to_comply_with_unknown_SCSI_ANSI_standard_value_0,
response.ANSIVersion).
AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
switch((ECMAVersions)response.ECMAVersion)
{
case ECMAVersions.ECMANoVersion:
sb.AppendLine(Localization.Device_does_not_claim_to_comply_with_any_SCSI_ECMA_standard);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ECMAVersions.ECMA111:
sb.AppendLine(Localization.Device_claims_to_comply_ECMA_111_Small_Computer_System_Interface_SCSI);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Device_claims_to_comply_with_unknown_SCSI_ECMA_standard_value_0,
response.ECMAVersion).
AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
switch((ISOVersions)response.ISOVersion)
{
case ISOVersions.ISONoVersion:
sb.AppendLine(Localization.Device_does_not_claim_to_comply_with_any_SCSI_ISO_IEC_standard);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case ISOVersions.ISO1995Version:
sb.AppendLine(Localization.Device_claims_to_comply_with_ISO_IEC_9316_1995);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Device_claims_to_comply_with_unknown_SCSI_ISO_IEC_standard_value_0,
response.ISOVersion).
AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
if(response.RMB)
sb.AppendLine(Localization.Device_is_removable);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.AERC)
sb.AppendLine(Localization.Device_supports_Asynchronous_Event_Reporting_Capability);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.TrmTsk)
sb.AppendLine(Localization.Device_supports_TERMINATE_TASK_command);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.NormACA)
sb.AppendLine(Localization.Device_supports_setting_Normal_ACA);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.HiSup)
sb.AppendLine(Localization.Device_supports_LUN_hierarchical_addressing);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.SCCS)
sb.AppendLine(Localization.Device_contains_an_embedded_storage_array_controller);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.ACC)
sb.AppendLine(Localization.Device_contains_an_Access_Control_Coordinator);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.ThreePC)
sb.AppendLine(Localization.Device_supports_third_party_copy_commands);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Protect)
sb.AppendLine(Localization.Device_supports_protection_information);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.BQue)
sb.AppendLine(Localization.Device_supports_basic_queueing);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.EncServ)
sb.AppendLine(Localization.Device_contains_an_embedded_enclosure_services_component);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.MultiP)
sb.AppendLine(Localization.Multi_port_device);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.MChngr)
sb.AppendLine(Localization.Device_contains_or_is_attached_to_a_medium_changer);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.ACKREQQ)
sb.AppendLine(Localization.Device_supports_request_and_acknowledge_handshakes);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Addr32)
sb.AppendLine(Localization.Device_supports_32_bit_wide_SCSI_addresses);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Addr16)
sb.AppendLine(Localization.Device_supports_16_bit_wide_SCSI_addresses);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.RelAddr)
sb.AppendLine(Localization.Device_supports_relative_addressing);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.WBus32)
sb.AppendLine(Localization.Device_supports_32_bit_wide_data_transfers);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.WBus16)
sb.AppendLine(Localization.Device_supports_16_bit_wide_data_transfers);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Sync)
sb.AppendLine(Localization.Device_supports_synchronous_data_transfer);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Linked)
sb.AppendLine(Localization.Device_supports_linked_commands);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.TranDis)
sb.AppendLine(Localization.Device_supports_CONTINUE_TASK_and_TARGET_TRANSFER_DISABLE_commands);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.QAS)
sb.AppendLine(Localization.Device_supports_Quick_Arbitration_and_Selection);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.CmdQue)
sb.AppendLine(Localization.Device_supports_TCQ_queue);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.IUS)
sb.AppendLine(Localization.Device_supports_information_unit_transfers);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.SftRe)
sb.AppendLine(Localization.Device_implements_RESET_as_a_soft_reset);
2022-03-06 13:29:37 +00:00
#if DEBUG
if(response.VS1)
sb.AppendLine(Localization.Vendor_specific_bit_5_on_byte_6_of_INQUIRY_response_is_set);
2022-03-06 13:29:37 +00:00
#endif
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
switch((TGPSValues)response.TPGS)
{
case TGPSValues.NotSupported:
sb.AppendLine(Localization.Device_does_not_support_asymmetrical_access);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case TGPSValues.OnlyImplicit:
sb.AppendLine(Localization.Device_only_supports_implicit_asymmetrical_access);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case TGPSValues.OnlyExplicit:
sb.AppendLine(Localization.Device_only_supports_explicit_asymmetrical_access);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case TGPSValues.Both:
sb.AppendLine(Localization.Device_supports_implicit_and_explicit_asymmetrical_access);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Unknown_value_in_TPGS_field_0, response.TPGS).AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
switch((SPIClocking)response.Clocking)
{
case SPIClocking.ST:
sb.AppendLine(Localization.Device_supports_only_ST_clocking);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case SPIClocking.DT:
sb.AppendLine(Localization.Device_supports_only_DT_clocking);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case SPIClocking.Reserved:
sb.AppendLine(Localization.Reserved_value_0x02_found_in_SPI_clocking_field);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case SPIClocking.STandDT:
sb.AppendLine(Localization.Device_supports_ST_and_DT_clocking);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Unknown_value_in_SPI_clocking_field_0, response.Clocking).AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
if(response.VersionDescriptors != null)
2023-10-03 23:09:28 +01:00
{
2022-03-06 13:29:37 +00:00
foreach(ushort VersionDescriptor in response.VersionDescriptors)
2023-10-03 23:09:28 +01:00
{
2022-03-06 13:29:37 +00:00
switch(VersionDescriptor)
{
case 0xFFFF:
2023-10-03 23:09:28 +01:00
case 0x0000:
break;
2022-03-06 13:29:37 +00:00
case 0x0020:
sb.AppendLine(Localization.Device_complies_with_SAM_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x003B:
sb.AppendLine(Localization.Device_complies_with_SAM_T10_0994_D_revision_18);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x003C:
sb.AppendLine(Localization.Device_complies_with_SAM_ANSI_INCITS_270_1996);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0040:
sb.AppendLine(Localization.Device_complies_with_SAM_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0054:
sb.AppendLine(Localization.Device_complies_with_SAM_2_T10_1157_D_revision_23);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0055:
sb.AppendLine(Localization.Device_complies_with_SAM_2_T10_1157_D_revision_24);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x005C:
sb.AppendLine(Localization.Device_complies_with_SAM_2_ANSI_INCITS_366_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x005E:
sb.AppendLine(Localization.Device_complies_with_SAM_2_ISO_IEC_14776_412);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0060:
sb.AppendLine(Localization.Device_complies_with_SAM_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0062:
sb.AppendLine(Localization.Device_complies_with_SAM_3_T10_1561_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0075:
sb.AppendLine(Localization.Device_complies_with_SAM_3_T10_1561_D_revision_13);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0076:
sb.AppendLine(Localization.Device_complies_with_SAM_3_T10_1561_D_revision_14);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0077:
sb.AppendLine(Localization.Device_complies_with_SAM_3_ANSI_INCITS_402_2005);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0080:
sb.AppendLine(Localization.Device_complies_with_SAM_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0087:
sb.AppendLine(Localization.Device_complies_with_SAM_4_T10_1683_D_revision_13);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x008B:
sb.AppendLine(Localization.Device_complies_with_SAM_4_T10_1683_D_revision_14);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0090:
sb.AppendLine(Localization.Device_complies_with_SAM_4_ANSI_INCITS_447_2008);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0092:
sb.AppendLine(Localization.Device_complies_with_SAM_4_ISO_IEC_14776_414);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x00A0:
sb.AppendLine(Localization.Device_complies_with_SAM_5_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x00A2:
sb.AppendLine(Localization.Device_complies_with_SAM_5_T10_2104_D_revision_4);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x00A4:
sb.AppendLine(Localization.Device_complies_with_SAM_5_T10_2104_D_revision_20);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x00A6:
sb.AppendLine(Localization.Device_complies_with_SAM_5_T10_2104_D_revision_21);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x00C0:
sb.AppendLine(Localization.Device_complies_with_SAM_6_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0120:
sb.AppendLine(Localization.Device_complies_with_SPC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x013B:
sb.AppendLine(Localization.Device_complies_with_SPC_T10_0995_D_revision_11a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x013C:
sb.AppendLine(Localization.Device_complies_with_SPC_ANSI_INCITS_301_1997);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0140:
sb.AppendLine(Localization.Device_complies_with_MMC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x015B:
sb.AppendLine(Localization.Device_complies_with_MMC_T10_1048_D_revision_10a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x015C:
sb.AppendLine(Localization.Device_complies_with_MMC_ANSI_INCITS_304_1997);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0160:
sb.AppendLine(Localization.Device_complies_with_SCC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x017B:
sb.AppendLine(Localization.Device_complies_with_SCC_T10_1047_D_revision_06c);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x017C:
sb.AppendLine(Localization.Device_complies_with_SCC_ANSI_INCITS_276_1997);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0180:
sb.AppendLine(Localization.Device_complies_with_SBC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x019B:
sb.AppendLine(Localization.Device_complies_with_SBC_T10_0996_D_revision_08c);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x019C:
sb.AppendLine(Localization.Device_complies_with_SBC_ANSI_INCITS_306_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01A0:
sb.AppendLine(Localization.Device_complies_with_SMC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01BB:
sb.AppendLine(Localization.Device_complies_with_SMC_T10_0999_D_revision_10a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01BC:
sb.AppendLine(Localization.Device_complies_with_SMC_ANSI_INCITS_314_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01BE:
sb.AppendLine(Localization.Device_complies_with_SMC_ISO_IEC_14776_351);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01C0:
sb.AppendLine(Localization.Device_complies_with_SES_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01DB:
sb.AppendLine(Localization.Device_complies_with_SES_T10_1212_D_revision_08b);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01DC:
sb.AppendLine(Localization.Device_complies_with_SES_ANSI_INCITS_305_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01DD:
sb.AppendLine(Localization.
Device_complies_with_SES_T10_1212_revision_08b_Amendment_ANSI_INCITS_305_AM1_2000);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01DE:
sb.AppendLine(Localization.
Device_complies_with_SES_ANSI_INCITS_305_1998_Amendment_ANSI_INCITS_305_AM1_2000);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01E0:
sb.AppendLine(Localization.Device_complies_with_SCC_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01FB:
sb.AppendLine(Localization.Device_complies_with_SCC_2_T10_1125_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x01FC:
sb.AppendLine(Localization.Device_complies_with_SCC_2_ANSI_INCITS_318_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0200:
sb.AppendLine(Localization.Device_complies_with_SSC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0201:
sb.AppendLine(Localization.Device_complies_with_SSC_T10_0997_D_revision_17);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0207:
sb.AppendLine(Localization.Device_complies_with_SSC_T10_0997_D_revision_22);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x021C:
sb.AppendLine(Localization.Device_complies_with_SSC_ANSI_INCITS_335_2000);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0220:
sb.AppendLine(Localization.Device_complies_with_RBC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0238:
sb.AppendLine(Localization.Device_complies_with_RBC_T10_1240_D_revision_10a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x023C:
sb.AppendLine(Localization.Device_complies_with_RBC_ANSI_INCITS_330_2000);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0240:
sb.AppendLine(Localization.Device_complies_with_MMC_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0255:
sb.AppendLine(Localization.Device_complies_with_MMC_2_T10_1228_D_revision_11);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x025B:
sb.AppendLine(Localization.Device_complies_with_MMC_2_T10_1228_D_revision_11a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x025C:
sb.AppendLine(Localization.Device_complies_with_MMC_2_ANSI_INCITS_333_2000);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0260:
sb.AppendLine(Localization.Device_complies_with_SPC_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0267:
sb.AppendLine(Localization.Device_complies_with_SPC_2_T10_1236_D_revision_12);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0269:
sb.AppendLine(Localization.Device_complies_with_SPC_2_T10_1236_D_revision_18);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0275:
sb.AppendLine(Localization.Device_complies_with_SPC_2_T10_1236_D_revision_19);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0276:
sb.AppendLine(Localization.Device_complies_with_SPC_2_T10_1236_D_revision_20);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0277:
sb.AppendLine(Localization.Device_complies_with_SPC_2_ANSI_INCITS_351_2001);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0278:
sb.AppendLine(Localization.Device_complies_with_SPC_2_ISO_IEC_14776_452);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0280:
sb.AppendLine(Localization.Device_complies_with_OCRW_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x029E:
sb.AppendLine(Localization.Device_complies_with_OCRW_ISO_IEC_14776_381);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02A0:
sb.AppendLine(Localization.Device_complies_with_MMC_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02B5:
sb.AppendLine(Localization.Device_complies_with_MMC_3_T10_1363_D_revision_9);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02B6:
sb.AppendLine(Localization.Device_complies_with_MMC_3_T10_1363_D_revision_10g);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02B8:
sb.AppendLine(Localization.Device_complies_with_MMC_3_ANSI_INCITS_360_2002);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02E0:
sb.AppendLine(Localization.Device_complies_with_SMC_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02F5:
sb.AppendLine(Localization.Device_complies_with_SMC_2_T10_1383_D_revision_5);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02FC:
sb.AppendLine(Localization.Device_complies_with_SMC_2_T10_1383_D_revision_6);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02FD:
sb.AppendLine(Localization.Device_complies_with_SMC_2_T10_1383_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x02FE:
sb.AppendLine(Localization.Device_complies_with_SMC_2_ANSI_INCITS_382_2004);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0300:
sb.AppendLine(Localization.Device_complies_with_SPC_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0301:
sb.AppendLine(Localization.Device_complies_with_SPC_3_T10_1416_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0307:
sb.AppendLine(Localization.Device_complies_with_SPC_3_T10_1416_D_revision_21);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x030F:
sb.AppendLine(Localization.Device_complies_with_SPC_3_T10_1416_D_revision_22);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0312:
sb.AppendLine(Localization.Device_complies_with_SPC_3_T10_1416_D_revision_23);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0314:
sb.AppendLine(Localization.Device_complies_with_SPC_3_ANSI_INCITS_408_2005);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0316:
sb.AppendLine(Localization.Device_complies_with_SPC_3_ISO_IEC_14776_453);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0320:
sb.AppendLine(Localization.Device_complies_with_SBC_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0322:
sb.AppendLine(Localization.Device_complies_with_SBC_2_T10_1417_D_revision_5a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0324:
sb.AppendLine(Localization.Device_complies_with_SBC_2_T10_1417_D_revision_15);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x033B:
sb.AppendLine(Localization.Device_complies_with_SBC_2_T10_1417_D_revision_16);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x033D:
sb.AppendLine(Localization.Device_complies_with_SBC_2_ANSI_INCITS_405_2005);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x033E:
sb.AppendLine(Localization.Device_complies_with_SBC_2_ISO_IEC_14776_322);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0340:
sb.AppendLine(Localization.Device_complies_with_OSD_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0341:
sb.AppendLine(Localization.Device_complies_with_OSD_T10_1355_D_revision_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0342:
sb.AppendLine(Localization.Device_complies_with_OSD_T10_1355_D_revision_7a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0343:
sb.AppendLine(Localization.Device_complies_with_OSD_T10_1355_D_revision_8);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0344:
sb.AppendLine(Localization.Device_complies_with_OSD_T10_1355_D_revision_9);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0355:
sb.AppendLine(Localization.Device_complies_with_OSD_T10_1355_D_revision_10);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0356:
sb.AppendLine(Localization.Device_complies_with_OSD_ANSI_INCITS_400_2004);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0360:
sb.AppendLine(Localization.Device_complies_with_SSC_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0374:
sb.AppendLine(Localization.Device_complies_with_SSC_2_T10_1434_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0375:
sb.AppendLine(Localization.Device_complies_with_SSC_2_T10_1434_D_revision_9);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x037D:
sb.AppendLine(Localization.Device_complies_with_SSC_2_ANSI_INCITS_380_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0380:
sb.AppendLine(Localization.Device_complies_with_BCC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03A0:
sb.AppendLine(Localization.Device_complies_with_MMC_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03B0:
sb.AppendLine(Localization.Device_complies_with_MMC_4_T10_1545_D_revision_5);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03B1:
sb.AppendLine(Localization.Device_complies_with_MMC_4_T10_1545_D_revision_5a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03BD:
sb.AppendLine(Localization.Device_complies_with_MMC_4_T10_1545_D_revision_3);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03BE:
sb.AppendLine(Localization.Device_complies_with_MMC_4_T10_1545_D_revision_3d);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03BF:
sb.AppendLine(Localization.Device_complies_with_MMC_4_ANSI_INCITS_401_2005);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03C0:
sb.AppendLine(Localization.Device_complies_with_ADC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03D5:
sb.AppendLine(Localization.Device_complies_with_ADC_T10_1558_D_revision_6);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03D6:
sb.AppendLine(Localization.Device_complies_with_ADC_T10_1558_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03D7:
sb.AppendLine(Localization.Device_complies_with_ADC_ANSI_INCITS_403_2005);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03E0:
sb.AppendLine(Localization.Device_complies_with_SES_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03E1:
sb.AppendLine(Localization.Device_complies_with_SES_2_T10_1559_D_revision_16);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03E7:
sb.AppendLine(Localization.Device_complies_with_SES_2_T10_1559_D_revision_19);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03EB:
sb.AppendLine(Localization.Device_complies_with_SES_2_T10_1559_D_revision_20);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03F0:
sb.AppendLine(Localization.Device_complies_with_SES_2_ANSI_INCITS_448_2008);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x03F2:
sb.AppendLine(Localization.Device_complies_with_SES_2_ISO_IEC_14776_372);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0400:
sb.AppendLine(Localization.Device_complies_with_SSC_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0403:
sb.AppendLine(Localization.Device_complies_with_SSC_3_T10_1611_D_revision_04a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0407:
sb.AppendLine(Localization.Device_complies_with_SSC_3_T10_1611_D_revision_05);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0409:
sb.AppendLine(Localization.Device_complies_with_SSC_3_ANSI_INCITS_467_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x040B:
sb.AppendLine(Localization.Device_complies_with_SSC_3_ISO_IEC_14776_333_2013);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0420:
sb.AppendLine(Localization.Device_complies_with_MMC_5_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x042F:
sb.AppendLine(Localization.Device_complies_with_MMC_5_T10_1675_D_revision_03);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0431:
sb.AppendLine(Localization.Device_complies_with_MMC_5_T10_1675_D_revision_03b);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0432:
sb.AppendLine(Localization.Device_complies_with_MMC_5_T10_1675_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0434:
sb.AppendLine(Localization.Device_complies_with_MMC_5_ANSI_INCITS_430_2007);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0440:
sb.AppendLine(Localization.Device_complies_with_OSD_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0444:
sb.AppendLine(Localization.Device_complies_with_OSD_2_T10_1729_D_revision_4);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0446:
sb.AppendLine(Localization.Device_complies_with_OSD_2_T10_1729_D_revision_5);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0448:
sb.AppendLine(Localization.Device_complies_with_OSD_2_ANSI_INCITS_458_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0460:
sb.AppendLine(Localization.Device_complies_with_SPC_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0461:
sb.AppendLine(Localization.Device_complies_with_SPC_4_T10_BSR_INCITS_513_revision_16);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0462:
sb.AppendLine(Localization.Device_complies_with_SPC_4_T10_BSR_INCITS_513_revision_18);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0463:
sb.AppendLine(Localization.Device_complies_with_SPC_4_T10_BSR_INCITS_513_revision_23);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0466:
sb.AppendLine(Localization.Device_complies_with_SPC_4_T10_BSR_INCITS_513_revision_36);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0468:
sb.AppendLine(Localization.Device_complies_with_SPC_4_T10_BSR_INCITS_513_revision_37);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0469:
sb.AppendLine(Localization.Device_complies_with_SPC_4_T10_BSR_INCITS_513_revision_37a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x046C:
sb.AppendLine(Localization.Device_complies_with_SPC_4_ANSI_INCITS_513_2015);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0480:
sb.AppendLine(Localization.Device_complies_with_SMC_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0482:
sb.AppendLine(Localization.Device_complies_with_SMC_3_T10_1730_D_revision_15);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0484:
sb.AppendLine(Localization.Device_complies_with_SMC_3_T10_1730_D_revision_16);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0486:
sb.AppendLine(Localization.Device_complies_with_SMC_3_ANSI_INCITS_484_2012);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04A0:
sb.AppendLine(Localization.Device_complies_with_ADC_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04A7:
sb.AppendLine(Localization.Device_complies_with_ADC_2_T10_1741_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04AA:
sb.AppendLine(Localization.Device_complies_with_ADC_2_T10_1741_D_revision_8);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04AC:
sb.AppendLine(Localization.Device_complies_with_ADC_2_ANSI_INCITS_441_2008);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04C0:
sb.AppendLine(Localization.Device_complies_with_SBC_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04C3:
sb.AppendLine(Localization.Device_complies_with_SBC_3_T10_BSR_INCITS_514_revision_35);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04C5:
sb.AppendLine(Localization.Device_complies_with_SBC_3_T10_BSR_INCITS_514_revision_36);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04C8:
sb.AppendLine(Localization.Device_complies_with_SBC_3_ANSI_INCITS_514_2014);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04E0:
sb.AppendLine(Localization.Device_complies_with_MMC_6_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04E3:
sb.AppendLine(Localization.Device_complies_with_MMC_6_T10_1836_D_revision_02b);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04E5:
sb.AppendLine(Localization.Device_complies_with_MMC_6_T10_1836_D_revision_02g);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04E6:
sb.AppendLine(Localization.Device_complies_with_MMC_6_ANSI_INCITS_468_2010);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x04E7:
sb.AppendLine(Localization.
Device_complies_with_MMC_6_ANSI_INCITS_468_2010_MMC_6_AM1_ANSI_INCITS_468_2010_AM_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0500:
sb.AppendLine(Localization.Device_complies_with_ADC_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0502:
sb.AppendLine(Localization.Device_complies_with_ADC_3_T10_1895_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0504:
sb.AppendLine(Localization.Device_complies_with_ADC_3_T10_1895_D_revision_05);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0506:
sb.AppendLine(Localization.Device_complies_with_ADC_3_T10_1895_D_revision_05a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x050A:
sb.AppendLine(Localization.Device_complies_with_ADC_3_ANSI_INCITS_497_2012);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0520:
sb.AppendLine(Localization.Device_complies_with_SSC_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0523:
sb.AppendLine(Localization.Device_complies_with_SSC_4_T10_BSR_INCITS_516_revision_2);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0525:
sb.AppendLine(Localization.Device_complies_with_SSC_4_T10_BSR_INCITS_516_revision_3);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0527:
sb.AppendLine(Localization.Device_complies_with_SSC_4_ANSI_INCITS_516_2013);
2022-03-06 13:29:37 +00:00
break;
case 0x0560:
sb.AppendLine(Localization.Device_complies_with_OSD_3_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x0580:
sb.AppendLine(Localization.Device_complies_with_SES_3_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x05A0:
sb.AppendLine(Localization.Device_complies_with_SSC_5_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x05C0:
sb.AppendLine(Localization.Device_complies_with_SPC_5_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x05E0:
sb.AppendLine(Localization.Device_complies_with_SFSC_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x05E3:
sb.AppendLine(Localization.Device_complies_with_SFSC_BSR_INCITS_501_revision_01);
2022-03-06 13:29:37 +00:00
break;
case 0x0600:
sb.AppendLine(Localization.Device_complies_with_SBC_4_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x0620:
sb.AppendLine(Localization.Device_complies_with_ZBC_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x0622:
sb.AppendLine(Localization.Device_complies_with_ZBC_BSR_INCITS_536_revision_02);
2022-03-06 13:29:37 +00:00
break;
case 0x0640:
sb.AppendLine(Localization.Device_complies_with_ADC_4_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x0820:
sb.AppendLine(Localization.Device_complies_with_SSA_TL2_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x083B:
sb.AppendLine(Localization.Device_complies_with_SSA_TL2_T10_1_1147_D_revision_05b);
2022-03-06 13:29:37 +00:00
break;
case 0x083C:
sb.AppendLine(Localization.Device_complies_with_SSA_TL2_ANSI_INCITS_308_1998);
2022-03-06 13:29:37 +00:00
break;
case 0x0840:
sb.AppendLine(Localization.Device_complies_with_SSA_TL1_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x085B:
sb.AppendLine(Localization.Device_complies_with_SSA_TL1_T10_1_0989_D_revision_10b);
2022-03-06 13:29:37 +00:00
break;
case 0x085C:
sb.AppendLine(Localization.Device_complies_with_SSA_TL1_ANSI_INCITS_295_1996);
2022-03-06 13:29:37 +00:00
break;
case 0x0860:
sb.AppendLine(Localization.Device_complies_with_SSA_S3P_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x087B:
sb.AppendLine(Localization.Device_complies_with_SSA_S3P_T10_1_1051_D_revision_05b);
2022-03-06 13:29:37 +00:00
break;
case 0x087C:
sb.AppendLine(Localization.Device_complies_with_SSA_S3P_ANSI_INCITS_309_1998);
2022-03-06 13:29:37 +00:00
break;
case 0x0880:
sb.AppendLine(Localization.Device_complies_with_SSA_S2P_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x089B:
sb.AppendLine(Localization.Device_complies_with_SSA_S2P_T10_1_1121_D_revision_07b);
2022-03-06 13:29:37 +00:00
break;
case 0x089C:
sb.AppendLine(Localization.Device_complies_with_SSA_S2P_ANSI_INCITS_294_1996);
2022-03-06 13:29:37 +00:00
break;
case 0x08A0:
sb.AppendLine(Localization.Device_complies_with_SIP_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x08BB:
sb.AppendLine(Localization.Device_complies_with_SIP_T10_0856_D_revision_10);
2022-03-06 13:29:37 +00:00
break;
case 0x08BC:
sb.AppendLine(Localization.Device_complies_with_SIP_ANSI_INCITS_292_1997);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x08C0:
sb.AppendLine(Localization.Device_complies_with_FCP_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x08DB:
sb.AppendLine(Localization.Device_complies_with_FCP_T10_0993_D_revision_12);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x08DC:
sb.AppendLine(Localization.Device_complies_with_FCP_ANSI_INCITS_269_1996);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x08E0:
sb.AppendLine(Localization.Device_complies_with_SBP_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x08FB:
sb.AppendLine(Localization.Device_complies_with_SBP_2_T10_1155_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x08FC:
sb.AppendLine(Localization.Device_complies_with_SBP_2_ANSI_INCITS_325_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0900:
sb.AppendLine(Localization.Device_complies_with_FCP_2_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x0901:
sb.AppendLine(Localization.Device_complies_with_FCP_2_T10_1144_D_revision_4);
2022-03-06 13:29:37 +00:00
break;
case 0x0915:
sb.AppendLine(Localization.Device_complies_with_FCP_2_T10_1144_D_revision_7);
2022-03-06 13:29:37 +00:00
break;
case 0x0916:
sb.AppendLine(Localization.Device_complies_with_FCP_2_T10_1144_D_revision_7a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0917:
sb.AppendLine(Localization.Device_complies_with_FCP_2_ANSI_INCITS_350_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0918:
sb.AppendLine(Localization.Device_complies_with_FCP_2_T10_1144_D_revision_8);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0920:
sb.AppendLine(Localization.Device_complies_with_SST_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0935:
sb.AppendLine(Localization.Device_complies_with_SST_T10_1380_D_revision_8b);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0940:
sb.AppendLine(Localization.Device_complies_with_SRP_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0954:
sb.AppendLine(Localization.Device_complies_with_SRP_T10_1415_D_revision_10);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0955:
sb.AppendLine(Localization.Device_complies_with_SRP_T10_1415_D_revision_16a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x095C:
sb.AppendLine(Localization.Device_complies_with_SRP_ANSI_INCITS_365_2002);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0960:
sb.AppendLine(Localization.Device_complies_with_iSCSI_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0961:
case 0x0962:
case 0x0963:
case 0x0964:
case 0x0965:
case 0x0966:
case 0x0967:
case 0x0968:
case 0x0969:
case 0x096A:
case 0x096B:
case 0x096C:
case 0x096D:
case 0x096E:
case 0x096F:
case 0x0970:
case 0x0971:
case 0x0972:
case 0x0973:
case 0x0974:
case 0x0975:
case 0x0976:
case 0x0977:
case 0x0978:
case 0x0979:
case 0x097A:
case 0x097B:
case 0x097C:
case 0x097D:
case 0x097E:
case 0x097F:
sb.AppendFormat(Localization.Device_complies_with_iSCSI_revision_0, VersionDescriptor & 0x1F).
2022-03-06 13:29:37 +00:00
AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0980:
sb.AppendLine(Localization.Device_complies_with_SBP_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0982:
sb.AppendLine(Localization.Device_complies_with_SBP_3_T10_1467_D_revision_1f);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0994:
sb.AppendLine(Localization.Device_complies_with_SBP_3_T10_1467_D_revision_3);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x099A:
sb.AppendLine(Localization.Device_complies_with_SBP_3_T10_1467_D_revision_4);
2022-03-06 13:29:37 +00:00
break;
case 0x099B:
sb.AppendLine(Localization.Device_complies_with_SBP_3_T10_1467_D_revision_5);
2022-03-06 13:29:37 +00:00
break;
case 0x099C:
sb.AppendLine(Localization.Device_complies_with_SBP_3_ANSI_INCITS_375_2004);
2022-03-06 13:29:37 +00:00
break;
case 0x09C0:
sb.AppendLine(Localization.Device_complies_with_ADP_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x09E0:
sb.AppendLine(Localization.Device_complies_with_ADT_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x09F9:
sb.AppendLine(Localization.Device_complies_with_ADT_T10_1557_D_revision_11);
2022-03-06 13:29:37 +00:00
break;
case 0x09FA:
sb.AppendLine(Localization.Device_complies_with_ADT_T10_1557_D_revision_14);
2022-03-06 13:29:37 +00:00
break;
case 0x09FD:
sb.AppendLine(Localization.Device_complies_with_ADT_ANSI_INCITS_406_2005);
2022-03-06 13:29:37 +00:00
break;
case 0x0A00:
sb.AppendLine(Localization.Device_complies_with_FCP_3_no_version_claimed);
2022-03-06 13:29:37 +00:00
break;
case 0x0A07:
sb.AppendLine(Localization.Device_complies_with_FCP_3_T10_1560_D_revision_3f);
2022-03-06 13:29:37 +00:00
break;
case 0x0A0F:
sb.AppendLine(Localization.Device_complies_with_FCP_3_T10_1560_D_revision_4);
2022-03-06 13:29:37 +00:00
break;
case 0x0A11:
sb.AppendLine(Localization.Device_complies_with_FCP_3_ANSI_INCITS_416_2006);
2022-03-06 13:29:37 +00:00
break;
case 0x0A1C:
sb.AppendLine(Localization.Device_complies_with_FCP_3_ISO_IEC_14776_223);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A20:
sb.AppendLine(Localization.Device_complies_with_ADT_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A22:
sb.AppendLine(Localization.Device_complies_with_ADT_2_T10_1742_D_revision_06);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A27:
sb.AppendLine(Localization.Device_complies_with_ADT_2_T10_1742_D_revision_08);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A28:
sb.AppendLine(Localization.Device_complies_with_ADT_2_T10_1742_D_revision_09);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A2B:
sb.AppendLine(Localization.Device_complies_with_ADT_2_ANSI_INCITS_472_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A40:
sb.AppendLine(Localization.Device_complies_with_FCP_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A42:
sb.AppendLine(Localization.Device_complies_with_FCP_4_T10_1828_D_revision_01);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A44:
sb.AppendLine(Localization.Device_complies_with_FCP_4_T10_1828_D_revision_02);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A45:
sb.AppendLine(Localization.Device_complies_with_FCP_4_T10_1828_D_revision_02b);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A46:
sb.AppendLine(Localization.Device_complies_with_FCP_4_ANSI_INCITS_481_2012);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0A60:
sb.AppendLine(Localization.Device_complies_with_ADT_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0AA0:
sb.AppendLine(Localization.Device_complies_with_SPI_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0AB9:
sb.AppendLine(Localization.Device_complies_with_SPI_T10_0855_D_revision_15a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0ABA:
sb.AppendLine(Localization.Device_complies_with_SPI_ANSI_INCITS_253_1995);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0ABB:
sb.AppendLine(Localization.
Device_complies_with_SPI_T10_0855_D_revision_15a_with_SPI_Amnd_revision_3a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0ABC:
sb.AppendLine(Localization.
Device_complies_with_SPI_ANSI_INCITS_253_1995_with_SPI_Amnd_ANSI_INCITS_253_AM1_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0AC0:
sb.AppendLine(Localization.Device_complies_with_Fast_20_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0ADB:
sb.AppendLine(Localization.Device_complies_with_Fast_20_T10_1071_revision_06);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0ADC:
sb.AppendLine(Localization.Device_complies_with_Fast_20_ANSI_INCITS_277_1996);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0AE0:
sb.AppendLine(Localization.Device_complies_with_SPI_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0AFB:
sb.AppendLine(Localization.Device_complies_with_SPI_2_T10_1142_D_revision_20b);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0AFC:
sb.AppendLine(Localization.Device_complies_with_SPI_2_ANSI_INCITS_302_1999);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B00:
sb.AppendLine(Localization.Device_complies_with_SPI_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B18:
sb.AppendLine(Localization.Device_complies_with_SPI_3_T10_1302_D_revision_10);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B19:
sb.AppendLine(Localization.Device_complies_with_SPI_3_T10_1302_D_revision_13a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B1A:
sb.AppendLine(Localization.Device_complies_with_SPI_3_T10_1302_D_revision_14);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B1C:
sb.AppendLine(Localization.Device_complies_with_SPI_3_ANSI_INCITS_336_2000);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B20:
sb.AppendLine(Localization.Device_complies_with_EPI_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B3B:
sb.AppendLine(Localization.Device_complies_with_EPI_T10_1134_revision_16);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B3C:
sb.AppendLine(Localization.Device_complies_with_EPI_ANSI_INCITS_TR_23_1999);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B40:
sb.AppendLine(Localization.Device_complies_with_SPI_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B54:
sb.AppendLine(Localization.Device_complies_with_SPI_4_T10_1365_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B55:
sb.AppendLine(Localization.Device_complies_with_SPI_4_T10_1365_D_revision_9);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B56:
sb.AppendLine(Localization.Device_complies_with_SPI_4_ANSI_INCITS_362_2002);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B59:
sb.AppendLine(Localization.Device_complies_with_SPI_4_T10_1365_D_revision_10);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B60:
sb.AppendLine(Localization.Device_complies_with_SPI_5_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B79:
sb.AppendLine(Localization.Device_complies_with_SPI_5_T10_1525_D_revision_3);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B7A:
sb.AppendLine(Localization.Device_complies_with_SPI_5_T10_1525_D_revision_5);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B7B:
sb.AppendLine(Localization.Device_complies_with_SPI_5_T10_1525_D_revision_6);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0B7C:
sb.AppendLine(Localization.Device_complies_with_SPI_5_ANSI_INCITS_367_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0BE0:
sb.AppendLine(Localization.Device_complies_with_SAS_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0BE1:
sb.AppendLine(Localization.Device_complies_with_SAS_T10_1562_D_revision_01);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0BF5:
sb.AppendLine(Localization.Device_complies_with_SAS_T10_1562_D_revision_03);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0BFA:
sb.AppendLine(Localization.Device_complies_with_SAS_T10_1562_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0BFB:
sb.AppendLine(Localization.Device_complies_with_SAS_T10_1562_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0BFC:
sb.AppendLine(Localization.Device_complies_with_SAS_T10_1562_D_revision_05);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0BFD:
sb.AppendLine(Localization.Device_complies_with_SAS_ANSI_INCITS_376_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C00:
sb.AppendLine(Localization.Device_complies_with_SAS_1_1_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C07:
sb.AppendLine(Localization.Device_complies_with_SAS_1_1_T10_1601_D_revision_9);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C0F:
sb.AppendLine(Localization.Device_complies_with_SAS_1_1_T10_1601_D_revision_10);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C11:
sb.AppendLine(Localization.Device_complies_with_SAS_1_1_ANSI_INCITS_417_2006);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C12:
sb.AppendLine(Localization.Device_complies_with_SAS_1_1_ISO_IEC_14776_151);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C20:
sb.AppendLine(Localization.Device_complies_with_SAS_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C23:
sb.AppendLine(Localization.Device_complies_with_SAS_2_T10_1760_D_revision_14);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C27:
sb.AppendLine(Localization.Device_complies_with_SAS_2_T10_1760_D_revision_15);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C28:
sb.AppendLine(Localization.Device_complies_with_SAS_2_T10_1760_D_revision_16);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C2A:
sb.AppendLine(Localization.Device_complies_with_SAS_2_ANSI_INCITS_457_2010);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C40:
sb.AppendLine(Localization.Device_complies_with_SAS_2_1_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C48:
sb.AppendLine(Localization.Device_complies_with_SAS_2_1_T10_2125_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C4A:
sb.AppendLine(Localization.Device_complies_with_SAS_2_1_T10_2125_D_revision_06);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C4B:
sb.AppendLine(Localization.Device_complies_with_SAS_2_1_T10_2125_D_revision_07);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C4E:
sb.AppendLine(Localization.Device_complies_with_SAS_2_1_ANSI_INCITS_478_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C4F:
sb.AppendLine(Localization.
Device_complies_with_SAS_2_1_ANSI_INCITS_478_2011_w__Amnd_1_ANSI_INCITS_478_AM1_2014);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C52:
sb.AppendLine(Localization.Device_complies_with_SAS_2_1_ISO_IEC_14776_153);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C60:
sb.AppendLine(Localization.Device_complies_with_SAS_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C63:
sb.AppendLine(Localization.Device_complies_with_SAS_3_T10_BSR_INCITS_519_revision_05a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C65:
sb.AppendLine(Localization.Device_complies_with_SAS_3_T10_BSR_INCITS_519_revision_06);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C68:
sb.AppendLine(Localization.Device_complies_with_SAS_3_ANSI_INCITS_519_2014);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0C80:
sb.AppendLine(Localization.Device_complies_with_SAS_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D20:
sb.AppendLine(Localization.Device_complies_with_FC_PH_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D3B:
sb.AppendLine(Localization.Device_complies_with_FC_PH_ANSI_INCITS_230_1994);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D3C:
sb.AppendLine(Localization.
Device_complies_with_FC_PH_ANSI_INCITS_230_1994_with_Amnd_1_ANSI_INCITS_230_AM1_1996);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D40:
sb.AppendLine(Localization.Device_complies_with_FC_AL_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D5C:
sb.AppendLine(Localization.Device_complies_with_FC_AL_ANSI_INCITS_272_1996);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D60:
sb.AppendLine(Localization.Device_complies_with_FC_AL_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D61:
sb.AppendLine(Localization.Device_complies_with_FC_AL_2_T11_1133_D_revision_7_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D63:
sb.AppendLine(Localization.
Device_complies_with_FC_AL_2_ANSI_INCITS_332_1999_with_AM1_2003___AM2_2006);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D64:
sb.AppendLine(Localization.
Device_complies_with_FC_AL_2_ANSI_INCITS_332_1999_with_Amnd_2_AM2_2006);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D65:
sb.AppendLine(Localization.Device_complies_with_FC_AL_2_ISO_IEC_14165_122_with_AM1___AM2);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D7C:
sb.AppendLine(Localization.Device_complies_with_FC_AL_2_ANSI_INCITS_332_1999);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D7D:
sb.AppendLine(Localization.
Device_complies_with_FC_AL_2_ANSI_INCITS_332_1999_with_Amnd_1_AM1_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D80:
sb.AppendLine(Localization.Device_complies_with_FC_PH_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0D9C:
sb.AppendLine(Localization.Device_complies_with_FC_PH_3_ANSI_INCITS_303_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DA0:
sb.AppendLine(Localization.Device_complies_with_FC_FS_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DB7:
sb.AppendLine(Localization.Device_complies_with_FC_FS_T11_1331_D_revision_1_2);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DB8:
sb.AppendLine(Localization.Device_complies_with_FC_FS_T11_1331_D_revision_1_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DBC:
sb.AppendLine(Localization.Device_complies_with_FC_FS_ANSI_INCITS_373_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DBD:
sb.AppendLine(Localization.Device_complies_with_FC_FS_ISO_IEC_14165_251);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DC0:
sb.AppendLine(Localization.Device_complies_with_FC_PI_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DDC:
sb.AppendLine(Localization.Device_complies_with_FC_PI_ANSI_INCITS_352_2002);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DE0:
sb.AppendLine(Localization.Device_complies_with_FC_PI_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DE2:
sb.AppendLine(Localization.Device_complies_with_FC_PI_2_T11_1506_D_revision_5_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0DE4:
sb.AppendLine(Localization.Device_complies_with_FC_PI_2_ANSI_INCITS_404_2006);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E00:
sb.AppendLine(Localization.Device_complies_with_FC_FS_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E02:
sb.AppendLine(Localization.Device_complies_with_FC_FS_2_ANSI_INCITS_242_2007);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E03:
sb.AppendLine(Localization.
Device_complies_with_FC_FS_2_ANSI_INCITS_242_2007_with_AM1_ANSI_INCITS_242_AM1_2007);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E20:
sb.AppendLine(Localization.Device_complies_with_FC_LS_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E21:
sb.AppendLine(Localization.Device_complies_with_FC_LS_T11_1620_D_revision_1_62);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E29:
sb.AppendLine(Localization.Device_complies_with_FC_LS_ANSI_INCITS_433_2007);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E40:
sb.AppendLine(Localization.Device_complies_with_FC_SP_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E42:
sb.AppendLine(Localization.Device_complies_with_FC_SP_T11_1570_D_revision_1_6);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E45:
sb.AppendLine(Localization.Device_complies_with_FC_SP_ANSI_INCITS_426_2007);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E60:
sb.AppendLine(Localization.Device_complies_with_FC_PI_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E62:
sb.AppendLine(Localization.Device_complies_with_FC_PI_3_T11_1625_D_revision_2_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E68:
sb.AppendLine(Localization.Device_complies_with_FC_PI_3_T11_1625_D_revision_2_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E6A:
sb.AppendLine(Localization.Device_complies_with_FC_PI_3_T11_1625_D_revision_4_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E6E:
sb.AppendLine(Localization.Device_complies_with_FC_PI_3_ANSI_INCITS_460_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E80:
sb.AppendLine(Localization.Device_complies_with_FC_PI_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E82:
sb.AppendLine(Localization.Device_complies_with_FC_PI_4_T11_1647_D_revision_8_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0E88:
sb.AppendLine(Localization.Device_complies_with_FC_PI_4_ANSI_INCITS_450_2009);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EA0:
sb.AppendLine(Localization.Device_complies_with_FC_10GFC_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EA2:
sb.AppendLine(Localization.Device_complies_with_FC_10GFC_ANSI_INCITS_364_2003);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EA3:
sb.AppendLine(Localization.Device_complies_with_FC_10GFC_ISO_IEC_14165_116);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EA5:
sb.AppendLine(Localization.Device_complies_with_FC_10GFC_ISO_IEC_14165_116_with_AM1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EA6:
sb.AppendLine(Localization.
Device_complies_with_FC_10GFC_ANSI_INCITS_364_2003_with_AM1_ANSI_INCITS_364_AM1_2007);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EC0:
sb.AppendLine(Localization.Device_complies_with_FC_SP_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EE0:
sb.AppendLine(Localization.Device_complies_with_FC_FS_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EE2:
sb.AppendLine(Localization.Device_complies_with_FC_FS_3_T11_1861_D_revision_0_9);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EE7:
sb.AppendLine(Localization.Device_complies_with_FC_FS_3_T11_1861_D_revision_1_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EE9:
sb.AppendLine(Localization.Device_complies_with_FC_FS_3_T11_1861_D_revision_1_10);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0EEB:
sb.AppendLine(Localization.Device_complies_with_FC_FS_3_ANSI_INCITS_470_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F00:
sb.AppendLine(Localization.Device_complies_with_FC_LS_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F03:
sb.AppendLine(Localization.Device_complies_with_FC_LS_2_T11_2103_D_revision_2_11);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F05:
sb.AppendLine(Localization.Device_complies_with_FC_LS_2_T11_2103_D_revision_2_21);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F07:
sb.AppendLine(Localization.Device_complies_with_FC_LS_2_ANSI_INCITS_477_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F20:
sb.AppendLine(Localization.Device_complies_with_FC_PI_5_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F27:
sb.AppendLine(Localization.Device_complies_with_FC_PI_5_T11_2118_D_revision_2_00);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F28:
sb.AppendLine(Localization.Device_complies_with_FC_PI_5_T11_2118_D_revision_3_00);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F2A:
sb.AppendLine(Localization.Device_complies_with_FC_PI_5_T11_2118_D_revision_6_00);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F2B:
sb.AppendLine(Localization.Device_complies_with_FC_PI_5_T11_2118_D_revision_6_10);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F2E:
sb.AppendLine(Localization.Device_complies_with_FC_PI_5_ANSI_INCITS_479_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F40:
sb.AppendLine(Localization.Device_complies_with_FC_PI_6_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F60:
sb.AppendLine(Localization.Device_complies_with_FC_FS_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x0F80:
sb.AppendLine(Localization.Device_complies_with_FC_LS_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12A0:
sb.AppendLine(Localization.Device_complies_with_FC_SCM_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12A3:
sb.AppendLine(Localization.Device_complies_with_FC_SCM_T11_1824DT_revision_1_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12A5:
sb.AppendLine(Localization.Device_complies_with_FC_SCM_T11_1824DT_revision_1_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12A7:
sb.AppendLine(Localization.Device_complies_with_FC_SCM_T11_1824DT_revision_1_4);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12AA:
sb.AppendLine(Localization.Device_complies_with_FC_SCM_INCITS_TR_47_2012);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12C0:
sb.AppendLine(Localization.Device_complies_with_FC_DA_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12C3:
sb.AppendLine(Localization.Device_complies_with_FC_DA_2_T11_1870DT_revision_1_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12C5:
sb.AppendLine(Localization.Device_complies_with_FC_DA_2_T11_1870DT_revision_1_06);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12C9:
sb.AppendLine(Localization.Device_complies_with_FC_DA_2_INCITS_TR_49_2012);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12E0:
sb.AppendLine(Localization.Device_complies_with_FC_DA_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12E2:
sb.AppendLine(Localization.Device_complies_with_FC_DA_T11_1513_DT_revision_3_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12E8:
sb.AppendLine(Localization.Device_complies_with_FC_DA_ANSI_INCITS_TR_36_2004);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x12E9:
sb.AppendLine(Localization.Device_complies_with_FC_DA_ISO_IEC_14165_341);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1300:
sb.AppendLine(Localization.Device_complies_with_FC_Tape_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1301:
sb.AppendLine(Localization.Device_complies_with_FC_Tape_T11_1315_revision_1_16);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x131B:
sb.AppendLine(Localization.Device_complies_with_FC_Tape_T11_1315_revision_1_17);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x131C:
sb.AppendLine(Localization.Device_complies_with_FC_Tape_ANSI_INCITS_TR_24_1999);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1320:
sb.AppendLine(Localization.Device_complies_with_FC_FLA_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x133B:
sb.AppendLine(Localization.Device_complies_with_FC_FLA_T11_1235_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x133C:
sb.AppendLine(Localization.Device_complies_with_FC_FLA_ANSI_INCITS_TR_20_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1340:
sb.AppendLine(Localization.Device_complies_with_FC_PLDA_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x135B:
sb.AppendLine(Localization.Device_complies_with_FC_PLDA_T11_1162_revision_2_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x135C:
sb.AppendLine(Localization.Device_complies_with_FC_PLDA_ANSI_INCITS_TR_19_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1360:
sb.AppendLine(Localization.Device_complies_with_SSA_PH2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x137B:
sb.AppendLine(Localization.Device_complies_with_SSA_PH2_T10_1_1145_D_revision_09c);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x137C:
sb.AppendLine(Localization.Device_complies_with_SSA_PH2_ANSI_INCITS_293_1996);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1380:
sb.AppendLine(Localization.Device_complies_with_SSA_PH3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x139B:
sb.AppendLine(Localization.Device_complies_with_SSA_PH3_T10_1_1146_D_revision_05b);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x139C:
sb.AppendLine(Localization.Device_complies_with_SSA_PH3_ANSI_INCITS_307_1998);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x14A0:
sb.AppendLine(Localization.Device_complies_with_IEEE_1394_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x14BD:
sb.AppendLine(Localization.Device_complies_with_ANSI_IEEE_1394_1995);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x14C0:
sb.AppendLine(Localization.Device_complies_with_IEEE_1394a_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x14E0:
sb.AppendLine(Localization.Device_complies_with_IEEE_1394b_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x15E0:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_6_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x15FD:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_6_ANSI_INCITS_361_2002);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1600:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_7_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1602:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_7_T13_1532_D_revision_3);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x161C:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_7_ANSI_INCITS_397_2005);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x161E:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_7_ISO_IEC_24739);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1620:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_8_ATA8_AAM_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1621:
sb.AppendLine(Localization.
Device_complies_with_ATA_ATAPI_8_ATA8_APT_Parallel_Transport_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1622:
sb.AppendLine(Localization.
Device_complies_with_ATA_ATAPI_8_ATA8_AST_Serial_Transport_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1623:
sb.AppendLine(Localization.
Device_complies_with_ATA_ATAPI_8_ATA8_ACS_ATA_ATAPI_Command_Set_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1628:
sb.AppendLine(Localization.Device_complies_with_ATA_ATAPI_8_ATA8_AAM_ANSI_INCITS_451_2008);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x162A:
sb.AppendLine(Localization.
Device_complies_with_ATA_ATAPI_8_ATA8_ACS_ANSI_INCITS_452_2009_w__Amendment_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1728:
sb.AppendLine(Localization.
Device_complies_with_Universal_Serial_Bus_Specification__Revision_1_1);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1729:
sb.AppendLine(Localization.
Device_complies_with_Universal_Serial_Bus_Specification__Revision_2_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1730:
sb.AppendLine(Localization.
Device_complies_with_USB_Mass_Storage_Class_Bulk_Only_Transport__Revision_1_0);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1740:
sb.AppendLine(Localization.Device_complies_with_UAS_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1743:
sb.AppendLine(Localization.Device_complies_with_UAS_T10_2095_D_revision_02);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1747:
sb.AppendLine(Localization.Device_complies_with_UAS_T10_2095_D_revision_04);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1748:
sb.AppendLine(Localization.Device_complies_with_UAS_ANSI_INCITS_471_2010);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1749:
sb.AppendLine(Localization.Device_complies_with_UAS_ISO_IEC_14776_251_2014);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1761:
sb.AppendLine(Localization.Device_complies_with_ACS_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1762:
sb.AppendLine(Localization.Device_complies_with_ACS_2_ANSI_INCITS_482_2013);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1765:
sb.AppendLine(Localization.Device_complies_with_ACS_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1780:
sb.AppendLine(Localization.Device_complies_with_UAS_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EA0:
sb.AppendLine(Localization.Device_complies_with_SAT_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EA7:
sb.AppendLine(Localization.Device_complies_with_SAT_T10_1711_D_revision_8);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EAB:
sb.AppendLine(Localization.Device_complies_with_SAT_T10_1711_D_revision_9);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EAD:
sb.AppendLine(Localization.Device_complies_with_SAT_ANSI_INCITS_431_2007);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EC0:
sb.AppendLine(Localization.Device_complies_with_SAT_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EC4:
sb.AppendLine(Localization.Device_complies_with_SAT_2_T10_1826_D_revision_06);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EC8:
sb.AppendLine(Localization.Device_complies_with_SAT_2_T10_1826_D_revision_09);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1ECA:
sb.AppendLine(Localization.Device_complies_with_SAT_2_ANSI_INCITS_465_2010);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EE0:
sb.AppendLine(Localization.Device_complies_with_SAT_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EE2:
sb.AppendLine(Localization.Device_complies_with_SAT_3_T10_BSR_INCITS_517_revision_4);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EE4:
sb.AppendLine(Localization.Device_complies_with_SAT_3_T10_BSR_INCITS_517_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1EE8:
sb.AppendLine(Localization.Device_complies_with_SAT_3_ANSI_INCITS_517_2015);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x1F00:
sb.AppendLine(Localization.Device_complies_with_SAT_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20A0:
sb.AppendLine(Localization.Device_complies_with_SPL_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20A3:
sb.AppendLine(Localization.Device_complies_with_SPL_T10_2124_D_revision_6a);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20A5:
sb.AppendLine(Localization.Device_complies_with_SPL_T10_2124_D_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20A7:
sb.AppendLine(Localization.Device_complies_with_SPL_ANSI_INCITS_476_2011);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20A8:
sb.AppendLine(Localization.
Device_complies_with_SPL_ANSI_INCITS_476_2011_SPL_AM1_INCITS_476_AM1_2012);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20AA:
sb.AppendLine(Localization.Device_complies_with_SPL_ISO_IEC_14776_261_2012);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20C0:
sb.AppendLine(Localization.Device_complies_with_SPL_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20C2:
sb.AppendLine(Localization.Device_complies_with_SPL_2_T10_BSR_INCITS_505_revision_4);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20C4:
sb.AppendLine(Localization.Device_complies_with_SPL_2_T10_BSR_INCITS_505_revision_5);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20C8:
sb.AppendLine(Localization.Device_complies_with_SPL_2_ANSI_INCITS_505_2013);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20E0:
sb.AppendLine(Localization.Device_complies_with_SPL_3_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20E4:
sb.AppendLine(Localization.Device_complies_with_SPL_3_T10_BSR_INCITS_492_revision_6);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20E6:
sb.AppendLine(Localization.Device_complies_with_SPL_3_T10_BSR_INCITS_492_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x20E8:
sb.AppendLine(Localization.Device_complies_with_SPL_3_ANSI_INCITS_492_2015);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x2100:
sb.AppendLine(Localization.Device_complies_with_SPL_4_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x21E0:
sb.AppendLine(Localization.Device_complies_with_SOP_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x21E4:
sb.AppendLine(Localization.Device_complies_with_SOP_T10_BSR_INCITS_489_revision_4);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x21E6:
sb.AppendLine(Localization.Device_complies_with_SOP_T10_BSR_INCITS_489_revision_5);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x21E8:
sb.AppendLine(Localization.Device_complies_with_SOP_ANSI_INCITS_489_2014);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x2200:
sb.AppendLine(Localization.Device_complies_with_PQI_no_version_claimed);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x2204:
sb.AppendLine(Localization.Device_complies_with_PQI_T10_BSR_INCITS_490_revision_6);
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
break;
case 0x2206:
sb.AppendLine(Localization.Device_complies_with_PQI_T10_BSR_INCITS_490_revision_7);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 0x2208:
sb.AppendLine(Localization.Device_complies_with_PQI_ANSI_INCITS_490_2014);
2019-11-25 00:54:38 +00:00
break;
2022-03-06 13:29:37 +00:00
case 0x2220:
sb.AppendLine(Localization.Device_complies_with_SOP_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
break;
2022-03-06 13:29:37 +00:00
case 0x2240:
sb.AppendLine(Localization.Device_complies_with_PQI_2_no_version_claimed);
2019-11-25 00:54:38 +00:00
break;
2022-03-06 13:29:37 +00:00
case 0xFFC0:
sb.AppendLine(Localization.Device_complies_with_IEEE_1667_no_version_claimed);
2019-11-25 00:54:38 +00:00
break;
2022-03-06 13:29:37 +00:00
case 0xFFC1:
sb.AppendLine(Localization.Device_complies_with_IEEE_1667_2006);
2019-11-25 00:54:38 +00:00
break;
2022-03-06 13:29:37 +00:00
case 0xFFC2:
sb.AppendLine(Localization.Device_complies_with_IEEE_1667_2009);
2019-11-25 00:54:38 +00:00
break;
default:
sb.AppendFormat(Localization.Device_complies_with_unknown_standard_code_0, VersionDescriptor).
2022-03-06 13:29:37 +00:00
AppendLine();
2019-11-25 00:54:38 +00:00
break;
}
2023-10-03 23:09:28 +01:00
}
}
#region Quantum vendor prettifying
2022-03-06 13:29:37 +00:00
if(response.QuantumPresent &&
StringHandlers.CToString(response.VendorIdentification).ToLowerInvariant().Trim() == "quantum")
{
sb.AppendLine(Localization.Quantum_vendor_specific_information);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
switch(response.Qt_ProductFamily)
{
case 0:
sb.AppendLine(Localization.Product_family_is_not_specified);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 1:
sb.AppendLine(Localization.Product_family_is_2_6_GB);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 2:
sb.AppendLine(Localization.Product_family_is_6_0_GB);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 3:
sb.AppendLine(Localization.Product_family_is_10_0_20_0_GB);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 5:
sb.AppendLine(Localization.Product_family_is_20_0_40_0_GB);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
case 6:
sb.AppendLine(Localization.Product_family_is_15_0_30_0_GB);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
default:
sb.AppendFormat(Localization.Product_family_0, response.Qt_ProductFamily).AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
break;
}
2019-11-25 00:54:38 +00:00
sb.AppendFormat(Localization.Release_firmware_0, response.Qt_ReleasedFirmware).AppendLine();
2019-11-25 00:54:38 +00:00
sb.AppendFormat(Localization.Firmware_version_0_1, response.Qt_FirmwareMajorVersion,
response.Qt_FirmwareMinorVersion).
AppendLine();
2019-11-25 00:54:38 +00:00
sb.AppendFormat(Localization.EEPROM_format_version_0_1, response.Qt_EEPROMFormatMajorVersion,
response.Qt_EEPROMFormatMinorVersion).
AppendLine();
2023-10-03 23:09:28 +01:00
sb.AppendFormat(Localization.Firmware_personality_0, response.Qt_FirmwarePersonality).AppendLine();
sb.AppendFormat(Localization.Firmware_sub_personality_0, response.Qt_FirmwareSubPersonality).AppendLine();
sb.AppendFormat(Localization.Tape_directory_format_version_0, response.Qt_TapeDirectoryFormatVersion).
AppendLine();
sb.AppendFormat(Localization.Controller_hardware_version_0, response.Qt_ControllerHardwareVersion).
AppendLine();
2023-10-03 23:09:28 +01:00
sb.AppendFormat(Localization.Drive_EEPROM_version_0, response.Qt_DriveEEPROMVersion).AppendLine();
sb.AppendFormat(Localization.Drive_hardware_version_0, response.Qt_DriveHardwareVersion).AppendLine();
sb.AppendFormat(Localization.Media_loader_firmware_version_0, response.Qt_MediaLoaderFirmwareVersion).
AppendLine();
sb.AppendFormat(Localization.Media_loader_hardware_version_0, response.Qt_MediaLoaderHardwareVersion).
AppendLine();
sb.AppendFormat(Localization.Media_loader_mechanical_version_0, response.Qt_MediaLoaderMechanicalVersion).
2022-03-06 13:29:37 +00:00
AppendLine();
2022-03-06 13:29:37 +00:00
if(response.Qt_LibraryPresent)
sb.AppendLine(Localization.Library_is_present);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Qt_MediaLoaderPresent)
sb.AppendLine(Localization.Media_loader_is_present);
sb.AppendFormat(Localization.Module_revision_0, StringHandlers.CToString(response.Qt_ModuleRevision)).
AppendLine();
2022-03-06 13:29:37 +00:00
}
2023-10-03 23:09:28 +01:00
#endregion Quantum vendor prettifying
#region IBM vendor prettifying
2022-03-06 13:29:37 +00:00
if(response.IBMPresent &&
StringHandlers.CToString(response.VendorIdentification).ToLowerInvariant().Trim() == "ibm")
{
sb.AppendLine(Localization.IBM_vendor_specific_information);
2022-03-06 13:29:37 +00:00
if(response.IBM_PerformanceLimit == 0)
sb.AppendLine(Localization.Performance_is_not_limited);
2022-03-06 13:29:37 +00:00
else
sb.AppendFormat(Localization.Performance_is_limited_using_factor_0, response.IBM_PerformanceLimit);
2022-03-06 13:29:37 +00:00
if(response.IBM_AutDis)
sb.AppendLine(Localization.Automation_is_disabled);
2022-03-06 13:29:37 +00:00
sb.AppendFormat(Localization.IBM_OEM_Specific_Field_0, response.IBM_OEMSpecific).AppendLine();
2022-03-06 13:29:37 +00:00
}
2023-10-03 23:09:28 +01:00
#endregion IBM vendor prettifying
#region HP vendor prettifying
2022-03-06 13:29:37 +00:00
if(response.HPPresent &&
StringHandlers.CToString(response.VendorIdentification).ToLowerInvariant().Trim() == "hp")
{
sb.AppendLine(Localization.HP_vendor_specific_information);
2022-03-06 13:29:37 +00:00
if(response.HP_WORM)
sb.AppendFormat(Localization.Device_supports_WORM_version_0, response.HP_WORMVersion).AppendLine();
2022-03-06 13:29:37 +00:00
byte[] OBDRSign = "$DR-10"u8.ToArray();
2022-03-06 13:29:37 +00:00
if(OBDRSign.SequenceEqual(response.HP_OBDR))
sb.AppendLine(Localization.Device_supports_Tape_Disaster_Recovery);
2022-03-06 13:29:37 +00:00
}
2016-10-14 23:05:36 +01:00
2023-10-03 23:09:28 +01:00
#endregion HP vendor prettifying
#region Seagate vendor prettifying
2022-03-06 13:29:37 +00:00
if((response.SeagatePresent || response.Seagate2Present || response.Seagate3Present) &&
StringHandlers.CToString(response.VendorIdentification).ToLowerInvariant().Trim() == "seagate")
{
sb.AppendLine(Localization.Seagate_vendor_specific_information);
2016-10-14 23:05:36 +01:00
2022-03-06 13:29:37 +00:00
if(response.SeagatePresent)
2023-10-03 23:09:28 +01:00
{
sb.AppendFormat(Core.Drive_serial_number_0,
StringHandlers.CToString(response.Seagate_DriveSerialNumber)).
AppendLine();
2023-10-03 23:09:28 +01:00
}
2016-10-14 23:05:36 +01:00
2022-03-06 13:29:37 +00:00
if(response.Seagate2Present)
2023-10-03 23:09:28 +01:00
{
sb.AppendFormat(Localization.Drive_copyright_0, StringHandlers.CToString(response.Seagate_Copyright)).
2022-03-06 13:29:37 +00:00
AppendLine();
2023-10-03 23:09:28 +01:00
}
2016-10-14 23:05:36 +01:00
2022-03-06 13:29:37 +00:00
if(response.Seagate3Present)
2023-10-03 23:09:28 +01:00
{
sb.AppendFormat(Localization.Drive_servo_part_number_0,
PrintHex.ByteArrayToHexArrayString(response.Seagate_ServoPROMPartNo, 40)).
AppendLine();
2023-10-03 23:09:28 +01:00
}
2022-03-06 13:29:37 +00:00
}
2017-05-23 18:07:25 +01:00
2023-10-03 23:09:28 +01:00
#endregion Seagate vendor prettifying
#region Kreon vendor prettifying
2022-03-06 13:29:37 +00:00
if(response.KreonPresent)
2023-10-03 23:09:28 +01:00
{
sb.AppendFormat(Localization.Drive_is_flashed_with_Kreon_firmware_0,
StringHandlers.CToString(response.KreonVersion)).
AppendLine();
2023-10-03 23:09:28 +01:00
}
#endregion Kreon vendor prettifying
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
#if DEBUG
if(response.DeviceTypeModifier != 0)
sb.AppendFormat(Localization.Vendor_device_type_modifier_0, response.DeviceTypeModifier).AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Reserved2 != 0)
sb.AppendFormat(Localization.Reserved_byte_five_bits_two_to_one_0, response.Reserved2).AppendLine();
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
if(response.Reserved3 != 0)
sb.AppendFormat(Localization.Reserved_byte_56_bits_seven_to_four_0, response.Reserved3).AppendLine();
2022-03-06 13:29:37 +00:00
if(response.Reserved4 != 0)
sb.AppendFormat(Localization.Reserved_byte_57, response.Reserved4).AppendLine();
2022-03-06 13:29:37 +00:00
if(response.Reserved5 != null)
{
sb.AppendLine(Localization.Reserved_bytes_74_to_95);
2022-03-06 13:29:37 +00:00
sb.AppendLine("============================================================");
sb.AppendLine(PrintHex.ByteArrayToHexArrayString(response.Reserved5, 60));
sb.AppendLine("============================================================");
}
2015-10-05 20:27:44 +01:00
2023-10-03 23:09:28 +01:00
if(response is { VendorSpecific: not null, IsHiMD: true })
{
2022-03-06 13:29:37 +00:00
if(response.KreonPresent)
{
2023-10-03 23:09:28 +01:00
var vendor = new byte[7];
2022-03-06 13:29:37 +00:00
Array.Copy(response.VendorSpecific, 11, vendor, 0, 7);
sb.AppendLine(Localization.Vendor_specific_bytes_47_to_55);
sb.AppendLine("============================================================");
2022-03-06 13:29:37 +00:00
sb.AppendLine(PrintHex.ByteArrayToHexArrayString(vendor, 60));
sb.AppendLine("============================================================");
}
else
{
sb.AppendLine(Localization.Vendor_specific_bytes_36_to_55);
2022-03-06 13:29:37 +00:00
sb.AppendLine("============================================================");
sb.AppendLine(PrintHex.ByteArrayToHexArrayString(response.VendorSpecific, 60));
sb.AppendLine("============================================================");
}
2023-10-03 23:09:28 +01:00
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
if(response.IsHiMD)
{
sb.AppendLine(Localization.Hi_MD_device_);
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
if(response.HiMDSpecific != null)
{
sb.AppendLine(Localization.Hi_MD_specific_bytes_44_to_55);
2022-03-06 13:29:37 +00:00
sb.AppendLine("============================================================");
sb.AppendLine(PrintHex.ByteArrayToHexArrayString(response.HiMDSpecific, 60));
sb.AppendLine("============================================================");
}
2022-03-06 13:29:37 +00:00
}
2022-03-06 13:29:37 +00:00
if(response.VendorSpecific2 == null)
return sb.ToString();
sb.AppendFormat(Localization.Vendor_specific_bytes_96_to_0, response.AdditionalLength + 4).AppendLine();
2022-03-06 13:29:37 +00:00
sb.AppendLine("============================================================");
sb.AppendLine(PrintHex.ByteArrayToHexArrayString(response.VendorSpecific2, 60));
sb.AppendLine("============================================================");
#endif
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
return sb.ToString();
}
2015-10-05 20:27:44 +01:00
2022-03-06 13:29:37 +00:00
public static string Prettify(byte[] SCSIInquiryResponse)
{
CommonTypes.Structs.Devices.SCSI.Inquiry? decoded =
CommonTypes.Structs.Devices.SCSI.Inquiry.Decode(SCSIInquiryResponse);
2019-11-25 00:54:38 +00:00
2022-03-06 13:29:37 +00:00
return Prettify(decoded);
2015-10-05 20:27:44 +01:00
}
2017-12-19 20:33:03 +00:00
}