Enlarge sense buffer to 64 bytes.

This commit is contained in:
2021-03-25 23:23:18 +00:00
parent 7ee8988534
commit e4dbcdebc3
23 changed files with 105 additions and 105 deletions

View File

@@ -1,8 +1,8 @@
<component name="ProjectRunConfigurationManager"> <component name="ProjectRunConfigurationManager">
<configuration default="false" name="Aaru" type="DotNetProject" factoryName=".NET Project"> <configuration default="false" name="Aaru" type="DotNetProject" factoryName=".NET Project">
<option name="EXE_PATH" value="$PROJECT_DIR$/Aaru/bin/Debug/netcoreapp3.1/aaru" /> <option name="EXE_PATH" value="$PROJECT_DIR$/Aaru/bin/Debug/netcoreapp3.1/aaru.dll" />
<option name="PROGRAM_PARAMETERS" value="db stats" /> <option name="PROGRAM_PARAMETERS" value="dev report /dev/sdd" />
<option name="WORKING_DIRECTORY" value="/mnt/DiscImageChef/Media image formats/copytape" /> <option name="WORKING_DIRECTORY" value="/mnt/datos" />
<option name="PASS_PARENT_ENVS" value="1" /> <option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" /> <option name="USE_EXTERNAL_CONSOLE" value="0" />
<option name="USE_MONO" value="0" /> <option name="USE_MONO" value="0" />

View File

@@ -60,7 +60,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[8]; buffer = new byte[8];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.AdaptecTranslate; cdb[0] = (byte)ScsiCommands.AdaptecTranslate;
cdb[1] = (byte)((lba & 0x1F0000) >> 16); cdb[1] = (byte)((lba & 0x1F0000) >> 16);
@@ -103,7 +103,7 @@ namespace Aaru.Devices
byte[] buffer = new byte[1]; byte[] buffer = new byte[1];
buffer[0] = threshold; buffer[0] = threshold;
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.AdaptecSetErrorThreshold; cdb[0] = (byte)ScsiCommands.AdaptecSetErrorThreshold;
@@ -142,7 +142,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[9]; buffer = new byte[9];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.AdaptecTranslate; cdb[0] = (byte)ScsiCommands.AdaptecTranslate;
@@ -172,7 +172,7 @@ namespace Aaru.Devices
Array.Copy(buffer, 0, oneKBuffer, 0, buffer.Length < 1024 ? buffer.Length : 1024); Array.Copy(buffer, 0, oneKBuffer, 0, buffer.Length < 1024 ? buffer.Length : 1024);
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.AdaptecWriteBuffer; cdb[0] = (byte)ScsiCommands.AdaptecWriteBuffer;
@@ -195,7 +195,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[1024]; buffer = new byte[1024];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.AdaptecReadBuffer; cdb[0] = (byte)ScsiCommands.AdaptecReadBuffer;

View File

@@ -47,7 +47,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[3]; buffer = new byte[3];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.ArchiveRequestBlockAddress; cdb[0] = (byte)ScsiCommands.ArchiveRequestBlockAddress;
cdb[1] = (byte)((lba & 0x1F0000) >> 16); cdb[1] = (byte)((lba & 0x1F0000) >> 16);
@@ -84,7 +84,7 @@ namespace Aaru.Devices
{ {
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.ArchiveSeekBlock; cdb[0] = (byte)ScsiCommands.ArchiveSeekBlock;
cdb[1] = (byte)((lba & 0x1F0000) >> 16); cdb[1] = (byte)((lba & 0x1F0000) >> 16);

View File

@@ -61,7 +61,7 @@ namespace Aaru.Devices
{ {
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.CertanceParkUnpark; cdb[0] = (byte)ScsiCommands.CertanceParkUnpark;

View File

@@ -47,7 +47,7 @@ namespace Aaru.Devices
public bool HlDtStReadRawDvd(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength, public bool HlDtStReadRawDvd(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
buffer = new byte[2064 * transferLength]; buffer = new byte[2064 * transferLength];

View File

@@ -69,7 +69,7 @@ namespace Aaru.Devices
ushort transferLen, ushort blockBytes, bool pba, bool sectorCount, uint timeout, ushort transferLen, ushort blockBytes, bool pba, bool sectorCount, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.ReadLong; cdb[0] = (byte)ScsiCommands.ReadLong;

View File

@@ -44,7 +44,7 @@ namespace Aaru.Devices
/// <param name="duration">Duration.</param> /// <param name="duration">Duration.</param>
public bool KreonDeprecatedUnlock(out byte[] senseBuffer, uint timeout, out double duration) public bool KreonDeprecatedUnlock(out byte[] senseBuffer, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -95,7 +95,7 @@ namespace Aaru.Devices
/// <param name="state">Lock state</param> /// <param name="state">Lock state</param>
public bool KreonSetLockState(out byte[] senseBuffer, KreonLockStates state, uint timeout, out double duration) public bool KreonSetLockState(out byte[] senseBuffer, KreonLockStates state, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -124,7 +124,7 @@ namespace Aaru.Devices
public bool KreonGetFeatureList(out byte[] senseBuffer, out KreonFeatures features, uint timeout, public bool KreonGetFeatureList(out byte[] senseBuffer, out KreonFeatures features, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[26]; byte[] buffer = new byte[26];
features = 0; features = 0;
@@ -217,7 +217,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[2048]; buffer = new byte[2048];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.KreonSsCommand; cdb[0] = (byte)ScsiCommands.KreonSsCommand;
cdb[1] = 0x00; cdb[1] = 0x00;

View File

@@ -70,7 +70,7 @@ namespace Aaru.Devices
public bool GetConfiguration(out byte[] buffer, out byte[] senseBuffer, ushort startingFeatureNumber, public bool GetConfiguration(out byte[] buffer, out byte[] senseBuffer, ushort startingFeatureNumber,
MmcGetConfigurationRt rt, uint timeout, out double duration) MmcGetConfigurationRt rt, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
buffer = new byte[8]; buffer = new byte[8];
@@ -94,7 +94,7 @@ namespace Aaru.Devices
buffer = new byte[confLength]; buffer = new byte[confLength];
cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8); cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8);
cdb[8] = (byte)(buffer.Length & 0xFF); cdb[8] = (byte)(buffer.Length & 0xFF);
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -123,7 +123,7 @@ namespace Aaru.Devices
uint address, byte layerNumber, MmcDiscStructureFormat format, byte agid, uint address, byte layerNumber, MmcDiscStructureFormat format, byte agid,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
buffer = new byte[8]; buffer = new byte[8];
@@ -183,7 +183,7 @@ namespace Aaru.Devices
cdb[8] = (byte)((buffer.Length & 0xFF00) >> 8); cdb[8] = (byte)((buffer.Length & 0xFF00) >> 8);
cdb[9] = (byte)(buffer.Length & 0xFF); cdb[9] = (byte)(buffer.Length & 0xFF);
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -289,7 +289,7 @@ namespace Aaru.Devices
public bool ReadTocPmaAtip(out byte[] buffer, out byte[] senseBuffer, bool msf, byte format, public bool ReadTocPmaAtip(out byte[] buffer, out byte[] senseBuffer, bool msf, byte format,
byte trackSessionNumber, uint timeout, out double duration) byte trackSessionNumber, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
byte[] tmpBuffer = (format & 0x0F) == 5 ? new byte[32768] : new byte[1024]; byte[] tmpBuffer = (format & 0x0F) == 5 ? new byte[32768] : new byte[1024];
@@ -359,7 +359,7 @@ namespace Aaru.Devices
public bool ReadDiscInformation(out byte[] buffer, out byte[] senseBuffer, MmcDiscInformationDataTypes dataType, public bool ReadDiscInformation(out byte[] buffer, out byte[] senseBuffer, MmcDiscInformationDataTypes dataType,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
byte[] tmpBuffer = new byte[804]; byte[] tmpBuffer = new byte[804];
@@ -411,7 +411,7 @@ namespace Aaru.Devices
MmcHeaderCodes headerCodes, bool userData, bool edcEcc, MmcErrorField c2Error, MmcHeaderCodes headerCodes, bool userData, bool edcEcc, MmcErrorField c2Error,
MmcSubchannel subchannel, uint timeout, out double duration) MmcSubchannel subchannel, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.ReadCd; cdb[0] = (byte)ScsiCommands.ReadCd;
@@ -481,7 +481,7 @@ namespace Aaru.Devices
bool userData, bool edcEcc, MmcErrorField c2Error, MmcSubchannel subchannel, uint timeout, bool userData, bool edcEcc, MmcErrorField c2Error, MmcSubchannel subchannel, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.ReadCdMsf; cdb[0] = (byte)ScsiCommands.ReadCdMsf;
@@ -536,7 +536,7 @@ namespace Aaru.Devices
public bool PreventAllowMediumRemoval(out byte[] senseBuffer, bool persistent, bool prevent, uint timeout, public bool PreventAllowMediumRemoval(out byte[] senseBuffer, bool persistent, bool prevent, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -575,7 +575,7 @@ namespace Aaru.Devices
public bool StartStopUnit(out byte[] senseBuffer, bool immediate, byte formatLayer, byte powerConditions, public bool StartStopUnit(out byte[] senseBuffer, bool immediate, byte formatLayer, byte powerConditions,
bool changeFormatLayer, bool loadEject, bool start, uint timeout, out double duration) bool changeFormatLayer, bool loadEject, bool start, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -616,7 +616,7 @@ namespace Aaru.Devices
public bool ReadMcn(out string mcn, out byte[] buffer, out byte[] senseBuffer, uint timeout, public bool ReadMcn(out string mcn, out byte[] buffer, out byte[] senseBuffer, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
mcn = null; mcn = null;
@@ -648,7 +648,7 @@ namespace Aaru.Devices
public bool ReadIsrc(byte trackNumber, out string isrc, out byte[] buffer, out byte[] senseBuffer, uint timeout, public bool ReadIsrc(byte trackNumber, out string isrc, out byte[] buffer, out byte[] senseBuffer, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
isrc = null; isrc = null;
@@ -681,7 +681,7 @@ namespace Aaru.Devices
public bool SetCdSpeed(out byte[] senseBuffer, RotationalControl rotationalControl, ushort readSpeed, public bool SetCdSpeed(out byte[] senseBuffer, RotationalControl rotationalControl, ushort readSpeed,
ushort writeSpeed, uint timeout, out double duration) ushort writeSpeed, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -716,7 +716,7 @@ namespace Aaru.Devices
public bool ReadTrackInformation(out byte[] buffer, out byte[] senseBuffer, bool open, public bool ReadTrackInformation(out byte[] buffer, out byte[] senseBuffer, bool open,
TrackInformationType type, uint address, uint timeout, out double duration) TrackInformationType type, uint address, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
buffer = new byte[48]; buffer = new byte[48];

View File

@@ -47,7 +47,7 @@ namespace Aaru.Devices
public bool MediaTekReadDram(out byte[] buffer, out byte[] senseBuffer, uint offset, uint length, uint timeout, public bool MediaTekReadDram(out byte[] buffer, out byte[] senseBuffer, uint offset, uint length, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
buffer = new byte[length]; buffer = new byte[length];

View File

@@ -39,7 +39,7 @@ namespace Aaru.Devices
public bool MiniDiscReadDataTOC(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool MiniDiscReadDataTOC(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
ushort transferLength = 2336; ushort transferLength = 2336;
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.MiniDiscReadDTOC; cdb[0] = (byte)ScsiCommands.MiniDiscReadDTOC;
@@ -63,7 +63,7 @@ namespace Aaru.Devices
out double duration) out double duration)
{ {
ushort transferLength = 2336; ushort transferLength = 2336;
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.MiniDiscReadUTOC; cdb[0] = (byte)ScsiCommands.MiniDiscReadUTOC;
@@ -90,7 +90,7 @@ namespace Aaru.Devices
public bool MiniDiscD5(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool MiniDiscD5(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
ushort transferLength = 4; ushort transferLength = 4;
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.MiniDiscD5; cdb[0] = (byte)ScsiCommands.MiniDiscD5;
@@ -113,7 +113,7 @@ namespace Aaru.Devices
public bool MiniDiscStopPlaying(out byte[] buffer, out byte[] senseBuffer, uint sector, uint timeout, public bool MiniDiscStopPlaying(out byte[] buffer, out byte[] senseBuffer, uint sector, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.MiniDiscStopPlay; cdb[0] = (byte)ScsiCommands.MiniDiscStopPlay;
@@ -133,7 +133,7 @@ namespace Aaru.Devices
public bool MiniDiscReadPosition(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool MiniDiscReadPosition(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
ushort transferLength = 4; ushort transferLength = 4;
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.MiniDiscReadPosition; cdb[0] = (byte)ScsiCommands.MiniDiscReadPosition;
@@ -156,7 +156,7 @@ namespace Aaru.Devices
public bool MiniDiscGetType(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool MiniDiscGetType(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
ushort transferLength = 8; ushort transferLength = 8;
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.MiniDiscGetType; cdb[0] = (byte)ScsiCommands.MiniDiscGetType;

View File

@@ -47,7 +47,7 @@ namespace Aaru.Devices
public bool NecReadCdDa(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength, uint timeout, public bool NecReadCdDa(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.NecReadCdDa; cdb[0] = (byte)ScsiCommands.NecReadCdDa;

View File

@@ -61,7 +61,7 @@ namespace Aaru.Devices
bool relAddr, uint lba, uint requested, uint scanLength, out uint foundLba, bool relAddr, uint lba, uint requested, uint scanLength, out uint foundLba,
out uint foundBlocks, uint timeout, out double duration) out uint foundBlocks, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
foundLba = 0; foundLba = 0;

View File

@@ -50,7 +50,7 @@ namespace Aaru.Devices
uint transferLength, PioneerSubchannel subchannel, uint timeout, uint transferLength, PioneerSubchannel subchannel, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.ReadCdDa; cdb[0] = (byte)ScsiCommands.ReadCdDa;
@@ -88,7 +88,7 @@ namespace Aaru.Devices
public bool PioneerReadCdDaMsf(out byte[] buffer, out byte[] senseBuffer, uint startMsf, uint endMsf, public bool PioneerReadCdDaMsf(out byte[] buffer, out byte[] senseBuffer, uint startMsf, uint endMsf,
uint blockSize, PioneerSubchannel subchannel, uint timeout, out double duration) uint blockSize, PioneerSubchannel subchannel, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.ReadCdDaMsf; cdb[0] = (byte)ScsiCommands.ReadCdDaMsf;
@@ -129,7 +129,7 @@ namespace Aaru.Devices
public bool PioneerReadCdXa(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength, public bool PioneerReadCdXa(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength,
bool errorFlags, bool wholeSector, uint timeout, out double duration) bool errorFlags, bool wholeSector, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.ReadCdXa; cdb[0] = (byte)ScsiCommands.ReadCdXa;

View File

@@ -82,7 +82,7 @@ namespace Aaru.Devices
public bool PlasmonReadSectorLocation(out byte[] buffer, out byte[] senseBuffer, uint address, bool pba, public bool PlasmonReadSectorLocation(out byte[] buffer, out byte[] senseBuffer, uint address, bool pba,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.PlasmonReadSectorLocation; cdb[0] = (byte)ScsiCommands.PlasmonReadSectorLocation;

View File

@@ -51,7 +51,7 @@ namespace Aaru.Devices
uint transferLength, PlextorSubchannel subchannel, uint timeout, uint transferLength, PlextorSubchannel subchannel, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.ReadCdDa; cdb[0] = (byte)ScsiCommands.ReadCdDa;
@@ -90,7 +90,7 @@ namespace Aaru.Devices
public bool PlextorReadRawDvd(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength, public bool PlextorReadRawDvd(out byte[] buffer, out byte[] senseBuffer, uint lba, uint transferLength,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
buffer = new byte[2064 * transferLength]; buffer = new byte[2064 * transferLength];
@@ -122,7 +122,7 @@ namespace Aaru.Devices
public bool PlextorReadEepromCdr(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool PlextorReadEepromCdr(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[256]; buffer = new byte[256];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorReadEeprom; cdb[0] = (byte)ScsiCommands.PlextorReadEeprom;
@@ -147,7 +147,7 @@ namespace Aaru.Devices
public bool PlextorReadEeprom(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool PlextorReadEeprom(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[512]; buffer = new byte[512];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorReadEeprom; cdb[0] = (byte)ScsiCommands.PlextorReadEeprom;
@@ -175,7 +175,7 @@ namespace Aaru.Devices
uint timeout, out double duration) uint timeout, out double duration)
{ {
buffer = new byte[blockSize]; buffer = new byte[blockSize];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorReadEeprom; cdb[0] = (byte)ScsiCommands.PlextorReadEeprom;
@@ -206,7 +206,7 @@ namespace Aaru.Devices
uint timeout, out double duration) uint timeout, out double duration)
{ {
byte[] buf = new byte[10]; byte[] buf = new byte[10];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
selected = 0; selected = 0;
@@ -244,7 +244,7 @@ namespace Aaru.Devices
out double duration) out double duration)
{ {
byte[] buf = new byte[8]; byte[] buf = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
enabled = false; enabled = false;
@@ -279,7 +279,7 @@ namespace Aaru.Devices
public bool PlextorGetSilentMode(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool PlextorGetSilentMode(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;
@@ -307,7 +307,7 @@ namespace Aaru.Devices
public bool PlextorGetGigaRec(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool PlextorGetGigaRec(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;
@@ -336,7 +336,7 @@ namespace Aaru.Devices
out double duration) out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;
@@ -368,7 +368,7 @@ namespace Aaru.Devices
public bool PlextorGetSecuRec(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool PlextorGetSecuRec(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;
@@ -394,7 +394,7 @@ namespace Aaru.Devices
public bool PlextorGetSpeedRead(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool PlextorGetSpeedRead(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;
@@ -421,7 +421,7 @@ namespace Aaru.Devices
public bool PlextorGetHiding(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool PlextorGetHiding(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;
@@ -450,7 +450,7 @@ namespace Aaru.Devices
out double duration) out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;
@@ -483,7 +483,7 @@ namespace Aaru.Devices
out double duration) out double duration)
{ {
buffer = new byte[8]; buffer = new byte[8];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.PlextorExtend; cdb[0] = (byte)ScsiCommands.PlextorExtend;

View File

@@ -61,7 +61,7 @@ namespace Aaru.Devices
public bool Read6(out byte[] buffer, out byte[] senseBuffer, uint lba, uint blockSize, byte transferLength, public bool Read6(out byte[] buffer, out byte[] senseBuffer, uint lba, uint blockSize, byte transferLength,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
cdb[0] = (byte)ScsiCommands.Read6; cdb[0] = (byte)ScsiCommands.Read6;
@@ -110,7 +110,7 @@ namespace Aaru.Devices
bool relAddr, uint lba, uint blockSize, byte groupNumber, ushort transferLength, bool relAddr, uint lba, uint blockSize, byte groupNumber, ushort transferLength,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.Read10; cdb[0] = (byte)ScsiCommands.Read10;
@@ -174,7 +174,7 @@ namespace Aaru.Devices
bool relAddr, uint lba, uint blockSize, byte groupNumber, uint transferLength, bool relAddr, uint lba, uint blockSize, byte groupNumber, uint transferLength,
bool streaming, uint timeout, out double duration) bool streaming, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
cdb[0] = (byte)ScsiCommands.Read12; cdb[0] = (byte)ScsiCommands.Read12;
@@ -242,7 +242,7 @@ namespace Aaru.Devices
ulong lba, uint blockSize, byte groupNumber, uint transferLength, bool streaming, ulong lba, uint blockSize, byte groupNumber, uint transferLength, bool streaming,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[16]; byte[] cdb = new byte[16];
byte[] lbaBytes = BitConverter.GetBytes(lba); byte[] lbaBytes = BitConverter.GetBytes(lba);
@@ -303,7 +303,7 @@ namespace Aaru.Devices
public bool ReadLong10(out byte[] buffer, out byte[] senseBuffer, bool correct, bool relAddr, uint lba, public bool ReadLong10(out byte[] buffer, out byte[] senseBuffer, bool correct, bool relAddr, uint lba,
ushort transferBytes, uint timeout, out double duration) ushort transferBytes, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
cdb[0] = (byte)ScsiCommands.ReadLong; cdb[0] = (byte)ScsiCommands.ReadLong;
@@ -348,7 +348,7 @@ namespace Aaru.Devices
public bool ReadLong16(out byte[] buffer, out byte[] senseBuffer, bool correct, ulong lba, uint transferBytes, public bool ReadLong16(out byte[] buffer, out byte[] senseBuffer, bool correct, ulong lba, uint transferBytes,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[16]; byte[] cdb = new byte[16];
byte[] lbaBytes = BitConverter.GetBytes(lba); byte[] lbaBytes = BitConverter.GetBytes(lba);
@@ -387,7 +387,7 @@ namespace Aaru.Devices
/// <param name="duration">Duration.</param> /// <param name="duration">Duration.</param>
public bool Seek6(out byte[] senseBuffer, uint lba, uint timeout, out double duration) public bool Seek6(out byte[] senseBuffer, uint lba, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -413,7 +413,7 @@ namespace Aaru.Devices
/// <param name="duration">Duration.</param> /// <param name="duration">Duration.</param>
public bool Seek10(out byte[] senseBuffer, uint lba, uint timeout, out double duration) public bool Seek10(out byte[] senseBuffer, uint lba, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];

View File

@@ -54,7 +54,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[256]; buffer = new byte[256];
byte[] cdb = new byte[16]; byte[] cdb = new byte[16];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.ReadAttribute; cdb[0] = (byte)ScsiCommands.ReadAttribute;
cdb[1] = (byte)((byte)action & 0x1F); cdb[1] = (byte)((byte)action & 0x1F);
@@ -87,7 +87,7 @@ namespace Aaru.Devices
cdb[11] = (byte)((buffer.Length & 0xFF0000) >> 16); cdb[11] = (byte)((buffer.Length & 0xFF0000) >> 16);
cdb[12] = (byte)((buffer.Length & 0xFF00) >> 8); cdb[12] = (byte)((buffer.Length & 0xFF00) >> 8);
cdb[13] = (byte)(buffer.Length & 0xFF); cdb[13] = (byte)(buffer.Length & 0xFF);
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);

View File

@@ -72,7 +72,7 @@ namespace Aaru.Devices
public bool ScsiInquiry(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool ScsiInquiry(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
buffer = new byte[36]; buffer = new byte[36];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = byte[] cdb =
{ {
@@ -95,7 +95,7 @@ namespace Aaru.Devices
}; };
buffer = new byte[pagesLength]; buffer = new byte[pagesLength];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -149,7 +149,7 @@ namespace Aaru.Devices
public bool ScsiInquiry(out byte[] buffer, out byte[] senseBuffer, byte page, uint timeout, out double duration) public bool ScsiInquiry(out byte[] buffer, out byte[] senseBuffer, byte page, uint timeout, out double duration)
{ {
buffer = new byte[36]; buffer = new byte[36];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = byte[] cdb =
{ {
@@ -176,7 +176,7 @@ namespace Aaru.Devices
}; };
buffer = new byte[pagesLength]; buffer = new byte[pagesLength];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -195,7 +195,7 @@ namespace Aaru.Devices
/// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param> /// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param>
public bool ScsiTestUnitReady(out byte[] senseBuffer, uint timeout, out double duration) public bool ScsiTestUnitReady(out byte[] senseBuffer, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = byte[] cdb =
{ {
@@ -252,7 +252,7 @@ namespace Aaru.Devices
ScsiModeSensePageControl pageControl, byte pageCode, byte subPageCode, uint timeout, ScsiModeSensePageControl pageControl, byte pageCode, byte subPageCode, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
buffer = new byte[255]; buffer = new byte[255];
@@ -278,7 +278,7 @@ namespace Aaru.Devices
byte modeLength = (byte)(buffer[0] + 1); byte modeLength = (byte)(buffer[0] + 1);
buffer = new byte[modeLength]; buffer = new byte[modeLength];
cdb[4] = (byte)buffer.Length; cdb[4] = (byte)buffer.Length;
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -334,7 +334,7 @@ namespace Aaru.Devices
ScsiModeSensePageControl pageControl, byte pageCode, byte subPageCode, uint timeout, ScsiModeSensePageControl pageControl, byte pageCode, byte subPageCode, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
buffer = new byte[4096]; buffer = new byte[4096];
@@ -365,7 +365,7 @@ namespace Aaru.Devices
buffer = new byte[modeLength]; buffer = new byte[modeLength];
cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8); cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8);
cdb[8] = (byte)(buffer.Length & 0xFF); cdb[8] = (byte)(buffer.Length & 0xFF);
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -418,7 +418,7 @@ namespace Aaru.Devices
public bool SpcPreventAllowMediumRemoval(out byte[] senseBuffer, ScsiPreventAllowMode preventMode, uint timeout, public bool SpcPreventAllowMediumRemoval(out byte[] senseBuffer, ScsiPreventAllowMode preventMode, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -456,7 +456,7 @@ namespace Aaru.Devices
public bool ReadCapacity(out byte[] buffer, out byte[] senseBuffer, bool relAddr, uint address, bool pmi, public bool ReadCapacity(out byte[] buffer, out byte[] senseBuffer, bool relAddr, uint address, bool pmi,
uint timeout, out double duration) uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
buffer = new byte[8]; buffer = new byte[8];
@@ -505,7 +505,7 @@ namespace Aaru.Devices
public bool ReadCapacity16(out byte[] buffer, out byte[] senseBuffer, ulong address, bool pmi, uint timeout, public bool ReadCapacity16(out byte[] buffer, out byte[] senseBuffer, ulong address, bool pmi, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[16]; byte[] cdb = new byte[16];
buffer = new byte[32]; buffer = new byte[32];
@@ -549,7 +549,7 @@ namespace Aaru.Devices
/// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param> /// <param name="duration">Duration in milliseconds it took for the device to execute the command.</param>
public bool ReadMediaSerialNumber(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration) public bool ReadMediaSerialNumber(out byte[] buffer, out byte[] senseBuffer, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[12]; byte[] cdb = new byte[12];
buffer = new byte[4]; buffer = new byte[4];
@@ -574,7 +574,7 @@ namespace Aaru.Devices
cdb[7] = (byte)((buffer.Length & 0xFF0000) >> 16); cdb[7] = (byte)((buffer.Length & 0xFF0000) >> 16);
cdb[8] = (byte)((buffer.Length & 0xFF00) >> 8); cdb[8] = (byte)((buffer.Length & 0xFF00) >> 8);
cdb[9] = (byte)(buffer.Length & 0xFF); cdb[9] = (byte)(buffer.Length & 0xFF);
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -679,7 +679,7 @@ namespace Aaru.Devices
public bool ModeSelect(byte[] buffer, out byte[] senseBuffer, bool pageFormat, bool savePages, uint timeout, public bool ModeSelect(byte[] buffer, out byte[] senseBuffer, bool pageFormat, bool savePages, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
// Prevent overflows // Prevent overflows
if(buffer.Length > 255) if(buffer.Length > 255)
@@ -733,7 +733,7 @@ namespace Aaru.Devices
public bool ModeSelect10(byte[] buffer, out byte[] senseBuffer, bool pageFormat, bool savePages, uint timeout, public bool ModeSelect10(byte[] buffer, out byte[] senseBuffer, bool pageFormat, bool savePages, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
// Prevent overflows // Prevent overflows
if(buffer.Length > 65535) if(buffer.Length > 65535)

View File

@@ -69,7 +69,7 @@ namespace Aaru.Devices
public bool LoadUnload(out byte[] senseBuffer, bool immediate, bool load, bool retense, bool endOfTape, public bool LoadUnload(out byte[] senseBuffer, bool immediate, bool load, bool retense, bool endOfTape,
bool hold, uint timeout, out double duration) bool hold, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -149,7 +149,7 @@ namespace Aaru.Devices
public bool Locate(out byte[] senseBuffer, bool immediate, bool blockType, bool changePartition, byte partition, public bool Locate(out byte[] senseBuffer, bool immediate, bool blockType, bool changePartition, byte partition,
uint objectId, uint timeout, out double duration) uint objectId, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -233,7 +233,7 @@ namespace Aaru.Devices
public bool Locate16(out byte[] senseBuffer, bool immediate, bool changePartition, SscLogicalIdTypes destType, public bool Locate16(out byte[] senseBuffer, bool immediate, bool changePartition, SscLogicalIdTypes destType,
bool bam, byte partition, ulong identifier, uint timeout, out double duration) bool bam, byte partition, ulong identifier, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[16]; byte[] cdb = new byte[16];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
byte[] idBytes = BitConverter.GetBytes(identifier); byte[] idBytes = BitConverter.GetBytes(identifier);
@@ -317,7 +317,7 @@ namespace Aaru.Devices
{ {
buffer = fixedLen ? new byte[blockSize * transferLen] : new byte[transferLen]; buffer = fixedLen ? new byte[blockSize * transferLen] : new byte[transferLen];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.Read6; cdb[0] = (byte)ScsiCommands.Read6;
@@ -417,7 +417,7 @@ namespace Aaru.Devices
{ {
buffer = fixedLen ? new byte[objectSize * transferLen] : new byte[transferLen]; buffer = fixedLen ? new byte[objectSize * transferLen] : new byte[transferLen];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] idBytes = BitConverter.GetBytes(objectId); byte[] idBytes = BitConverter.GetBytes(objectId);
cdb[0] = (byte)ScsiCommands.Read16; cdb[0] = (byte)ScsiCommands.Read16;
@@ -460,7 +460,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[6]; buffer = new byte[6];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.ReadBlockLimits; cdb[0] = (byte)ScsiCommands.ReadBlockLimits;
@@ -548,7 +548,7 @@ namespace Aaru.Devices
} }
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.ReadPosition; cdb[0] = (byte)ScsiCommands.ReadPosition;
cdb[1] = (byte)((byte)responseForm & 0x1F); cdb[1] = (byte)((byte)responseForm & 0x1F);
@@ -614,7 +614,7 @@ namespace Aaru.Devices
{ {
buffer = fixedLen ? new byte[blockSize * transferLen] : new byte[transferLen]; buffer = fixedLen ? new byte[blockSize * transferLen] : new byte[transferLen];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.ReadReverse; cdb[0] = (byte)ScsiCommands.ReadReverse;
@@ -721,7 +721,7 @@ namespace Aaru.Devices
{ {
buffer = fixedLen ? new byte[objectSize * transferLen] : new byte[transferLen]; buffer = fixedLen ? new byte[objectSize * transferLen] : new byte[transferLen];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] idBytes = BitConverter.GetBytes(objectId); byte[] idBytes = BitConverter.GetBytes(objectId);
cdb[0] = (byte)ScsiCommands.Read16; cdb[0] = (byte)ScsiCommands.Read16;
@@ -802,7 +802,7 @@ namespace Aaru.Devices
{ {
buffer = fixedLen ? new byte[blockSize * transferLen] : new byte[transferLen]; buffer = fixedLen ? new byte[blockSize * transferLen] : new byte[transferLen];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.RecoverBufferedData; cdb[0] = (byte)ScsiCommands.RecoverBufferedData;
@@ -857,7 +857,7 @@ namespace Aaru.Devices
{ {
buffer = new byte[256]; buffer = new byte[256];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
senseBuffer = new byte[32]; senseBuffer = new byte[64];
cdb[0] = (byte)ScsiCommands.ReportDensitySupport; cdb[0] = (byte)ScsiCommands.ReportDensitySupport;
@@ -882,7 +882,7 @@ namespace Aaru.Devices
buffer = new byte[availableLength]; buffer = new byte[availableLength];
cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8); cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8);
cdb[8] = (byte)(buffer.Length & 0xFF); cdb[8] = (byte)(buffer.Length & 0xFF);
senseBuffer = new byte[32]; senseBuffer = new byte[64];
LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration, LastError = SendScsiCommand(cdb, ref buffer, out senseBuffer, timeout, ScsiDirection.In, out duration,
out sense); out sense);
@@ -908,7 +908,7 @@ namespace Aaru.Devices
/// <param name="duration">Duration.</param> /// <param name="duration">Duration.</param>
public bool Rewind(out byte[] senseBuffer, bool immediate, uint timeout, out double duration) public bool Rewind(out byte[] senseBuffer, bool immediate, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -935,7 +935,7 @@ namespace Aaru.Devices
/// <param name="duration">Duration.</param> /// <param name="duration">Duration.</param>
public bool TrackSelect(out byte[] senseBuffer, byte track, uint timeout, out double duration) public bool TrackSelect(out byte[] senseBuffer, byte track, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
@@ -954,7 +954,7 @@ namespace Aaru.Devices
public bool Space(out byte[] senseBuffer, SscSpaceCodes code, int count, uint timeout, out double duration) public bool Space(out byte[] senseBuffer, SscSpaceCodes code, int count, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
byte[] buffer = new byte[0]; byte[] buffer = new byte[0];
byte[] countB = BitConverter.GetBytes(count); byte[] countB = BitConverter.GetBytes(count);

View File

@@ -74,7 +74,7 @@ namespace Aaru.Devices
public bool SyQuestRead6(out byte[] buffer, out byte[] senseBuffer, uint lba, uint blockSize, public bool SyQuestRead6(out byte[] buffer, out byte[] senseBuffer, uint lba, uint blockSize,
byte transferLength, bool inhibitDma, bool readLong, uint timeout, out double duration) byte transferLength, bool inhibitDma, bool readLong, uint timeout, out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[6]; byte[] cdb = new byte[6];
bool sense; bool sense;
@@ -151,7 +151,7 @@ namespace Aaru.Devices
ushort transferLength, bool inhibitDma, bool readLong, uint timeout, ushort transferLength, bool inhibitDma, bool readLong, uint timeout,
out double duration) out double duration)
{ {
senseBuffer = new byte[32]; senseBuffer = new byte[64];
byte[] cdb = new byte[10]; byte[] cdb = new byte[10];
bool sense; bool sense;

View File

@@ -66,7 +66,7 @@ namespace Aaru.Devices.Linux
var ioHdr = new SgIoHdrT(); var ioHdr = new SgIoHdrT();
senseBuffer = new byte[32]; senseBuffer = new byte[64];
ioHdr.interface_id = 'S'; ioHdr.interface_id = 'S';
ioHdr.cmd_len = (byte)cdb.Length; ioHdr.cmd_len = (byte)cdb.Length;

View File

@@ -105,7 +105,7 @@ namespace Aaru.Devices.Windows
sense |= sptdSb.sptd.ScsiStatus != 0; sense |= sptdSb.sptd.ScsiStatus != 0;
senseBuffer = new byte[32]; senseBuffer = new byte[64];
Array.Copy(sptdSb.SenseBuf, senseBuffer, 32); Array.Copy(sptdSb.SenseBuf, senseBuffer, 32);
duration = (end - start).TotalMilliseconds; duration = (end - start).TotalMilliseconds;