/// <summary>
        /// Create Trans response
        /// </summary>
        /// <param name="connection">the connection on which the response will be sent.</param>
        /// <param name="request">the corresponding request</param>
        /// <returns>the default response to the request.</returns>
        private SmbPacket CreateDefaultTransResponse(
            CifsServerPerConnection connection,
            SmbTransactionRequestPacket request)
        {
            SmbTransSetNmpipeStateRequestPacket setStateRequest = request as SmbTransSetNmpipeStateRequestPacket;
            SmbTransRawReadNmpipeRequestPacket rewReadRequest = request as SmbTransRawReadNmpipeRequestPacket;
            SmbTransQueryNmpipeStateRequestPacket queryStateRequest = request as SmbTransQueryNmpipeStateRequestPacket;
            SmbTransQueryNmpipeInfoRequestPacket queryInfoRequest = request as SmbTransQueryNmpipeInfoRequestPacket;
            SmbTransPeekNmpipeRequestPacket peekStateRequest = request as SmbTransPeekNmpipeRequestPacket;
            SmbTransTransactNmpipeRequestPacket transactRequest = request as SmbTransTransactNmpipeRequestPacket;
            SmbTransRawWriteNmpipeRequestPacket rawWriteRequest = request as SmbTransRawWriteNmpipeRequestPacket;
            SmbTransReadNmpipeRequestPacket readRequest = request as SmbTransReadNmpipeRequestPacket;
            SmbTransWriteNmpipeRequestPacket writeRequest = request as SmbTransWriteNmpipeRequestPacket;
            SmbTransCallNmpipeRequestPacket callRequest = request as SmbTransCallNmpipeRequestPacket;
            SmbTransRapRequestPacket rapRequest = request as SmbTransRapRequestPacket;
            SmbPacket response = null;
            if (setStateRequest != null)
            {
                response = this.CreateTransSetNmpipeStateSuccessResponse(connection, setStateRequest);
            }
            else if (rewReadRequest != null)
            {
                response = this.CreateTransRawReadNmpipeSuccessResponse(connection, rewReadRequest, new byte[0]);
            }
            else if (queryStateRequest != null)
            {
                response = this.CreateTransQueryNmpipeStateSuccessResponse(connection, queryStateRequest,
                    SMB_NMPIPE_STATUS.Endpoint);
            }
            else if (queryInfoRequest != null)
            {
                response = this.CreateTransQueryNmpipeInfoSuccessResponse(connection, queryInfoRequest, 0x0, 0x0, 0x0,
                    0x0, @"\\Cifs\share");
            }
            else if (peekStateRequest != null)
            {
                response = this.CreateTransPeekNmpipeSuccessResponse(connection, peekStateRequest, 0x0, 0x0,
                    SMB_NMPIPE_STATUS.Endpoint, new byte[0]);
            }
            else if (transactRequest != null)
            {
                response = this.CreateTransTransactNmpipeSuccessResponse(connection, transactRequest, new byte[0]);
            }
            else if (rawWriteRequest != null)
            {
                response = this.CreateTransRawWriteNmpipeSuccessResponse(connection, rawWriteRequest);
            }
            else if (readRequest != null)
            {
                response = this.CreateTransReadNmpipeSuccessResponse(connection, readRequest, new byte[0]);
            }
            else if (writeRequest != null)
            {
                response = this.CreateTransWriteNmpipeSuccessResponse(connection, writeRequest);
            }
            else if (callRequest != null)
            {
                response = this.CreateTransCallNmpipeSuccessResponse(connection, callRequest, new byte[0]);
            }
            else if (rapRequest != null)
            {
                response = new SmbTransRapResponsePacket();
                response.SmbHeader = CifsMessageUtils.CreateSmbHeader(connection, request);
            }

            return response;
        }
 /// <summary>
 /// Deep copy constructor. 
 /// </summary>
 public SmbTransRapResponsePacket(SmbTransRapResponsePacket packet)
     : base(packet)
 {
 }
 /// <summary>
 /// Deep copy constructor.
 /// </summary>
 public SmbTransRapResponsePacket(SmbTransRapResponsePacket packet)
     : base(packet)
 {
 }