public bool readFromStream(FileStream stream)
        {
            byte[] buffer = new byte[length];
            int    result = stream.Read(buffer, 0, buffer.Length);

            if (result != buffer.Length)
            {
                return(false);
            }

            MemoryInputStream ms = new MemoryInputStream(buffer, isLittleEndian);

            downTime            = ms.readInt64();
            upTimeFromDownTime  = ms.readInt32();
            pageId              = ms.readInt32();
            status              = (byte)ms.ReadByte();
            penTipType          = (byte)ms.ReadByte();
            penTipColor         = ms.readInt32();
            codeTableFileNumber = ms.readInt16();
            codeTableFileOffset = ms.readInt32();
            codeCount           = ms.readInt16();
            successRate         = (byte)ms.ReadByte();
            checkSum            = (byte)ms.ReadByte();

            byte sum = ms.getByteCheckSum(0, buffer.Length - 1);

            return(sum == checkSum);
        }