/// <summary> /// Function to Lock Volumes /// </summary> /// <param name="drive">Volume label</param> /// <returns> /// true on successful lock of the volumes,else false /// </returns> public bool LockVolume(string drive) { try { uint bytesWritten = 0; bool locked = DeviceIO.DeviceIoControl(this.fileHandle, DeviceIO.FSCTL_LOCK_VOLUME, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesWritten, IntPtr.Zero); if (locked == false) { Console.WriteLine("\nCoudln't lock volume\n"); } return(locked); } catch (Exception e) { Console.WriteLine(e.Message); return(false); } }
/// <summary> /// Function to Unmount Volumes /// </summary> /// <param name="drive">Volume label</param> /// <returns> /// true on successfull unmount of the volume, else false /// </returns> public bool UnmountVolume(string drive) { try { uint BytesWritten = 0; Console.WriteLine("\nAttempting to Unmount volume : " + drive + "\n"); bool unmounted = DeviceIO.DeviceIoControl(this.fileHandle, DeviceIO.FSCTL_DISMOUNT_VOLUME, IntPtr.Zero, 0, IntPtr.Zero, 0, ref BytesWritten, IntPtr.Zero); if (unmounted == false) { Console.WriteLine("\nCoudln't Dismount volume\n"); } return(unmounted); } catch (Exception e) { Console.WriteLine(e.Message); return(false); } }