コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        public void Add(VirtualDisk disk)
        {
            DynamicDisk dynDisk = new DynamicDisk(disk);

            _disks.Add(dynDisk.Id, dynDisk);
        }