From 194d0a6d5dbd0efa752c24907ab990b152b03c22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=B6ller?= Date: Tue, 17 Jul 2012 16:10:59 +0000 Subject: [PATCH] Attempt at fixing Issue 253 without breaking Issue 159 once more. --- Hardware/Ring0.cs | 30 +++++++++++++++++++++--------- Properties/AssemblyVersion.cs | 4 ++-- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Hardware/Ring0.cs b/Hardware/Ring0.cs index d03893b..98ceb64 100644 --- a/Hardware/Ring0.cs +++ b/Hardware/Ring0.cs @@ -123,9 +123,8 @@ namespace OpenHardwareMonitor.Hardware { 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 @@ namespace OpenHardwareMonitor.Hardware { 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 --git a/Properties/AssemblyVersion.cs b/Properties/AssemblyVersion.cs index 2640de0..7e19d30 100644 --- a/Properties/AssemblyVersion.cs +++ b/Properties/AssemblyVersion.cs @@ -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