Added basic surface locking support
Position is driven by readbyte, no need to adjust seeking. Adjust length to the proper value

(this._data.length) === (this.length + this._startAt)