/// <summary>
 /// Deep copy constructor.
 /// </summary>
 public SmbTrans2QueryFsInformationFinalResponsePacket(SmbTrans2QueryFsInformationFinalResponsePacket packet)
     : base(packet)
 {
     this.InitDefaultValue();
     this.trans2Data.Data = packet.trans2Data.Data;
     this.informationLevel = packet.informationLevel;
 }
 /// <summary>
 /// Deep copy constructor.
 /// </summary>
 public SmbTrans2QueryFsInformationFinalResponsePacket(SmbTrans2QueryFsInformationFinalResponsePacket packet)
     : base(packet)
 {
     this.InitDefaultValue();
     this.trans2Data.Data  = packet.trans2Data.Data;
     this.informationLevel = packet.informationLevel;
 }
        public SmbTrans2QueryFsInformationFinalResponsePacket CreateTrans2QueryFsInformationFinalResponse(
            CifsServerPerConnection connection,
            SmbTrans2QueryFsInformationRequestPacket request,
            object queryFsInformationLevel)
        {
            if (queryFsInformationLevel != null &&
                !CheckInformationLevel(request.Trans2Parameters.InformationLevel, queryFsInformationLevel))
            {
                throw new InvalidCastException("The findInformationLevel must correspond with "
                    + request.Trans2Parameters.InformationLevel);
            }

            SmbTrans2QueryFsInformationFinalResponsePacket response =
                new SmbTrans2QueryFsInformationFinalResponsePacket();
            response.SmbHeader = CifsMessageUtils.CreateSmbHeader(connection, request);

            TRANS2_QUERY_FS_INFORMATION_Response_Trans2_Data trans2Data = response.Trans2Data;
            trans2Data.Data = queryFsInformationLevel;
            response.Trans2Data = trans2Data;

            response.UpdateCountAndOffset();

            return response;
        }