Exemple #1
0
        private Dictionary <string, PhysicalVolumeInfo> ScanForPhysicalVolumes()
        {
            Dictionary <string, PhysicalVolumeInfo> result = new Dictionary <string, PhysicalVolumeInfo>();

            // First scan physical volumes
            for (int i = 0; i < _disks.Count; ++i)
            {
                VirtualDisk disk   = _disks[i];
                string      diskId = GetDiskId(i);

                if (PartitionTable.IsPartitioned(disk.Content))
                {
                    foreach (var table in PartitionTable.GetPartitionTables(disk))
                    {
                        foreach (var part in table.Partitions)
                        {
                            PhysicalVolumeInfo pvi = new PhysicalVolumeInfo(diskId, disk, part);
                            result.Add(pvi.Identity, pvi);
                        }
                    }
                }
                else
                {
                    PhysicalVolumeInfo pvi = new PhysicalVolumeInfo(diskId, disk);
                    result.Add(pvi.Identity, pvi);
                }
            }

            return(result);
        }
 internal LogicalVolumeInfo(Guid guid, PhysicalVolumeInfo physicalVolume, SparseStreamOpenDelegate opener, long length, byte biosType, LogicalVolumeStatus status)
 {
     _guid = guid;
     _physicalVol = physicalVolume;
     _opener = opener;
     _length = length;
     _biosType = biosType;
     _status = status;
 }
Exemple #3
0
 internal LogicalVolumeInfo(Guid guid, PhysicalVolumeInfo physicalVolume, SparseStreamOpenDelegate opener, long length, byte biosType, LogicalVolumeStatus status)
 {
     _guid        = guid;
     _physicalVol = physicalVolume;
     _opener      = opener;
     _length      = length;
     _biosType    = biosType;
     _status      = status;
 }
        private Dictionary<string, PhysicalVolumeInfo> ScanForPhysicalVolumes()
        {
            Dictionary<string, PhysicalVolumeInfo> result = new Dictionary<string, PhysicalVolumeInfo>();

            // First scan physical volumes
            for (int i = 0; i < _disks.Count; ++i)
            {
                VirtualDisk disk = _disks[i];
                string diskId = GetDiskId(i);

                if (disk.IsPartitioned)
                {
                    foreach (var part in disk.Partitions.Partitions)
                    {
                        PhysicalVolumeInfo pvi = new PhysicalVolumeInfo(diskId, disk, part);
                        result.Add(pvi.Identity, pvi);
                    }
                }
                else
                {
                    PhysicalVolumeInfo pvi = new PhysicalVolumeInfo(diskId, disk);
                    result.Add(pvi.Identity, pvi);
                }
            }

            return result;
        }
 public abstract bool HandlesPhysicalVolume(PhysicalVolumeInfo volume);
 public abstract bool HandlesPhysicalVolume(PhysicalVolumeInfo volume);