Устанавливать/удалять драйвер .inf программно с помощью С#.net
Я делаю приложение, используя С#.net. Он также содержит драйвер мини-фильтра файловой системы. Я хочу установить и удалить этот драйвер программно с помощью С#.net. Обычно я могу установить это с помощью .INF файла (щелкнув правой кнопкой мыши + нажать "Установить" ). Но я хочу установить это программно. Существует функция SDK InstallHinfSection() для установки драйвера .inf. Я ищу эквивалент .net для этой функции.
Привет
Navaneeth
Ответы
Ответ 1
Попробуйте что-то вроде этого:
using System.Runtime.InteropServices;
[DllImport("Setupapi.dll", EntryPoint="InstallHinfSection", CallingConvention=CallingConvention.StdCall)]
public static extern void InstallHinfSection(
[In] IntPtr hwnd,
[In] IntPtr ModuleHandle,
[In, MarshalAs(UnmanagedType.LPWStr)] string CmdLineBuffer,
int nCmdShow);
Затем назовем это:
InstallHinfSection(IntPtr.Zero, IntPtr.Zero, "my path", 0);
Я сгенерировал большую часть этой сигнатуры, используя P/Invoke Generation Generator.
Полные сведения об этом методе и его параметрах находятся на MSDN. Согласно MSDN, первый параметр может быть нулевым, второй должен быть нулевым, а последний параметр должен быть 0. Вам нужно только передать строковый параметр.
Ответ 2
Этот простой код работал у меня
private void driverInstall()
{
var process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/c C:\\Windows\\System32\\InfDefaultInstall.exe " + driverPath; // where driverPath is path of .inf file
process.Start();
process.WaitForExit();
process.Dispose();
MessageBox.Show(@"Driver has been installed");
}