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

            subClassFormatPayload.WordCount           = baseClassFormatPayload.WordCount;
            subClassFormatPayload.TotalParameterCount = baseClassFormatPayload.TotalParameterCount;
            subClassFormatPayload.TotalDataCount      = baseClassFormatPayload.TotalDataCount;
            subClassFormatPayload.MaxParameterCount   = baseClassFormatPayload.MaxParameterCount;
            subClassFormatPayload.MaxDataCount        = baseClassFormatPayload.MaxDataCount;
            subClassFormatPayload.MaxSetupCount       = baseClassFormatPayload.MaxSetupCount;
            subClassFormatPayload.Reserved1           = baseClassFormatPayload.Reserved1;
            subClassFormatPayload.Flags           = baseClassFormatPayload.Flags;
            subClassFormatPayload.Timeout         = baseClassFormatPayload.Timeout;
            subClassFormatPayload.Reserved2       = baseClassFormatPayload.Reserved2;
            subClassFormatPayload.ParameterCount  = baseClassFormatPayload.ParameterCount;
            subClassFormatPayload.ParameterOffset = baseClassFormatPayload.ParameterOffset;
            subClassFormatPayload.DataCount       = baseClassFormatPayload.DataCount;
            subClassFormatPayload.DataOffset      = baseClassFormatPayload.DataOffset;
            subClassFormatPayload.SetupCount      = baseClassFormatPayload.SetupCount;
            subClassFormatPayload.Reserved3       = baseClassFormatPayload.Reserved3;
            subClassFormatPayload.Subcommand      = baseClassFormatPayload.Setup[0];
            subClassFormatPayload.Priority        = baseClassFormatPayload.Setup[1];
            subClassFormatPayload.Class           = (SmbTransMailslotClass)baseClassFormatPayload.Setup[2];

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

            subClassFormatPayload.WordCount = baseClassFormatPayload.WordCount;
            subClassFormatPayload.TotalParameterCount = baseClassFormatPayload.TotalParameterCount;
            subClassFormatPayload.TotalDataCount = baseClassFormatPayload.TotalDataCount;
            subClassFormatPayload.MaxParameterCount = baseClassFormatPayload.MaxParameterCount;
            subClassFormatPayload.MaxDataCount = baseClassFormatPayload.MaxDataCount;
            subClassFormatPayload.MaxSetupCount = baseClassFormatPayload.MaxSetupCount;
            subClassFormatPayload.Reserved1 = baseClassFormatPayload.Reserved1;
            subClassFormatPayload.Flags = baseClassFormatPayload.Flags;
            subClassFormatPayload.Timeout = baseClassFormatPayload.Timeout;
            subClassFormatPayload.Reserved2 = baseClassFormatPayload.Reserved2;
            subClassFormatPayload.ParameterCount = baseClassFormatPayload.ParameterCount;
            subClassFormatPayload.ParameterOffset = baseClassFormatPayload.ParameterOffset;
            subClassFormatPayload.DataCount = baseClassFormatPayload.DataCount;
            subClassFormatPayload.DataOffset = baseClassFormatPayload.DataOffset;
            subClassFormatPayload.SetupCount = baseClassFormatPayload.SetupCount;
            subClassFormatPayload.Reserved3 = baseClassFormatPayload.Reserved3;
            subClassFormatPayload.Subcommand = baseClassFormatPayload.Setup[0];
            subClassFormatPayload.Priority = baseClassFormatPayload.Setup[1];
            subClassFormatPayload.Class = (SmbTransMailslotClass)baseClassFormatPayload.Setup[2];

            return subClassFormatPayload;
        }