public Command(ScsiCommandCode code, byte cdbsize, IntPtr buffer, int bufsize, CmdDirection dir, int timeout) { m_cdb = new byte[cdbsize]; m_cdb[0] = (byte)code; m_buffer_size = bufsize; if (bufsize == 0) { m_buffer = IntPtr.Zero; } else { m_delete_buffer = false; m_buffer = buffer; } m_dir = dir; m_timeout = timeout; }
public Command(ScsiCommandCode code, byte cdbsize, int bufsize, CmdDirection dir, int timeout) { Debug.Assert(bufsize < UInt16.MaxValue); m_cdb = new byte[cdbsize]; m_cdb[0] = (byte)code; m_buffer_size = bufsize; if (bufsize == 0) m_buffer = IntPtr.Zero; else { m_delete_buffer = true; m_buffer = Marshal.AllocHGlobal(bufsize); RtlZeroMemory(m_buffer, bufsize); } m_dir = dir; m_timeout = timeout; }
public Command(ScsiCommandCode code, byte cdbsize, int bufsize, CmdDirection dir, int timeout) { Debug.Assert(bufsize < UInt16.MaxValue); m_cdb = new byte[cdbsize]; m_cdb[0] = (byte)code; m_buffer_size = bufsize; if (bufsize == 0) { m_buffer = IntPtr.Zero; } else { m_delete_buffer = true; m_buffer = Marshal.AllocHGlobal(bufsize); RtlZeroMemory(m_buffer, bufsize); } m_dir = dir; m_timeout = timeout; }
public Command(ScsiCommandCode code, byte cdbsize, IntPtr buffer, int bufsize, CmdDirection dir, int timeout) { m_cdb = new byte[cdbsize]; m_cdb[0] = (byte)code; m_buffer_size = bufsize; if (bufsize == 0) m_buffer = IntPtr.Zero; else { m_delete_buffer = false; m_buffer = buffer; } m_dir = dir; m_timeout = timeout; }
public bool Execute(ScsiCommandCode code) => this.usb.Ioctl(this.Commands[code].Sptw);