/// <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> /// initialize packet from base packet. /// </summary> /// <param name = "packet">the base packet to initialize this packet. </param> public SmbTreeConnectAndxResponsePacket(Cifs.SmbTreeConnectAndxResponsePacket packet) : base(packet) { this.smbParameters = SmbMessageUtils.ConvertSmbComTreeConnectPacketPayload(base.SmbParameters); }