Использование совместного установщика UMDF
Примечание
Если драйвер предназначен только для Windows 10, вам не нужно повторно распространять WDF или предоставлять Coinstaller в пакете драйверов. Для целевого Windows 10:
- В Visual Studio на странице свойств Параметры проекта в разделе Параметры драйвера ->Целевая версия ОС выберите Windows 10 или выше. Это эквивалентно добавлению следующего кода в VCXPROJ-файл:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- В разделе Производитель INF укажите 10.0 в качестве целевой версии ОС следующим образом:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Возможно, вам по-прежнему потребуется ссылаться на предоставленный системой cointaller, как показано ниже:
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
Совместный установщик обновляет версию платформы, хранящуюся на компьютере, и обрабатывает разделы INF-файла для конкретной платформы. В этом разделе описываются два соустановщика UMDF, а также сведения о том, когда необходимо включить один из них в пакет установки драйвера или сослаться на другой установщик в INF-файле.
Получение пакета совместного установщика
В Windows 8.1 обновления распространяемой платформы, предоставляемые корпорацией Майкрософт, входят в состав комплекта драйверов Windows (WDK).
Полный список содержимого каталога совместного установщика см. в разделе Компоненты установки для драйверов KMDF.
Среди других компонентов каталог совместного установщика содержит установщик обновления, который называется WUDFUpdate_MMmmm.dll, где MM — основной номер версии, а mmm — дополнительный номер версии.
Совместный установщик обновления обновляет версию платформы UMDF, которая находится на компьютере. Например, если на компьютере используется UMDF версии 1.9, а в совместном установщике — версия 1.11, то совместный установщик обновляет версию платформы компьютера до версии 1.11.
Операционная система включает другой совместный установщик, называемый совместным установщиком конфигурации, или WudfCoinstaller.dll. Совместное средство установки конфигурации обрабатывает разделы, относящиеся к UMDF, в INF-файле драйвера и вносит все необходимые обновления в реестр.
Ссылки на совместные установщики из INF-файла
Если вы пишете драйвер UMDF 2.0 для Windows 8.1, inf-файл должен ссылаться на совместное установщик конфигурации. Так как установщик конфигурации включен в операционную систему, его не нужно распространять.
Если вы пишете драйвер UMDF 1.11, предназначенный для операционных систем до Windows 8.1, необходимо убедиться, что версия 1.11 платформы установлена на компьютерах, использующих драйвер. Это можно сделать тремя способами:
Обратитесь к совместному установщику обновления в INF-файле и включите его в пакет установки драйвера. Когда операционная система устанавливает драйвер, она запускает совместный установщик. Если драйвер будет распространяться через клиентский компонент Центра обновления Windows, необходимо выбрать этот параметр.
Повторно разместите соответствующий пакет MSU (например, umdf-1.11-Win-6.0.msu) вместе с приложением установки, которое вызывает его. Пример такого приложения можно найти в подкаталоге src\general\wdkinstall установки WDK. Этот вариант можно выбрать, если вы пишете программу установки, которая поставляется вместе с устройством и должна быть запущена перед использованием устройства. При выборе этого параметра INF-файл должен ссылаться на совместный установщик конфигурации.
Используйте клиентский компонент Центра обновления Windows для установки требуемой версии платформы на компьютерах, использующих драйвер. Начиная с версии 1.11 платформы новые версии UMDF распространяются через клиентский компонент Центра обновления Windows. При выборе этого параметра INF-файл должен ссылаться на совместный установщик конфигурации.
В INF-файле всегда необходимо ссылаться либо на со-установщик обновления, либо на со-установщик конфигурации. Однако ссылки на оба совместного установщика в INF-файле приведут к ошибкам установки.
Разделы INF-файла для совместного установщика
INF-файл драйвера должен содержать раздел INF DDInstall.CoInstallers. При повторном распространении совместного установщика обновления раздел DDInstall.CoInstallers должен содержать директивы INF AddReg и ДИРЕКТИВы INF CopyFiles, как показано в следующем примере.
[MyDriver_Install.CoInstallers]
AddReg = MyDriver_Install.CoInstallers_AddReg
CopyFiles = MyDriver_CoInstallers_CopyFiles
Директива INF AddReg определяет раздел INF, который создает запись реестра CoInstallers32 .
[MyDriver_Install.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01011.dll"
Директива INF CopyFiles определяет раздел INF, который копирует совместный установщик с устройства установки на системное устройство.
[MyDriver_CoInstallers_CopyFiles]
WudfUpdate_01011.dll
При повторном распространении пакета MSU в разделе DDInstall.CoInstallers должна быть указана директива AddReg , которая ссылается на совместный установщик конфигурации.
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
INF-файл драйвера всегда должен содержать раздел DDInstall.Wdf , который установщик считывает после установки. Сведения о директивах, которые драйвер может указать в DDInstall.Wdf, см. в разделе Указание директив WDF в INF-файлах.
Можно избежать создания нескольких INF-файлов для нескольких версий платформы с помощью INX-файлов и средства Stampinf . Дополнительные сведения об INX-файлах см. в разделе Использование INX-файлов для создания INF-файлов.