public override Boolean WriteExtents(Byte[] myByteArray, ObjectExtentsList myObjectExtentsList) { try { UInt64 _CopyLength; Byte[] _ByteArray = null; UInt64 _myByteArrayLength = myByteArray.ULongLength(); foreach (var _ObjectExtent in myObjectExtentsList) { _ByteArray = new Byte[_ObjectExtent.Length]; _CopyLength = _ObjectExtent.Length; if (_ObjectExtent.LogicalPosition + _CopyLength > _myByteArrayLength) _CopyLength = (_myByteArrayLength - _ObjectExtent.LogicalPosition); Array.Copy(myByteArray, (Int32)_ObjectExtent.LogicalPosition, _ByteArray, 0, (Int32)_CopyLength); _ByteCache.Cache(_ObjectExtent.PhysicalPosition, _ByteArray); _WriteQueue.Write(new QueueEntry(myByteArray, myObjectExtentsList)); } return true; } catch (Exception e) { throw new FileStorageException("Error writing " + myByteArray.ULongLength() + " bytes using extents " + myObjectExtentsList.ToString() + "! " + e.Message); } }