예제 #1
0
        /// <summary>
        /// convert the payload of write response 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 Cifs.SMB_COM_WRITE_ANDX_Response_SMB_Parameters ConvertSmbComWriteResponsePacketPayload(
            Smb.SMB_COM_WRITE_ANDX_Response_SMB_Parameters subClassFormatPayload)
        {
            Cifs.SMB_COM_WRITE_ANDX_Response_SMB_Parameters
                baseClassFormatPayload = new Cifs.SMB_COM_WRITE_ANDX_Response_SMB_Parameters();

            baseClassFormatPayload.WordCount    = subClassFormatPayload.WordCount;
            baseClassFormatPayload.AndXCommand  = subClassFormatPayload.AndXCommand;
            baseClassFormatPayload.AndXReserved = subClassFormatPayload.AndXReserved;
            baseClassFormatPayload.AndXOffset   = subClassFormatPayload.AndXOffset;
            baseClassFormatPayload.Count        = subClassFormatPayload.Count;
            baseClassFormatPayload.Available    = subClassFormatPayload.Available;
            // save CountHigh to high 2 bytes in Reserved.
            baseClassFormatPayload.Reserved  = (uint)(subClassFormatPayload.Reserved << 16);
            baseClassFormatPayload.Reserved |= subClassFormatPayload.CountHigh;

            return(baseClassFormatPayload);
        }
예제 #2
0
        /// <summary>
        /// convert the payload of write response 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.SMB_COM_WRITE_ANDX_Response_SMB_Parameters ConvertSmbComWriteResponsePacketPayload(
            Cifs.SMB_COM_WRITE_ANDX_Response_SMB_Parameters baseClassFormatPayload)
        {
            Smb.SMB_COM_WRITE_ANDX_Response_SMB_Parameters
                subClassFormatPayload = new Smb.SMB_COM_WRITE_ANDX_Response_SMB_Parameters();

            subClassFormatPayload.WordCount    = baseClassFormatPayload.WordCount;
            subClassFormatPayload.AndXCommand  = baseClassFormatPayload.AndXCommand;
            subClassFormatPayload.AndXReserved = baseClassFormatPayload.AndXReserved;
            subClassFormatPayload.AndXOffset   = baseClassFormatPayload.AndXOffset;
            subClassFormatPayload.Count        = baseClassFormatPayload.Count;
            subClassFormatPayload.Available    = baseClassFormatPayload.Available;
            // get CountHigh from the low 2 bytes of Reserved
            subClassFormatPayload.CountHigh = (ushort)baseClassFormatPayload.Reserved;
            subClassFormatPayload.Reserved  = (ushort)(baseClassFormatPayload.Reserved >> 16);

            return(subClassFormatPayload);
        }
        /// <summary>
        /// convert the payload of write response 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.SMB_COM_WRITE_ANDX_Response_SMB_Parameters ConvertSmbComWriteResponsePacketPayload(
            Cifs.SMB_COM_WRITE_ANDX_Response_SMB_Parameters baseClassFormatPayload)
        {
            Smb.SMB_COM_WRITE_ANDX_Response_SMB_Parameters
                subClassFormatPayload = new Smb.SMB_COM_WRITE_ANDX_Response_SMB_Parameters();

            subClassFormatPayload.WordCount = baseClassFormatPayload.WordCount;
            subClassFormatPayload.AndXCommand = baseClassFormatPayload.AndXCommand;
            subClassFormatPayload.AndXReserved = baseClassFormatPayload.AndXReserved;
            subClassFormatPayload.AndXOffset = baseClassFormatPayload.AndXOffset;
            subClassFormatPayload.Count = baseClassFormatPayload.Count;
            subClassFormatPayload.Available = baseClassFormatPayload.Available;
            // get CountHigh from the low 2 bytes of Reserved
            subClassFormatPayload.CountHigh = (ushort)baseClassFormatPayload.Reserved;
            subClassFormatPayload.Reserved = (ushort)(baseClassFormatPayload.Reserved >> 16);

            return subClassFormatPayload;
        }