установить / удалить драйвер .inf программно, используя C # .net - PullRequest
16 голосов
/ 09 января 2010

Я делаю заявку, используя c # .net. Он также содержит драйвер минифильтра файловой системы. Я хочу установить и удалить этот драйвер программно, используя c # .net. Обычно я могу установить это, используя файл .INF (щелкнув правой кнопкой мыши + нажать кнопку «Установить»). Но я хочу установить это программно. Существует функция SDK InstallHinfSection () для установки драйвера .inf. Я ищу .net эквивалент для этой функции.

Привет

Navaneeth

Ответы [ 2 ]

25 голосов
/ 09 января 2010

Попробуйте что-то вроде этого:

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 Signature Generator .

Полная информация об этом методе и его параметрах приведена на MSDN . Согласно MSDN первый параметр может быть нулевым, второй должен быть нулевым, а последний параметр должен быть 0. Вам нужно только передать строковый параметр.

5 голосов
/ 29 февраля 2016

Этот простой код работал для меня

    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");
    }
...