/// <summary>
        /// Deep copy constructor.
        /// </summary>
        public SmbQueryInformationDiskResponsePacket(SmbQueryInformationDiskResponsePacket packet)
            : base(packet)
        {
            this.InitDefaultValue();

            this.smbParameters.WordCount     = packet.SmbParameters.WordCount;
            this.smbParameters.TotalUnits    = packet.SmbParameters.TotalUnits;
            this.smbParameters.BlocksPerUnit = packet.SmbParameters.BlocksPerUnit;
            this.smbParameters.BlockSize     = packet.SmbParameters.BlockSize;
            this.smbParameters.FreeUnits     = packet.SmbParameters.FreeUnits;
            this.smbParameters.Reserved      = packet.SmbParameters.Reserved;
            this.smbData.ByteCount           = packet.SmbData.ByteCount;
        }
        /// <summary>
        /// Deep copy constructor.
        /// </summary>
        public SmbQueryInformationDiskResponsePacket(SmbQueryInformationDiskResponsePacket packet)
            : base(packet)
        {
            this.InitDefaultValue();

            this.smbParameters.WordCount = packet.SmbParameters.WordCount;
            this.smbParameters.TotalUnits = packet.SmbParameters.TotalUnits;
            this.smbParameters.BlocksPerUnit = packet.SmbParameters.BlocksPerUnit;
            this.smbParameters.BlockSize = packet.SmbParameters.BlockSize;
            this.smbParameters.FreeUnits = packet.SmbParameters.FreeUnits;
            this.smbParameters.Reserved = packet.SmbParameters.Reserved;
            this.smbData.ByteCount = packet.SmbData.ByteCount;
        }
        public SmbQueryInformationDiskResponsePacket CreateQueryInformationDiskResponse(
            CifsServerPerConnection connection,
            SmbQueryInformationDiskRequestPacket request,
            ushort totalUnits,
            ushort blocksPerUnit,
            ushort blockSize,
            ushort freeUnits
            )
        {
            SmbQueryInformationDiskResponsePacket response = new SmbQueryInformationDiskResponsePacket();
            response.SmbHeader = CifsMessageUtils.CreateSmbHeader(connection, request);

            SMB_COM_QUERY_INFORMATION_DISK_Response_SMB_Parameters smbParameters = response.SmbParameters;
            smbParameters.TotalUnits = totalUnits;
            smbParameters.BlocksPerUnit = blocksPerUnit;
            smbParameters.BlockSize = blockSize;
            smbParameters.FreeUnits = freeUnits;
            smbParameters.Reserved = 0x0000;
            smbParameters.WordCount = (byte)(TypeMarshal.GetBlockMemorySize(smbParameters) / 2);
            response.SmbParameters = smbParameters;

            return response;
        }