Обновление файлов драйверов
Драйверы обновляются каждый раз, когда происходит одно из следующих действий:
Мастер обновления оборудования запускается из диспетчер устройств.
Примечание Начиная с 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-файлов.