/// <summary> /// convert the payload of read 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_READ_ANDX_Response_SMB_Parameters ConvertSmbComReadResponsePacketPayload( Smb.SMB_COM_READ_ANDX_Response_SMB_Parameters subClassFormatPayload) { Cifs.SMB_COM_READ_ANDX_Response_SMB_Parameters baseClassFormatPayload = new Cifs.SMB_COM_READ_ANDX_Response_SMB_Parameters(); baseClassFormatPayload.WordCount = subClassFormatPayload.WordCount; baseClassFormatPayload.AndXCommand = subClassFormatPayload.AndXCommand; baseClassFormatPayload.AndXReserved = subClassFormatPayload.AndXReserved; baseClassFormatPayload.AndXOffset = subClassFormatPayload.AndXOffset; baseClassFormatPayload.Available = subClassFormatPayload.Available; baseClassFormatPayload.DataCompactionMode = subClassFormatPayload.DataCompactionMode; baseClassFormatPayload.Reserved1 = subClassFormatPayload.Reserved1; baseClassFormatPayload.DataLength = subClassFormatPayload.DataLength; baseClassFormatPayload.DataOffset = subClassFormatPayload.DataOffset; // reserved2 must be 5 words. baseClassFormatPayload.Reserved2 = new ushort[5]; // store DataLengthHigh to the first ushort of base. baseClassFormatPayload.Reserved2[0] = subClassFormatPayload.DataLengthHigh; baseClassFormatPayload.Reserved2[1] = subClassFormatPayload.Reserved2[0]; baseClassFormatPayload.Reserved2[2] = subClassFormatPayload.Reserved2[1]; baseClassFormatPayload.Reserved2[3] = subClassFormatPayload.Reserved2[2]; baseClassFormatPayload.Reserved2[4] = subClassFormatPayload.Reserved2[3]; return(baseClassFormatPayload); }
/// <summary> /// convert the payload of read 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_READ_ANDX_Response_SMB_Parameters ConvertSmbComReadResponsePacketPayload( Cifs.SMB_COM_READ_ANDX_Response_SMB_Parameters baseClassFormatPayload) { Smb.SMB_COM_READ_ANDX_Response_SMB_Parameters subClassFormatPayload = new Smb.SMB_COM_READ_ANDX_Response_SMB_Parameters(); subClassFormatPayload.WordCount = baseClassFormatPayload.WordCount; subClassFormatPayload.AndXCommand = baseClassFormatPayload.AndXCommand; subClassFormatPayload.AndXReserved = baseClassFormatPayload.AndXReserved; subClassFormatPayload.AndXOffset = baseClassFormatPayload.AndXOffset; subClassFormatPayload.Available = baseClassFormatPayload.Available; subClassFormatPayload.DataCompactionMode = baseClassFormatPayload.DataCompactionMode; subClassFormatPayload.Reserved1 = baseClassFormatPayload.Reserved1; subClassFormatPayload.DataLength = baseClassFormatPayload.DataLength; subClassFormatPayload.DataOffset = baseClassFormatPayload.DataOffset; // DataLengthHigh stored in the first ushort of base. subClassFormatPayload.DataLengthHigh = baseClassFormatPayload.Reserved2[0]; // reserved2 must be 4 words. subClassFormatPayload.Reserved2 = new ushort[4]; subClassFormatPayload.Reserved2[0] = baseClassFormatPayload.Reserved2[1]; subClassFormatPayload.Reserved2[1] = baseClassFormatPayload.Reserved2[2]; subClassFormatPayload.Reserved2[2] = baseClassFormatPayload.Reserved2[3]; subClassFormatPayload.Reserved2[3] = baseClassFormatPayload.Reserved2[4]; return(subClassFormatPayload); }
/// <summary> /// convert the payload of read 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_READ_ANDX_Response_SMB_Parameters ConvertSmbComReadResponsePacketPayload( Cifs.SMB_COM_READ_ANDX_Response_SMB_Parameters baseClassFormatPayload) { Smb.SMB_COM_READ_ANDX_Response_SMB_Parameters subClassFormatPayload = new Smb.SMB_COM_READ_ANDX_Response_SMB_Parameters(); subClassFormatPayload.WordCount = baseClassFormatPayload.WordCount; subClassFormatPayload.AndXCommand = baseClassFormatPayload.AndXCommand; subClassFormatPayload.AndXReserved = baseClassFormatPayload.AndXReserved; subClassFormatPayload.AndXOffset = baseClassFormatPayload.AndXOffset; subClassFormatPayload.Available = baseClassFormatPayload.Available; subClassFormatPayload.DataCompactionMode = baseClassFormatPayload.DataCompactionMode; subClassFormatPayload.Reserved1 = baseClassFormatPayload.Reserved1; subClassFormatPayload.DataLength = baseClassFormatPayload.DataLength; subClassFormatPayload.DataOffset = baseClassFormatPayload.DataOffset; // DataLengthHigh stored in the first ushort of base. subClassFormatPayload.DataLengthHigh = baseClassFormatPayload.Reserved2[0]; // reserved2 must be 4 words. subClassFormatPayload.Reserved2 = new ushort[4]; subClassFormatPayload.Reserved2[0] = baseClassFormatPayload.Reserved2[1]; subClassFormatPayload.Reserved2[1] = baseClassFormatPayload.Reserved2[2]; subClassFormatPayload.Reserved2[2] = baseClassFormatPayload.Reserved2[3]; subClassFormatPayload.Reserved2[3] = baseClassFormatPayload.Reserved2[4]; return subClassFormatPayload; }