/// <summary> /// convert the payload of tree connect 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_TREE_CONNECT_ANDX_Response_SMB_Parameters ConvertSmbComTreeConnectPacketPayload( Smb.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters subClassFormatPayload) { Cifs.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters baseClassFormatPayload = new Cifs.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters(); baseClassFormatPayload.WordCount = subClassFormatPayload.WordCount; baseClassFormatPayload.AndXCommand = subClassFormatPayload.AndXCommand; baseClassFormatPayload.AndXReserved = subClassFormatPayload.AndXReserved; baseClassFormatPayload.AndXOffset = subClassFormatPayload.AndXOffset; baseClassFormatPayload.OptionalSupport = subClassFormatPayload.OptionalSupport; return(baseClassFormatPayload); }
/// <summary> /// to decode the smb parameters: from the general SmbParameters to the concrete Smb Parameters. /// </summary> protected override void DecodeParameters() { // if smb packet, the word count must be 7. // end with more 2-int fields: MaximalShareAccessRights and GuestMaximalShareAccessRights. if (this.smbParametersBlock.WordCount == 7) { this.SmbParameters = CifsMessageUtils.ToStuct <SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters>( CifsMessageUtils.ToBytes <SmbParameters>(this.smbParametersBlock)); } // if cifs packet, the word count must be 3. else if (this.smbParametersBlock.WordCount == 3) { Cifs.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters param = CifsMessageUtils.ToStuct <Cifs.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters>( CifsMessageUtils.ToBytes <SmbParameters>(this.smbParametersBlock)); this.SmbParameters = SmbMessageUtils.ConvertSmbComTreeConnectPacketPayload(param); } else { this.smbParameters.WordCount = this.smbParametersBlock.WordCount; } }
/// <summary> /// convert the payload of tree connect 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_TREE_CONNECT_ANDX_Response_SMB_Parameters ConvertSmbComTreeConnectPacketPayload( Smb.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters subClassFormatPayload) { Cifs.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters baseClassFormatPayload = new Cifs.SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters(); baseClassFormatPayload.WordCount = subClassFormatPayload.WordCount; baseClassFormatPayload.AndXCommand = subClassFormatPayload.AndXCommand; baseClassFormatPayload.AndXReserved = subClassFormatPayload.AndXReserved; baseClassFormatPayload.AndXOffset = subClassFormatPayload.AndXOffset; baseClassFormatPayload.OptionalSupport = subClassFormatPayload.OptionalSupport; return baseClassFormatPayload; }