示例#1
0
 /// <summary>
 /// to decode the smb parameters: from the general SmbParameters to the concrete Smb Parameters.
 /// </summary>
 protected override void DecodeParameters()
 {
     if (this.smbParametersBlock.WordCount > 0)
     {
         this.smbParameters = TypeMarshal.ToStruct <SMB_COM_TREE_CONNECT_ANDX_Response_SMB_Parameters>(
             TypeMarshal.ToBytes(this.smbParametersBlock));
     }
 }
        /// <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>
        /// 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);
 }
 /// <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);
 }