Функции, упрощающие установку драйверов

Приложение установки может использовать следующие функции, чтобы упростить установку пакета драйвера PnP.

DiInstallDevice (Windows Vista и более поздние версии Windows)

Функция DiInstallDevice устанавливает определенный пакет драйвера, предварительно установленный в Магазине драйверов на определенном устройстве, присутствующих в системе.

Приложение установки должно использовать эту функцию только в том случае, если оба из следующих значений имеют значение true:

  • Приложение включает несколько экземпляров устройства одного типа, то есть все экземпляры устройств имеют одинаковые аппаратные идентификаторы и совместимые идентификаторы.

  • Приложению необходимо, чтобы на экземплярах устройств были установлены пакеты драйверов, специфичные для конкретных экземпляров устройств.

В противном случае приложение установки должно использовать DiInstallDriver или UpdateDriverForPlugAndPlayDevices для установки пакета драйверов, который лучше всего подходит для устройства.

Вызывающий объект также может вызвать DiInstallDevice для выполнения следующих действий:

  • Найдите предварительно установленный пакет драйвера, который лучше всего подходит для устройства.

  • Установите драйвер NULL на определенном устройстве.

  • Уведомите вызывающего абонента о необходимости перезагрузки системы для завершения установки.

DiInstallDriver (Windows Vista и более поздние версии Windows)

Функция DiInstallDriver предварительно устанавливает пакет драйверов в Магазине драйверов , а затем устанавливает пакет драйвера на всех устройствах, присутствующих в системе с идентификатором оборудования или совместимым идентификатором, соответствующим пакету драйвера.

Вызов DiInstallDriver или UpdateDriverForPlugAndPlayDevices — самый простой способ установки приложения для установки нового пакета драйверов для устройства. DiInstallDriver и UpdateDriverForPlugAndPlayDevices выполняют те же основные операции установки. Однако UpdateDriverForPlugAndPlayDevices поддерживает дополнительные параметры установки.

По умолчанию DiInstallDriver устанавливает только пакет драйвера на устройстве, если пакет драйвера лучше соответствует устройству, чем пакет драйвера, установленный на устройстве. Сведения о том, как Windows выбирает пакет драйвера для устройства, см. в статье "Выбор драйверов Windows".

Вызывающий объект также может вызвать DiInstallDriver для выполнения следующих действий:

  • Принудительная установка указанного пакета драйвера независимо от того, соответствует ли пакет драйвера устройству лучше, чем пакет драйвера, установленный в данный момент на устройстве.

    Осторожность Принудительная установка пакета драйверов может привести к замене более совместимого или более нового пакета драйверов с менее совместимым или старым пакетом драйверов.

  • Укажите вызывающему объекту, требуется ли перезагрузка системы для завершения установки.

DiRollbackDriver (Windows Vista и более поздние версии Windows)

Функция DiRollbackDriver заменяет пакет драйвера, который в настоящее время установлен на устройстве с ранее установленным пакетом драйвера резервного копирования, установленным для устройства. Эта функция предоставляется прежде всего для восстановления устройства в рабочем состоянии в случае, если устройство выходит из строя после обновления пакета драйвера для устройства. Эта функция выполняет ту же операцию, которая будет выполнена, если пользователь щелкнул «Откат драйвера» на странице драйвера устройства в диспетчере устройств.

Windows поддерживает не более одного пакета драйвера резервного копирования для устройства. Windows задает пакет драйвера в качестве драйвера резервного копирования для устройства сразу после успешной установки пакета драйвера на устройстве, и Windows определяет, что устройство работает правильно. Однако если пакет драйвера не установлен на устройстве или устройство не работает правильно после установки, Windows не устанавливает пакет драйвера в качестве драйвера резервного копирования для устройства.

Вызывающий объект также может вызвать DiRollbackDriver, чтобы осуществить следующее:

  • Запретить отображение любого компонента пользовательского интерфейса, связанного с откатом драйвера.

  • Укажите вызывающему объекту, требуется ли перезагрузка системы для завершения установки.

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

UpdateDriverForPlugAndPlayDevices

Функция UpdateDriverForPlugAndPlayDevices устанавливает пакет драйвера на всех устройствах, присутствующих в системе с идентификатором оборудования или совместимым идентификатором, соответствующим пакету драйвера.

Вызов этой функции или DiInstallDriver — самый простой способ для установочного приложения установить новый пакет драйверов, который лучше всего подходит для устройств в системе. Базовая операция UpdateDriverForPlugAndPlayDevices аналогична операции DiInstallDriver. Однако UpdateDriverForPlugAndPlayDevices поддерживает дополнительные параметры установки.

По умолчанию UpdateDriverForPlugAndPlayDevices устанавливает только пакет драйвера на устройстве, если пакет драйвера лучше соответствует устройству, чем пакет драйвера, установленный на устройстве.

Вызывающий объект также может при необходимости вызвать UpdateDriverForPlugAndPlayDevices для выполнения следующих действий:

  • Принудительная установка указанного пакета драйвера независимо от того, соответствует ли пакет драйвера устройству лучше, чем пакет драйвера, установленный в данный момент на устройстве.

    Осторожность Принудительная установка пакета драйверов может привести к замене более совместимого или более нового пакета драйверов с менее совместимым или старым пакетом драйверов.

  • Отключайте копирование, переименование или удаление файлов установки.

  • Подавление отображения компонентов пользовательского интерфейса.

  • Укажите вызывающему объекту, требуется ли перезагрузка системы для завершения установки.