Указание совместного установщика KMDF в INF-файле
Примечание.
Если драйвер предназначен только для Windows 10, вам не нужно распространять WDF или предоставлять Монетталлер в пакете драйвера. Чтобы использовать Windows 10, выполните приведенные действия.
- В Visual Studio на странице свойств "Параметры проекта" в разделе "Параметры драйвера -> Целевая версия ОС" выберите Windows 10 или более поздней. Это эквивалентно добавлению следующего в файл .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- В разделе производителя INF укажите 10.0 в качестве целевой версии ОС, как показано ниже.
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Если вы включаете в пакет драйвера совместное установщик, ознакомьтесь с этой статьей для получения сведений о разделах, которые необходимо указать в INF-файле драйвера. Эти сведения не применяются, если вы предоставляете собственное приложение установки, которое вызывает распространяемые компоненты MSU, предоставленное корпорацией Майкрософт.
Разделы INF-файлов для совместного установщика
INF-файл драйвера должен содержать INF DDInstall. Раздел CoInstallers , который устанавливает соустановщик. Например, этот раздел можно назвать MyDevice.ntx86.CoInstallers. Дополнительные сведения об указании совместного установщика в INF-файле см. в разделе INF DDInstall.CoInstallers.
Кроме того, INF-файл драйвера должен содержать INF DDInstall. Раздел Wdf , считываемый совместно установщиком после его установки. Например, этот раздел может называться MyDevice.ntx86.Wdf. После установки совместного установщика платформы он считывает этот раздел во время установки драйвера.
INF DDInstall. Раздел Wdf содержит следующую директиву:
- KmdfService = DriverService, Wdf-install-section
DriverService представляет имя, которое операционная система будет назначать службе режима ядра драйвера, а раздел Wdf-install-install-section представляет имя раздела INF, считываемого со установщиком для получения сведений о драйвере.
Раздел INF, определяющий Wdf-install-section , должен содержать следующую директиву:
- KmdfLibraryVersion = WdfLibraryVersion
WdfLibraryVersion представляет номер версии библиотеки, например "1.0" или "1.11".
Например, следующий INF DDInstall. Раздел Wdf указывает Echo_wdfsect в качестве имени Wdf-install-section.
[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0
Можно избежать создания нескольких INF-файлов для нескольких версий платформы с помощью INX-файлов и средства Stampinf . Дополнительные сведения о файлах INX см. в разделе "Использование INX-файлов для создания INF-файлов".
Пример INF DDInstall. CoInstallers и DDInstall. Разделы Wdf
В следующем примере кода показано, как создать INF DDInstall. Раздел CoInstallers и INF DDInstall. Раздел Wdf INF-файла для драйвера PnP. В примере показано, как создать INF-файл, который называется MyDevice.inf и основан на файле Echo.inf для примера ECHO драйвера. Пример драйвера Echo находится в каталоге примеров WDK.
Чтобы создать MyDevice.inf, необходимо изменить все ECHO_Device подстроки в Echo.inf на имя, соответствующее вашему продукту. В следующем примере кода используется MyDevice.
Необходимо попытаться сопоставить макет раздела, который используется в примере Echo.inf . Другими словами, по возможности сохраните разделы, связанные со установщиком, чтобы упростить поиск ошибок выреза и вставки.
Перед изменением echo.inf разделы, устанавливающие совместное установщик, приведены ниже.
=============== Top of Echo.inf ====================
....
....
[DestinationDirs]
DefaultDestDir = 12
ECHO_Device_CoInstaller_CopyFiles = 11
....
....
;
;--- ECHO_Device Co-installer installation ------
;
[ECHO_Device.NT.CoInstallers]
AddReg=ECHO_Device_CoInstaller_AddReg
CopyFiles=ECHO_Device_CoInstaller_CopyFiles
[ECHO_Device_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"
[ECHO_Device_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll
[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0
=============== End of Echo.inf ===============
После изменения всех ECHO_Device подстроок файл MyDevice.inf должен отображаться следующим образом:
=============== Top of MyDevice.inf ===============
....
....
[DestinationDirs]
DefaultDestDir = 12
MyDevice_CoInstaller_CopyFiles = 11
....
....
;
;--- MyDevice Co-installer installation ------
;
[MyDevice.NT.CoInstallers]
AddReg=MyDevice_CoInstaller_AddReg
CopyFiles=MyDevice_CoInstaller_CopyFiles
[MyDevice_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"
[MyDevice_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll
[MyDevice.NT.Wdf]
KmdfService = MyDevice, MyDevice_wdfsect
[MyDevice_wdfsect]
KmdfLibraryVersion = 1.0
....
....
=============== End of MyDevice.inf ===============