Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
 public bool Execute(ScsiCommandCode code) => this.usb.Ioctl(this.Commands[code].Sptw);