Share via


Especificando o co-instalador KMDF em um arquivo INF

Observação

Se o driver for destinado apenas a Windows 10, você não precisará redistribuir o WDF nem fornecer um Coinstaller em seu pacote de driver. Para direcionar Windows 10:

  1. No Visual Studio, na página de propriedades Configurações do Projeto, em Configurações do Driver ->Versão do sistema operacional de destino, selecione Windows 10 ou superior. Isso é equivalente a adicionar o seguinte ao arquivo .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
  1. Na Seção Fabricante do INF, especifique 10.0 como versão do sistema operacional de destino, da seguinte maneira:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0

Se você incluir um co-instalador em seu pacote de driver, leia este tópico para obter informações sobre seções que você deve fornecer no arquivo INF do driver. Essas informações não se aplicam se você fornecer seu próprio aplicativo de instalação que chama redistribuíveis .msu fornecidos pela Microsoft.

Seções de arquivo INF para o co-instalador

O arquivo INF do driver deve conter um INF DDInstall. Seção CoInstallers que instala o co-instalador. Por exemplo, esta seção pode ser denominada MyDevice.ntx86.CoInstallers. Para obter mais informações sobre como especificar um co-instalador em um arquivo INF, consulte a Seção INF DDInstall.CoInstallers.

Além disso, o arquivo INF do driver deve conter um INF DDInstall. Seção Wdf que o co-instalador lê depois de ter sido instalado. Por exemplo, esta seção pode ser denominada MyDevice.ntx86.Wdf. Depois que o co-instalador da estrutura for instalado, ele lerá esta seção enquanto estiver instalando o driver.

O INF DDInstall. A seção Wdf contém a seguinte diretiva:

  • KmdfService =DriverService,Wdf-install-section

DriverService representa o nome que o sistema operacional atribuirá ao serviço de modo kernel do driver e Wdf-install-section representa o nome de uma seção INF que o co-instalador lê para obter informações sobre o driver.

A seção INF que o Wdf-install-section identifica deve conter a seguinte diretiva:

  • KmdfLibraryVersion =WdfLibraryVersion

WdfLibraryVersion representa um número de versão da biblioteca, como "1.0" ou "1.11".

Por exemplo, o seguinte INF DDInstall. A seção Wdf especifica Echo_wdfsect como o nome Wdf-install-section .

[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0

Você pode evitar a criação de vários arquivos INF para várias versões da estrutura usando arquivos INX e a ferramenta Stampinf . Para obter mais informações sobre arquivos INX, consulte Usando arquivos INX para criar arquivos INF.

Exemplo deINF DDInstall. CoInstallers eDDInstall. Seções Wdf

O exemplo de código a seguir mostra como criar o INF DDInstall. Seção CoInstallers e INF DDInstall. Seção Wdf de um arquivo INF para um driver PnP. O exemplo mostra como criar um arquivo INF chamado MyDevice.inf e se baseia no arquivo Echo.inf do driver de exemplo ECHO. O driver de exemplo echo está localizado no diretório de exemplos do WDK.

Para criar MyDevice.inf, você deve alterar todas as subcadeias de ECHO_Device no Echo.inf para um nome apropriado para seu produto. O exemplo de código a seguir usa MyDevice.

Você deve tentar corresponder ao layout de seção usado pelo exemplo Echo.inf . Em outras palavras, se possível, mantenha as seções relacionadas ao co-instalador juntas para detectar mais facilmente erros de recortar e colar.

Antes de modificar echo.inf, as seções que instalam o co-instalador são as seguintes:

=============== 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 ===============

Depois de alterar todas as subcadeias de ECHO_Device , o arquivo MyDevice.inf deverá aparecer da seguinte maneira:

=============== 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 ===============