Поделиться через


Удаление устройств и пакетов драйверов

На этой странице описывается, как программное обеспечение удаляет устройство и удаляет пакет драйверов из хранилища драйверов.

Удаление устройства

Чтобы удалить узел устройства (devnode), представляющий физическое устройство, используйте одно из следующих элементов:

  • Чтобы удалить только указанное устройство, используйте приложение установки устройства, которое вызывает функцию SetupAPI SetupDiCallClassInstaller с запросом DIF_REMOVE.

  • Чтобы удалить указанное устройство и все устройства под ним в дереве устройств, используйте приложение установки устройства, которое вызывает функцию DiUninstallDevice.

При удалении устройства с помощью одного из этих методов диспетчер самонастраивающийся (PnP) удаляет связь между двоичными файлами драйвера и устройством.

Устройство остается в дереве ядра PnP, а пакет драйверов остается в хранилище драйверов. Если диспетчер PnP повторно перечисляет устройство (например, если устройство отключено, а затем подключено снова), диспетчер PnP обрабатывает его как новый экземпляр устройства и устанавливает пакет драйверов из хранилища драйверов.

Сведения о том, как конечный пользователь может удалить устройство, см. в разделе "Использование диспетчер устройств для удаления устройств и пакетов драйверов".

Удаление пакета драйвера из хранилища драйверов

Чтобы удалить пакет драйвера из хранилища драйверов, необходимо:

  • Убедитесь, что устройства не установлены с пакетом драйвера.
  • Удалите пакет драйвера из хранилища драйверов.

Для выполнения обоих этих действий с одним действием можно выполнить одно из следующих действий:

  • Начиная с Windows 10 версии 1607, в командной строке используйте pnputil /delete-driver <example.inf> /uninstall. Сведения о командах PnPUtil см. в синтаксисе команд PnPUtil.
  • Начиная с Windows 10 версии 1703, приложение установки устройства может вызывать DiUninstallDriverW.

В Windows 10 версии 1511 и более ранних версиях:

  1. Определите все устройства, установленные с пакетом драйвера, и обновите их таким образом, чтобы они не зависели от пакета драйвера. Вы можете выполнить одно из следующих действий:
    1. Установите другой пакет драйвера на устройстве.
    2. Используйте DiInstallDevice с флагом DIIDFLAG_INSTALLNULLDRIVER , чтобы установить на устройстве драйвер NULL.
    3. Удалите устройство.
  2. Затем приложение установки устройства вызывает SetupUninstallOEMInf , чтобы удалить пакет драйвера.

При удалении пакета драйвера из хранилища драйверов удаляются связанные метаданные из внутренней базы данных диспетчера PnP и удаляются связанные INF-файлы из системного каталога INF.

После удаления пакета драйвера он больше недоступен для установки на устройстве. Чтобы переустановить, скачайте пакет драйвера еще раз из исходного источника, например Обновл. Windows.

Удаление пакета драйвера вручную из хранилища драйверов может привести к непредсказуемому поведению.