public static List <Volume> GetVolumes(List <Disk> disks) { List <Volume> result = new List <Volume>(); List <DynamicDisk> dynamicDisks = new List <DynamicDisk>(); // Get partitions: foreach (Disk disk in disks) { if (!DynamicDisk.IsDynamicDisk(disk)) { List <Partition> partitions = BasicDiskHelper.GetPartitions(disk); foreach (Partition partition in partitions) { result.Add(partition); } } else { dynamicDisks.Add(DynamicDisk.ReadFromDisk(disk)); } } // Get dynamic volumes List <DynamicVolume> dynamicVolumes = DynamicVolumeHelper.GetDynamicVolumes(dynamicDisks); foreach (DynamicVolume volume in dynamicVolumes) { result.Add(volume); } return(result); }
public static List <Volume> GetDiskVolumes(Disk disk) { List <Volume> result = new List <Volume>(); DynamicDisk dynamicDisk = DynamicDisk.ReadFromDisk(disk); if (dynamicDisk == null) { // basic disk List <Partition> partitions = BasicDiskHelper.GetPartitions(disk); foreach (MBRPartition partition in partitions) { result.Add(partition); } } else { // dynamic disk List <DynamicVolume> dynamicVolumes = DynamicVolumeHelper.GetDynamicDiskVolumes(dynamicDisk); foreach (DynamicVolume volume in dynamicVolumes) { result.Add(volume); } } return(result); }
public static List <DynamicVolume> GetLockableDynamicVolumes(List <DynamicDisk> dynamicDisks) { List <DynamicVolume> result = new List <DynamicVolume>(); List <DynamicDisk> disks = new List <DynamicDisk>(); foreach (DynamicDisk dynamicDisk in dynamicDisks) { if (dynamicDisk.Disk is PhysicalDisk) { disks.Add(dynamicDisk); } } return(DynamicVolumeHelper.GetDynamicVolumes(disks)); }
public static LockStatus LockAllOrNone(List <DynamicDisk> disksToLock, List <DynamicVolume> volumesToLock) { bool success = DiskLockHelper.LockAllOrNone(disksToLock); if (!success) { return(LockStatus.CannotLockDisk); } List <Guid> volumeGuids = DynamicVolumeHelper.GetVolumeGuids(volumesToLock); success = LockAllVolumesOrNone(volumeGuids); if (!success) { DiskLockHelper.ReleaseLock(disksToLock); return(LockStatus.CannotLockVolume); } return(LockStatus.Success); }
public static List <DynamicVolume> GetDynamicVolumes() { List <DynamicDisk> disks = WindowsDynamicDiskHelper.GetPhysicalDynamicDisks(); return(DynamicVolumeHelper.GetDynamicVolumes(disks)); }