# HG changeset patch # User moel.mich # Date 1342541459 0 # Node ID 25ef2c489ce817aa16a8949fdd99ddd842566dd8 # Parent daa9590e1beed69c4bf109f7272e7a9e8bb3f153 Attempt at fixing Issue 253 without breaking Issue 159 once more. diff -r daa9590e1bee -r 25ef2c489ce8 Hardware/Ring0.cs --- a/Hardware/Ring0.cs Sat Jul 14 19:24:04 2012 +0000 +++ b/Hardware/Ring0.cs Tue Jul 17 16:10:59 2012 +0000 @@ -123,9 +123,8 @@ driver.Open(); if (!driver.IsOpen) { - // driver is not loaded, try to reinstall and open + // driver is not loaded, try to install and open - driver.Delete(); fileName = GetTempFileName(); if (fileName != null && ExtractDriver(fileName)) { if (driver.Install(fileName)) { @@ -133,15 +132,28 @@ if (!driver.IsOpen) { driver.Delete(); - report.AppendLine("Status: Opening driver failed"); + report.AppendLine("Status: Opening driver failed after install"); } } else { - report.AppendLine("Status: Installing driver \"" + - fileName + "\" failed" + - (File.Exists(fileName) ? " and file exists" : "")); - report.AppendLine(); - report.Append("Exception: " + Marshal.GetExceptionForHR( - Marshal.GetHRForLastWin32Error()).Message); + // install failed, try to delete and reinstall + driver.Delete(); + + if (driver.Install(fileName)) { + driver.Open(); + + if (!driver.IsOpen) { + driver.Delete(); + report.AppendLine( + "Status: Opening driver failed after reinstall"); + } + } else { + report.AppendLine("Status: Installing driver \"" + + fileName + "\" failed" + + (File.Exists(fileName) ? " and file exists" : "")); + report.AppendLine(); + report.Append("Exception: " + Marshal.GetExceptionForHR( + Marshal.GetHRForLastWin32Error()).Message); + } } } else { report.AppendLine("Status: Extracting driver failed"); diff -r daa9590e1bee -r 25ef2c489ce8 Properties/AssemblyVersion.cs --- a/Properties/AssemblyVersion.cs Sat Jul 14 19:24:04 2012 +0000 +++ b/Properties/AssemblyVersion.cs Tue Jul 17 16:10:59 2012 +0000 @@ -10,5 +10,5 @@ using System.Reflection; -[assembly: AssemblyVersion("0.4.0.16")] -[assembly: AssemblyInformationalVersion("0.4.0.16 Alpha")] \ No newline at end of file +[assembly: AssemblyVersion("0.4.0.17")] +[assembly: AssemblyInformationalVersion("0.4.0.17 Alpha")] \ No newline at end of file