Установка драйверов через язык программирования

Установка драйверов через язык программирования

У меня есть драйвер под названием X, который управляет аппаратным компонентом A. Я хотел бы удалить этот диск и заменить его драйвером под названием Y, который также управляет компонентом A.

До сих пор я использовал .NET Framework 6.0, язык программирования C#, а также PNPUtil.exe для установки драйвера, но я думаю, что мой метод неправильный, потому что я только что сделал следующее:

ProcessStartInfo psi = new ProcessStartInfo
                {
                    FileName = "PnPUtil.exe",
                    Arguments = $"-i -a \"{driverFile}\"",
                    UseShellExecute = false,
                    CreateNoWindow = true,
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                };

Это просто установка, и устройство в консоли говорит, что оно установлено, но когда я захожу в Управление устройствами и ищу устройство по драйверу, я не нахожу свой драйвер Y. Я ищу ответ, чтобы продемонстрировать или указать на руководство о том, как это сделать, и может ли PowerShell также воспроизвести это. Моя ОС — Windows 11.

решение1

Вы устанавливаете драйвер, но будет ли он использоваться для устройства, зависит от определения драйвера в его .infфайле.

Обратите внимание, что если вы установите старый драйвер, Windows может автоматически обновить его до новой версии. Чтобы заблокировать это обновление, см. этот ответ.

Команда Windows для установки драйверов: PnPUtil, используя команду:

pnputil -i -a <driverinf>

Если в устанавливаемом INF-файле есть DefaultInstallраздел, его также можно установить с помощью этой команды:

rundll32 advpack.dll,LaunchINFSection <PathTo>\name.inf,,1

Если DefaultInstallраздел отсутствует, то вам необходимо найти, какой раздел install-section следует вызвать, с помощью команды:

rundll32 advpack.dll,LaunchINFSection <PathTo>\name.inf,<InstallSection>,1

Источники:

Связанный контент