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


Обновление файлов драйверов

Драйверы обновляются каждый раз, когда происходит одно из следующих действий:

  • Мастер обновления оборудования запускается из диспетчер устройств.

    Примечание Начиная с Windows Vista, этот мастер теперь называется Мастер обновления драйверов программного обеспечения.

  • клиентский компонент Центра обновления Windows выполняется.

  • Выполняется установка программного обеспечения для устройства.

  • Начиная с Windows Vista, вы можете запустить средство PnPUtil из командной строки с повышенными привилегиями, чтобы установить или обновить пакет драйверов для устройства.

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

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

    Начиная с Windows Vista, программное обеспечение для установки также может вызывать один из следующих вызовов для обновления драйверов:

    • DiInstallDriver, который предварительно устанавливает драйвер, а затем устанавливает его на устройствах, присутствующих в системе, которую поддерживает драйвер.
    • DiInstallDevice, который устанавливает указанный драйвер из хранилища драйверов на указанном устройстве, которое присутствует в системе.

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

  • При обновлении драйвера установщики классов и со-установщики не должны предоставлять страницы завершения установки в ответ на DIF_NEWDEVICEWIZARD_FINISHINSTALL , если не требуется. Если это возможно, получите сведения о завершении установки из параметров предыдущей установки.

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

  • Начиная с Windows XP, значения реестра CoInstallers32 и EnumPropPages32 удаляются перед доставкой DIF_REGISTER_COINSTALLERS. INF-файлы для более ранних версий операционной системы должны явно удалить эти значения или выполнить с ними неаппендную операцию изменения.

  • Начиная с Windows XP, значения реестра UpperFilters и LowerFilters удаляются перед доставкой DIF_INSTALLDEVICE. INF-файлы для более ранних версий операционной системы должны явно удалить эти значения или выполнить с ними неаппендную операцию изменения.

  • Не используйте директивы INF DelFiles или ДИРЕКТИВы INF RenFiles при обновлении драйверов. Windows не может гарантировать, что определенный файл не используется другим устройством. (Установщики классов и со-установщики могут удалять или переименовывать файлы, если они могут надежно определить, что ни одно устройство не использует файлы.)

  • Используйте директиву INF DelReg , чтобы удалить старые записи реестра, относящиеся к устройству, из предыдущей установки устройства, если эти записи больше не нужны. (Не удаляйте записи глобального реестра.)

  • Не используйте директиву INF DelService в разделе INF DDInstall.Services для удаления ранее установленных служб устройств и драйверов с целевого компьютера. Windows не может гарантировать, что определенная служба не используется другим устройством. (Установщики классов и со-установщики могут удалять службы, если они могут надежно определить, что ни одно устройство не использует службы.)

  • При обновлении установщика класса, совместного установщика класса или библиотеки DLL службы необходимо присвоить новой версии новое имя файла.

Дополнительные сведения о INF-файлах см. в разделах Создание INF-файла и Разделов и директив INF-файлов.