public static bool EjectDrive(string driveLetter) { try { var instance = new NativeUsbFunctions(); var handle = instance.CreateUsbEjectHandler(driveLetter); return(instance.Eject(handle)); } catch (Exception ex) { Logger.Error($"Failed to eject drive: '{driveLetter}' because: {ex.Message}"); return(false); } }
public void Disconnect() { Logger.Info($"Disconnect '{_drive}'"); if (!IsConnected) { Logger.Warn($"Drive '{_drive}' is already disconnected!"); return; } var result = NativeUsbFunctions.EjectDrive(_drive); if (result) { Logger.Info($"Succesfully ejected '{_drive}'"); } }