/// <summary>
        /// Read block header.
        /// </summary>
        protected void ReadData(CBackupStream reader)
        {
            StartPosition = reader.BaseStream.Position;
            Streams       = new List <CDataStream>();

            BlockType          = (EBlockType)reader.ReadUInt32();
            Attributes         = (EBlockAttributes)reader.ReadUInt32();
            OffsetToFirstEvent = reader.ReadUInt16();
            OSID                 = (EOSID)reader.ReadByte();
            OSVersion            = reader.ReadByte();
            DisplayableSize      = reader.ReadUInt64();
            FormatLogicalAddress = reader.ReadUInt64();
            ReservedMBC          = reader.ReadUInt16();
            Reserved1            = reader.ReadUInt16();
            Reserved2            = reader.ReadUInt16();
            Reserved3            = reader.ReadUInt16();
            ControlBlock         = reader.ReadUInt32();
            Reserved4            = reader.ReadUInt32();
            OsSpecificData       = reader.ReadOsSpecificData(StartPosition, OSID, OSVersion, BlockType);
            StringType           = (EStringType)reader.ReadByte();
            Reserved5            = reader.ReadByte();
            HeaderChecksum       = reader.ReadUInt16();
        }