protected override int Read(long offset, byte[] buffer, int index, int length) { lock (CheckPointLock) { if (dataStream == null || !IsOpen) return 0; dataStream.Seek(offset, SeekOrigin.Begin); return dataStream.Read(buffer, index, length); } }