private SparseStream OpenExtent(ExtentRecord extent) { DiskRecord disk = _database.GetDisk(extent.DiskId); DynamicDisk diskObj = _disks[new Guid(disk.DiskGuidString)]; return(new SubStream(diskObj.Content, Ownership.None, (diskObj.DataOffset + extent.DiskOffsetLba) * Sizes.Sector, extent.SizeLba * Sizes.Sector)); }
internal DynamicDiskGroup(VirtualDisk disk) { _disks = new Dictionary <Guid, DynamicDisk>(); DynamicDisk dynDisk = new DynamicDisk(disk); _database = dynDisk.Database; _disks.Add(dynDisk.Id, dynDisk); _record = dynDisk.Database.GetDiskGroup(dynDisk.GroupId); }
/// <summary> /// Adds a new disk to be managed. /// </summary> /// <param name="disk">The disk to manage</param> public void Add(VirtualDisk disk) { PrivateHeader header = DynamicDisk.GetPrivateHeader(disk); DynamicDiskGroup group; if (_groups.TryGetValue(header.DiskGroupId, out group)) { group.Add(disk); } else { group = new DynamicDiskGroup(disk); _groups.Add(header.DiskGroupId, group); } }
public void Add(VirtualDisk disk) { DynamicDisk dynDisk = new DynamicDisk(disk); _disks.Add(dynDisk.Id, dynDisk); }