Использование INX-файлов для создания INF-файлов
При написании драйвера Windows вместо поддержки нескольких INF-файлов для конкретных версий можно создать один INX-файл и использовать Microsoft Visual Studio или средство Stampinf для создания INF-файлов для конкретной версии, когда они вам нужны.
INX-файл похож на INF-файл, но содержит строковые переменные, представляющие сведения о версии.
При сборке драйвера с помощью Visual Studio процесс сборки запускает Stampinf, чтобы заменить строковые переменные в INX-файлах текстовыми строками, представляющими определенную архитектуру оборудования или версию платформы. Вы также можете вручную запустить Stampinf, который находится в подкаталоге bin WDK.
Чтобы изменить свойства Stampinf в Visual Studio, выполните следующие действия.
- Откройте страницы свойств для проекта пакета драйверов.
- Щелкните правой кнопкой мыши проект пакета в Обозреватель решений и выберите Свойства.
- На страницах свойств пакета щелкните Свойства конфигурации, а затем — StampInf.
WDK включает INX-файлы для всех примеров драйверов KMDF и UMDF.
В INX-файле можно использовать следующие строковые переменные:
$ARCH$
-
Stampinf заменяет эту переменную строкой для конкретной архитектуры. Например, если вы используете среду сборки x86, средство заменяет $ARCH$ на "x86". Строку $ARCH$ можно использовать везде, где необходимо указать определенную архитектуру в INF-файле, например в разделе [**INF Manufacturer**](.. /install/inf-manufacturer-section.md), как показано ниже:
[Manufacturer] %StdMfg%=Standard,NT$ARCH$
$KMDFCOINSTALLERVERSION$
-
Если используется [Stampinf](.. Параметр средства /devtest/stampinf.md) -*k*, Stampinf заменяет эту переменную строкой, представляющей определенную версию совместного установщика KMDF. Переменную $KMDFCOINSTALLERVERSION$ можно использовать при указании совместного установщика платформы в INF-файле, например в [**INF DDInstall.CoInstallers section**](.. /install/inf-ddinstall-coinstallers-section.md), как показано ниже:
[ECHO_Device.NT.CoInstallers] AddReg=ECHO_Device_CoInstaller_AddReg CopyFiles=ECHO_Device_CoInstaller_CopyFiles [ECHO_Device_CoInstaller_AddReg] HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller" [ECHO_Device_CoInstaller_CopyFiles] WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll
$KMDFVERSION$
-
Если вы задали свойство **НОМЕР версии KMDF** в Visual Studio (или используйте [Stampinf](.. Параметр средства /devtest/stampinf.md) -*k*). Stampinf заменяет эту переменную строкой, представляющей определенную версию KMDF. Переменную $KMDFVERSION$ можно использовать при указании версии платформы в INF-файле, например при указании директивы [KmdfLibraryVersion](installing-the-framework-s-co-installer.md) следующим образом:
KmdfLibraryVersion = $KMDFVERSION$
$UMDFCOINSTALLERVERSION$
[SourceDisksFiles] WudfUpdate_$UMDFCOINSTALLERVERSION$.dll=1[CoInstallers_CopyFiles] WudfUpdate_$UMDFCOINSTALLERVERSION$.dll
[CoInstallers_AddReg] HKR,,CoInstallers32,0x00010000,"WUDFUpdate_$UMDFCOINSTALLERVERSION$.dll"
$UMDFVERSION$
[UMDFYourDriver_Install] UmdfLibraryVersion=$UMDFVERSION$
Stampinf также поддерживает параметр -u для замены строковых переменных UMDF в INX-файле. Если пакет драйверов включает драйверы на основе UMDF и драйверы на основе KMDF, можно использовать параметры -k и -u с одной командой Stampinf и одним INX-файлом.