diff --git a/ConsoleApp2/342_102.ico b/ConsoleApp2/342_102.ico deleted file mode 100644 index 363a994..0000000 Binary files a/ConsoleApp2/342_102.ico and /dev/null differ diff --git a/ConsoleApp2/App.config b/ConsoleApp2/App.config deleted file mode 100644 index 00bfd11..0000000 --- a/ConsoleApp2/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ConsoleApp2/DifferentSLIAutoLoader.csproj b/ConsoleApp2/DifferentSLIAutoLoader.csproj deleted file mode 100644 index f006040..0000000 --- a/ConsoleApp2/DifferentSLIAutoLoader.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - - Debug - AnyCPU - {862EB500-474F-4FE4-8797-D399D71F46BB} - Exe - DifferentSLIAutoLoader - DifferentSLIAutoLoader - v4.6.1 - 512 - true - true - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - true - - - x64 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - app.manifest - - - DifferentSLIAutoLoader.Program - - - LocalIntranet - - - false - - - 342_102.ico - - - - - - - ..\packages\Microsoft.PowerShell.5.ReferenceAssemblies.1.1.0\lib\net4\System.Management.Automation.dll - - - - - - - - - - - - - - - - - - - - False - Microsoft .NET Framework 4.6.1 %28x86 i x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - - - - - \ No newline at end of file diff --git a/ConsoleApp2/DifferentSLIAutoLoader.csproj.user b/ConsoleApp2/DifferentSLIAutoLoader.csproj.user deleted file mode 100644 index 1b45811..0000000 --- a/ConsoleApp2/DifferentSLIAutoLoader.csproj.user +++ /dev/null @@ -1,13 +0,0 @@ - - - - publish\ - - - - - - pl-PL - false - - \ No newline at end of file diff --git a/ConsoleApp2/Properties/AssemblyInfo.cs b/ConsoleApp2/Properties/AssemblyInfo.cs deleted file mode 100644 index 090f38a..0000000 --- a/ConsoleApp2/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// Ogólne informacje o zestawie są kontrolowane poprzez następujący -// zestaw atrybutów. Zmień wartości tych atrybutów, aby zmodyfikować informacje -// powiązane z zestawem. -[assembly: AssemblyTitle("DifferentSLIAutoLoader")] -[assembly: AssemblyDescription("Simple console application for loading DifferentSLIAuto unsigned driver.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DifferentSLIAutoLoader")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Ustawienie elementu ComVisible na wartość false sprawia, że typy w tym zestawie są niewidoczne -// dla składników COM. Jeśli potrzebny jest dostęp do typu w tym zestawie z -// COM, ustaw wartość true dla atrybutu ComVisible tego typu. -[assembly: ComVisible(false)] - -// Następujący identyfikator GUID jest identyfikatorem biblioteki typów w przypadku udostępnienia tego projektu w modelu COM -[assembly: Guid("862eb500-474f-4fe4-8797-d399d71f46bb")] - -// Informacje o wersji zestawu zawierają następujące cztery wartości: -// -// Wersja główna -// Wersja pomocnicza -// Numer kompilacji -// Rewizja -// -// Możesz określić wszystkie wartości lub użyć domyślnych numerów kompilacji i poprawki -// przy użyciu symbolu „*”, tak jak pokazano poniżej: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ConsoleApp2/app.manifest b/ConsoleApp2/app.manifest deleted file mode 100644 index 3ce917f..0000000 --- a/ConsoleApp2/app.manifest +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/DifferentSLIAutoLoader.sln b/DifferentSLIAutoLoader.sln deleted file mode 100644 index 2981222..0000000 --- a/DifferentSLIAutoLoader.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.106 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DifferentSLIAutoLoader", "ConsoleApp2\DifferentSLIAutoLoader.csproj", "{862EB500-474F-4FE4-8797-D399D71F46BB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {862EB500-474F-4FE4-8797-D399D71F46BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {862EB500-474F-4FE4-8797-D399D71F46BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {862EB500-474F-4FE4-8797-D399D71F46BB}.Debug|x86.ActiveCfg = Debug|Any CPU - {862EB500-474F-4FE4-8797-D399D71F46BB}.Debug|x86.Build.0 = Debug|Any CPU - {862EB500-474F-4FE4-8797-D399D71F46BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {862EB500-474F-4FE4-8797-D399D71F46BB}.Release|Any CPU.Build.0 = Release|Any CPU - {862EB500-474F-4FE4-8797-D399D71F46BB}.Release|x86.ActiveCfg = Release|Any CPU - {862EB500-474F-4FE4-8797-D399D71F46BB}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2E279637-AA21-4E9A-94F2-9E4E9A24A4DD} - EndGlobalSection -EndGlobal diff --git a/DifferentSLIAutoTools/DifferentSLIAutoTools.csproj b/DifferentSLIAutoTools/DifferentSLIAutoTools.csproj index 243419f..ade6e90 100644 --- a/DifferentSLIAutoTools/DifferentSLIAutoTools.csproj +++ b/DifferentSLIAutoTools/DifferentSLIAutoTools.csproj @@ -60,6 +60,7 @@ Form1.cs + diff --git a/DifferentSLIAutoTools/Form1.cs b/DifferentSLIAutoTools/Form1.cs index 932b647..eaeefde 100644 --- a/DifferentSLIAutoTools/Form1.cs +++ b/DifferentSLIAutoTools/Form1.cs @@ -1,15 +1,5 @@ using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; -using System.Management; -using System.Threading; -using System.Diagnostics; namespace DifferentSLIAutoTools { @@ -27,39 +17,12 @@ private void Form1_Load(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) { - Process s = new Process(); - s.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "shark\\Sea.exe"; - s.StartInfo.Verb = "runas"; - s.Start(); - s.WaitForExit(); - Thread.Sleep(1000); - Process d = new Process(); - d.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "dsefix\\dsefix.exe"; - d.StartInfo.Verb = "runas"; - d.Start(); - d.WaitForExit(); - ManagementObjectSearcher searcher = - new ManagementObjectSearcher("SELECT * FROM Win32_VideoController"); - foreach (ManagementObject mo in searcher.Get()) - { - PropertyData name = mo.Properties["Description"]; - Process devManViewProc = new Process(); - devManViewProc.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "devmanview\\DevManView.exe"; - devManViewProc.StartInfo.Arguments = "/disable_enable \"" + name.Value + "\""; - devManViewProc.StartInfo.Verb = "runas"; - devManViewProc.Start(); - devManViewProc.WaitForExit(); - } + Logic.LoadDriver(); } private void button2_Click(object sender, EventArgs e) { - Process de = new Process(); - de.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "dsefix\\dsefix.exe"; - de.StartInfo.Arguments = "-e"; - de.StartInfo.Verb = "runas"; - de.Start(); - de.WaitForExit(); + Logic.dsefix(true); } } } diff --git a/ConsoleApp2/Program.cs b/DifferentSLIAutoTools/Logic.cs similarity index 74% rename from ConsoleApp2/Program.cs rename to DifferentSLIAutoTools/Logic.cs index 433f481..15e0b1a 100644 --- a/ConsoleApp2/Program.cs +++ b/DifferentSLIAutoTools/Logic.cs @@ -1,48 +1,51 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Management; -using System.Collections; -using System.Threading; -namespace DifferentSLIAutoLoader -{ - class Program - { - static void Main(string[] args) - { - Process s = new Process(); - s.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "shark\\Sea.exe"; - s.StartInfo.Verb = "runas"; - s.Start(); - s.WaitForExit(); - Thread.Sleep(1000); - Process d = new Process(); - d.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "dsefix\\dsefix.exe"; - d.StartInfo.Verb = "runas"; - d.Start(); - d.WaitForExit(); - ManagementObjectSearcher searcher = - new ManagementObjectSearcher("SELECT * FROM Win32_VideoController"); - foreach (ManagementObject mo in searcher.Get()) - { - PropertyData name = mo.Properties["Description"]; - Process devManViewProc = new Process(); - devManViewProc.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "devmanview\\DevManView.exe"; - devManViewProc.StartInfo.Arguments = "/disable_enable \"" + name.Value + "\""; - devManViewProc.StartInfo.Verb = "runas"; - devManViewProc.Start(); - devManViewProc.WaitForExit(); - } - Process de = new Process(); - de.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "dsefix\\dsefix.exe"; - de.StartInfo.Arguments = "-e"; - de.StartInfo.Verb = "runas"; - de.Start(); - de.WaitForExit(); - } - } -} +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Management; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace DifferentSLIAutoTools +{ + class Logic + { + public static void NoGui() + { + LoadDriver(); + dsefix(true); + } + public static void LoadDriver() + { + Process s = new Process(); + s.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "shark\\Sea.exe"; + s.StartInfo.Verb = "runas"; + s.Start(); + s.WaitForExit(); + Thread.Sleep(1000); + dsefix(false); + ManagementObjectSearcher searcher = + new ManagementObjectSearcher("SELECT * FROM Win32_VideoController"); + foreach (ManagementObject mo in searcher.Get()) + { + PropertyData name = mo.Properties["Description"]; + Process devManViewProc = new Process(); + devManViewProc.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "devmanview\\DevManView.exe"; + devManViewProc.StartInfo.Arguments = "/disable_enable \"" + name.Value + "\""; + devManViewProc.StartInfo.Verb = "runas"; + devManViewProc.Start(); + devManViewProc.WaitForExit(); + } + } + public static void dsefix(bool withArgument) + { + Process de = new Process(); + de.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "dsefix\\dsefix.exe"; + if (withArgument) de.StartInfo.Arguments = "-e"; + de.StartInfo.Verb = "runas"; + de.Start(); + de.WaitForExit(); + } + } +} diff --git a/DifferentSLIAutoTools/Program.cs b/DifferentSLIAutoTools/Program.cs index eb5de1c..7b56a02 100644 --- a/DifferentSLIAutoTools/Program.cs +++ b/DifferentSLIAutoTools/Program.cs @@ -1,19 +1,21 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; using System.Windows.Forms; namespace DifferentSLIAutoTools { static class Program { - /// - /// Główny punkt wejścia dla aplikacji. - /// [STAThread] - static void Main() + static void Main(string[] args) { + if (args.Length > 0) + { + if (args[0].ToLower().Equals("/nogui")) + { + Logic.NoGui(); + System.Environment.Exit(0); + } + } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); diff --git a/Install (Run as Admin).bat b/Install (Run as Admin).bat index 1bcdfa7..50b3161 100644 --- a/Install (Run as Admin).bat +++ b/Install (Run as Admin).bat @@ -1,4 +1,3 @@ @echo off -md "C:\DifferentSLIAutoLoader" -xcopy %~dp0\DifferentSLIAutoLoader C:\DifferentSLIAutoLoader /s /y -SchTasks /Create /SC ONSTART /TN "DifferentSLIAutoLoader" /TR C:\DifferentSLIAutoLoader\DifferentSLIAutoLoader.exe /ru system /F \ No newline at end of file +SET path=%~dp0 +SchTasks /Create /SC ONSTART /TN "DifferentSLIAutoLoader" /TR "%path%DifferentSLIAutoTools.exe /nogui" /ru system /F \ No newline at end of file diff --git a/README.md b/README.md index 0521ee0..4fb1f97 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,34 @@ # DifferentSLIAutoLoader Simple console application made in C# for loading Nvidia unsigned driver. -What is this for? ---- +## What is this for? + DifferentSLIAutoLoader is made for use with DifferentSLIAuto patch. It's a simple console application made in C# that allow you to load unsigned GPU driver without using Test Mode. -How to use it with DifferentSLIAuto patch? ---- -You need to follow steps from my TechPowerUP forum post: -https://www.techpowerup.com/forums/threads/sli-with-different-cards.158907/post-3996362 +## How to use it with DifferentSLIAuto patch? +1. Install original Nvidia Driver. +2. Download DifferentSLIAutoLoader from Github and extract it. +3. Copy nvlddmkm.sys from System32 to DifferentSLIAuto patch folder. You can search for "nvlddmkm" in System32 folder or open Device Manager and open GPU details, Driver tab, Driver details button and look for file there. +4. Patch nvlddmkm.sys with DifferentSLIAuto.exe or HexEditor (depending on version of driver). +5. Boot into safe mode. +6. Change the driver in System32 to the modified one. +7. Reboot computer. +8. Go to DifferetnSLIAutoLoader folder and run DifferentSLIAutoTools.exe. +9. Click "Load driver" button. +10. Go to Nvidia Control Panel and turn on SLI. +11. Go back to DifferentSLIAutoTools and click "Re-enable DSE" button. +12. Find Install script in DifferentSLIAutoLoader folder and run it as Admin. +13. Success! + +##### If you move DifferetnSLIAutoLoader somewhere else on your PC, you need to run install script again to update location. + +To find what you need to edit in HexEditor, head over to techpowerup forum: + +https://www.techpowerup.com/forums/threads/sli-with-different-cards.158907/page-121#post-3987274 + +https://www.techpowerup.com/forums/threads/sli-with-different-cards.158907/page-121#post-3988487 -Respositories and apps used in DifferentSLIAutoLoader ---- +## Respositories and apps used in DifferentSLIAutoLoader DSEFix by hfiref0x: https://github.com/hfiref0x/DSEFix diff --git a/Uninstall (Run as Admin).bat b/Uninstall (Run as Admin).bat index 4ecb930..bb23b0d 100644 --- a/Uninstall (Run as Admin).bat +++ b/Uninstall (Run as Admin).bat @@ -1,3 +1,2 @@ @echo off -rmdir C:\DifferentSLIAutoLoader /q /s SchTasks /Delete /TN DifferentSLIAutoLoader /F \ No newline at end of file