SharpCifs.Smb.SmbComWrite.SetParam C# (CSharp) Method

SetParam() private method

private SetParam ( int fid, long offset, int remaining, byte b, int off, int len ) : void
fid int
offset long
remaining int
b byte
off int
len int
return void
		internal virtual void SetParam(int fid, long offset, int remaining, byte[] b, int
			 off, int len)
		{
			this._fid = fid;
			this._offset = (int)(offset & unchecked(0xFFFFFFFFL));
			this._remaining = remaining;
			this._b = b;
			this._off = off;
			_count = len;
			Digest = null;
		}

Usage Example

        /// <summary>Just bypasses TransWaitNamedPipe - used by DCERPC bind.</summary>
        /// <remarks>Just bypasses TransWaitNamedPipe - used by DCERPC bind.</remarks>
        /// <exception cref="System.IO.IOException"></exception>
        public virtual void WriteDirect(byte[] b, int off, int len, int flags)
        {
            if (len <= 0)
            {
                return;
            }
            if (_tmp == null)
            {
                throw new IOException("Bad file descriptor");
            }
            EnsureOpen();

            /*
             * if (file.log.level >= 4)
             *          {
             *                  file.log.WriteLine("write: fid=" + file.fid + ",off=" + off + ",len=" + len);
             *          }
             */
            int w;

            do
            {
                w = len > _writeSize ? _writeSize : len;
                if (_useNtSmbs)
                {
                    _reqx.SetParam(_file.Fid, _fp, len - w, b, off, w);
                    if ((flags & 1) != 0)
                    {
                        _reqx.SetParam(_file.Fid, _fp, len, b, off, w);
                        _reqx.WriteMode = 0x8;
                    }
                    else
                    {
                        _reqx.WriteMode = 0;
                    }
                    _file.Send(_reqx, _rspx);
                    _fp += _rspx.Count;
                    len -= (int)_rspx.Count;
                    off += (int)_rspx.Count;
                }
                else
                {
                    _req.SetParam(_file.Fid, _fp, len - w, b, off, w);
                    _fp += _rsp.Count;
                    len -= (int)_rsp.Count;
                    off += (int)_rsp.Count;
                    _file.Send(_req, _rsp);
                }
            }while (len > 0);
        }