
У меня есть драйвер под названием 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
Источники: