/// <summary>
 /// Deep copy constructor.
 /// </summary>
 public SmbTransRawReadNmpipeSuccessResponsePacket(SmbTransRawReadNmpipeSuccessResponsePacket packet)
     : base(packet)
 {
     this.InitDefaultValue();
     if (packet.transData.BytesRead != null)
     {
         this.transData.BytesRead = new byte[packet.transData.BytesRead.Length];
         Array.Copy(packet.transData.BytesRead, this.transData.BytesRead, packet.transData.BytesRead.Length);
     }
 }
 /// <summary>
 /// Deep copy constructor.
 /// </summary>
 public SmbTransRawReadNmpipeSuccessResponsePacket(SmbTransRawReadNmpipeSuccessResponsePacket packet)
     : base(packet)
 {
     this.InitDefaultValue();
     if (packet.transData.BytesRead != null)
     {
         this.transData.BytesRead = new byte[packet.transData.BytesRead.Length];
         Array.Copy(packet.transData.BytesRead, this.transData.BytesRead, packet.transData.BytesRead.Length);
     }
 }
        public SmbTransRawReadNmpipeSuccessResponsePacket CreateTransRawReadNmpipeSuccessResponse(
            CifsServerPerConnection connection,
            SmbTransRawReadNmpipeRequestPacket request,
            byte[] bytesRead)
        {
            bytesRead = bytesRead ?? new byte[0];
            SmbTransRawReadNmpipeSuccessResponsePacket response = new SmbTransRawReadNmpipeSuccessResponsePacket();
            response.SmbHeader = CifsMessageUtils.CreateSmbHeader(connection, request);

            TRANS_RAW_READ_NMPIPE_Response_Trans_Data transData= response.TransData;
            transData.BytesRead = bytesRead;
            response.TransData = transData;

            response.UpdateCountAndOffset();

            return response;
        }