Использование совместного установщика UMDF
Заметка
Если ваш драйвер предназначен только для Windows 10, вам не нужно распространять WDF или предоставлять совместный установщик в пакете драйвера. Чтобы нацелиться на Windows 10, выполните приведенные действия.
- На странице свойств параметров проекта в разделе "Параметры драйвера " —>версии целевой ОСвыберите Windows 10 или более поздней. Это эквивалентно добавлению следующего в файл .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- В разделе производителя INFукажите 10.0 в качестве целевой версии ОС, как показано ниже.
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Возможно, вам все еще потребуется обратиться к системному соустановщику, как показано ниже:
[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. В установщике совместной конфигурации обрабатываются разделы INF-файла драйвера, относящиеся к UMDF, и вносятся необходимые обновления в реестр.
Ссылка на коустановщики из 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 см. в разделе Using INX Files to Create INF Files.