12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace DiskAccessLibrary.LogicalDiskManager
- {
- public class DiskOfflineHelper
- {
- public static bool AreDynamicDisksOnlineAndWriteable()
- {
- List<DynamicDisk> disksToLock = WindowsDynamicDiskHelper.GetPhysicalDynamicDisks();
- List<PhysicalDisk> physicalDisks = new List<PhysicalDisk>();
- foreach (DynamicDisk dynamicDisk in disksToLock)
- {
- if (dynamicDisk.Disk is PhysicalDisk)
- {
- physicalDisks.Add((PhysicalDisk)dynamicDisk.Disk);
- }
- }
- foreach (PhysicalDisk disk in physicalDisks)
- {
- bool isReadOnly;
- bool isOnline = disk.GetOnlineStatus(out isReadOnly);
- if (!isOnline || isReadOnly)
- {
- return false;
- }
- }
- return true;
- }
-
-
-
- public static bool OfflineAllDynamicDisks()
- {
- List<DynamicDisk> disksToLock = WindowsDynamicDiskHelper.GetPhysicalDynamicDisks();
- return OfflineAllOrNone(disksToLock);
- }
- public static void OnlineAllDynamicDisks()
- {
- List<DynamicDisk> disksToOnline = WindowsDynamicDiskHelper.GetPhysicalDynamicDisks();
- foreach (DynamicDisk disk in disksToOnline)
- {
- ((PhysicalDisk)disk.Disk).SetOnlineStatus(true);
- }
- }
-
-
-
- public static bool OfflineAllOrNone(List<DynamicDisk> disksToLock)
- {
- List<PhysicalDisk> physicalDisks = new List<PhysicalDisk>();
- foreach (DynamicDisk dynamicDisk in disksToLock)
- {
- if (dynamicDisk.Disk is PhysicalDisk)
- {
- physicalDisks.Add((PhysicalDisk)dynamicDisk.Disk);
- }
- }
- return PhysicalDiskHelper.OfflineAllOrNone(physicalDisks);
- }
- }
- }
|