2015-10-05 21:20:25 +01:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
|
|
|
|
|
|
namespace DiscImageChef.Devices.Windows
|
|
|
|
|
|
{
|
2015-10-06 18:29:15 +01:00
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
|
|
|
|
struct ScsiPassThroughDirect
|
2015-10-05 21:20:25 +01:00
|
|
|
|
{
|
2015-10-06 18:29:15 +01:00
|
|
|
|
public ushort Length;
|
|
|
|
|
|
public byte ScsiStatus;
|
|
|
|
|
|
public byte PathId;
|
|
|
|
|
|
public byte TargetId;
|
|
|
|
|
|
public byte Lun;
|
|
|
|
|
|
public byte CdbLength;
|
|
|
|
|
|
public byte SenseInfoLength;
|
|
|
|
|
|
[MarshalAs(UnmanagedType.U1)]
|
|
|
|
|
|
public ScsiIoctlDirection DataIn;
|
|
|
|
|
|
public uint DataTransferLength;
|
|
|
|
|
|
public uint TimeOutValue;
|
|
|
|
|
|
public IntPtr DataBuffer;
|
|
|
|
|
|
public uint SenseInfoOffset;
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
|
|
|
|
|
|
public byte[] Cdb;
|
|
|
|
|
|
};
|
2015-10-05 21:20:25 +01:00
|
|
|
|
|
2015-10-06 18:29:15 +01:00
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
|
|
|
|
struct ScsiPassThroughDirectAndSenseBuffer {
|
|
|
|
|
|
public ScsiPassThroughDirect sptd;
|
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
|
|
|
|
|
public byte[] SenseBuf;
|
2015-10-05 21:20:25 +01:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|