/// <summary>
        /// convert the payload of transaction packet from sub class format to base class format, that is Smb 
        /// to Cifs format. 
        /// </summary>
        /// <param name = "subClassFormatPayload">the sub class format, Smb format </param>
        /// <returns>the base class format, Cifs format </returns>
        internal static SMB_COM_TRANSACTION_Request_SMB_Parameters ConvertTransactionFilePacketPayload(
            SMB_COM_TRANSACTION_Request_SMB_Parameters_File subClassFormatPayload)
        {
            Cifs.SMB_COM_TRANSACTION_Request_SMB_Parameters
                baseClassFormatPayload = new Cifs.SMB_COM_TRANSACTION_Request_SMB_Parameters();

            baseClassFormatPayload.WordCount = subClassFormatPayload.WordCount;
            baseClassFormatPayload.TotalParameterCount = subClassFormatPayload.TotalParameterCount;
            baseClassFormatPayload.TotalDataCount = subClassFormatPayload.TotalDataCount;
            baseClassFormatPayload.MaxParameterCount = subClassFormatPayload.MaxParameterCount;
            baseClassFormatPayload.MaxDataCount = subClassFormatPayload.MaxDataCount;
            baseClassFormatPayload.MaxSetupCount = subClassFormatPayload.MaxSetupCount;
            baseClassFormatPayload.Reserved1 = subClassFormatPayload.Reserved1;
            baseClassFormatPayload.Flags = subClassFormatPayload.Flags;
            baseClassFormatPayload.Timeout = subClassFormatPayload.Timeout;
            baseClassFormatPayload.Reserved2 = subClassFormatPayload.Reserved2;
            baseClassFormatPayload.ParameterCount = subClassFormatPayload.ParameterCount;
            baseClassFormatPayload.ParameterOffset = subClassFormatPayload.ParameterOffset;
            baseClassFormatPayload.DataCount = subClassFormatPayload.DataCount;
            baseClassFormatPayload.DataOffset = subClassFormatPayload.DataOffset;
            baseClassFormatPayload.SetupCount = subClassFormatPayload.SetupCount;
            baseClassFormatPayload.Reserved3 = subClassFormatPayload.Reserved3;
            baseClassFormatPayload.Setup = new ushort[2];
            baseClassFormatPayload.Setup[0] = subClassFormatPayload.Subcommand;
            baseClassFormatPayload.Setup[1] = subClassFormatPayload.Fid;

            return baseClassFormatPayload;
        }
 /// <summary>
 /// initialize packet from base packet. 
 /// </summary>
 /// <param name = "packet">the base packet to initialize this packet. </param>
 public SmbTransReadNmpipeRequestPacket(Cifs.SmbTransReadNmpipeRequestPacket packet)
     : base(packet)
 {
     this.smbParameters = SmbMessageUtils.ConvertTransactionFilePacketPayload(packet.SmbParameters);
 }