/// <summary>
        /// Deep copy constructor.
        /// </summary>
        public SmbTransCallNmpipeSuccessResponsePacket(SmbTransCallNmpipeSuccessResponsePacket packet)
            : base(packet)
        {
            this.InitDefaultValue();

            if (packet.transData.ReadData != null)
            {
                this.transData.ReadData = new byte[packet.transData.ReadData.Length];
                Array.Copy(packet.transData.ReadData, this.transData.ReadData, packet.transData.ReadData.Length);
            }
            else
            {
                this.transData.ReadData = new byte[0];
            }
        }
        /// <summary>
        /// Deep copy constructor.
        /// </summary>
        public SmbTransCallNmpipeSuccessResponsePacket(SmbTransCallNmpipeSuccessResponsePacket packet)
            : base(packet)
        {
            this.InitDefaultValue();

            if (packet.transData.ReadData != null)
            {
                this.transData.ReadData = new byte[packet.transData.ReadData.Length];
                Array.Copy(packet.transData.ReadData, this.transData.ReadData, packet.transData.ReadData.Length);
            }
            else
            {
                this.transData.ReadData = new byte[0];
            }
        }
        public SmbTransCallNmpipeSuccessResponsePacket CreateTransCallNmpipeSuccessResponse(
            CifsServerPerConnection connection,
            SmbTransCallNmpipeRequestPacket request,
            byte[] readData)
        {
            readData = readData ?? new byte[0];
            SmbTransCallNmpipeSuccessResponsePacket response = new SmbTransCallNmpipeSuccessResponsePacket();
            response.SmbHeader = CifsMessageUtils.CreateSmbHeader(connection, request);

            TRANS_CALL_NMPIPE_Response_Trans_Data transData = response.TransData;
            transData.ReadData = readData;
            response.TransData = transData;

            response.UpdateCountAndOffset();

            return response;
        }