Просмотр исходного кода

iSCSI Console application: Updates to match DiskAccessLibrary v1.5.1 API

Tal Aloni 6 лет назад
Родитель
Сommit
64753205e2

+ 1 - 5
ISCSIConsole/AddTargetForm.cs

@@ -92,11 +92,7 @@ namespace ISCSIConsole
             DialogResult result = selectVolume.ShowDialog();
             if (result == DialogResult.OK)
             {
-                VolumeDisk volumeDisk = new VolumeDisk(selectVolume.SelectedVolume);
-                if (selectVolume.IsReadOnly)
-                {
-                    volumeDisk.IsReadOnly = true;
-                }
+                VolumeDisk volumeDisk = new VolumeDisk(selectVolume.SelectedVolume, selectVolume.IsReadOnly);
                 AddDisk(volumeDisk);
             }
 #endif

+ 13 - 3
ISCSIConsole/Disks/VolumeDisk.cs

@@ -8,10 +8,12 @@ namespace ISCSIConsole
     public class VolumeDisk : Disk // a fake disk that serves a single volume
     {
         private Volume m_volume;
+        private bool m_isReadOnly;
         
-        public VolumeDisk(Volume volume)
+        public VolumeDisk(Volume volume, bool isReadOnly)
         {
             m_volume = volume;
+            m_isReadOnly = volume.IsReadOnly || isReadOnly;
         }
 
         public override byte[] ReadSectors(long sectorIndex, int sectorCount)
@@ -29,7 +31,7 @@ namespace ISCSIConsole
 
         public override int BytesPerSector
         {
-            get 
+            get
             {
                 return m_volume.BytesPerSector;
             }
@@ -37,12 +39,20 @@ namespace ISCSIConsole
 
         public override long Size
         {
-            get 
+            get
             {
                 return m_volume.Size;
             }
         }
 
+        public override bool IsReadOnly
+        {
+            get
+            {
+                return m_isReadOnly;
+            }
+        }
+
         public Volume Volume
         {
             get

+ 1 - 2
ISCSIConsole/SelectDiskImageForm.cs

@@ -35,7 +35,7 @@ namespace ISCSIConsole
             DiskImage diskImage;
             try
             {
-                diskImage = DiskImage.GetDiskImage(path);
+                diskImage = DiskImage.GetDiskImage(path, chkReadOnly.Checked);
             }
             catch (IOException ex)
             {
@@ -53,7 +53,6 @@ namespace ISCSIConsole
                 return;
             }
 
-            diskImage.IsReadOnly = chkReadOnly.Checked;
             bool isLocked = false;
             try
             {

+ 1 - 1
ISCSIConsole/Win32/SelectPhysicalDiskForm.cs

@@ -123,7 +123,7 @@ namespace ISCSIConsole
             }
             if (chkReadOnly.Checked)
             {
-                selectedDisk.IsReadOnly = true;
+                selectedDisk = new PhysicalDisk(selectedDisk.PhysicalDiskIndex, true);
             }
             m_selectedDisk = selectedDisk;
             this.DialogResult = DialogResult.OK;