Compartilhar via


Especificar o coinstalador da KMDF em um arquivo INF

Observação

Se o driver for direcionado apenas ao Windows 10, você não precisará redistribuir o WDF ou fornecer um Coinstaller no pacote de driver. Para direcionar o 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 equivale 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 as 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. CoInstallers que instala o co-instalador. Por exemplo, esta seção pode ser chamada de 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. Wdf que o co-instalador lê após a instalação. Por exemplo, essa seção pode ser nomeada MyDevice.ntx86.Wdf. Depois que o co-instalador da estrutura tiver sido instalado, ele lerá esta seção enquanto estiver instalando o driver.

O INF DDInstall. 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 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 da seção de instalação do Wdf.

[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 de INF DDInstall. CoInstallers e DDInstall. Seções Wdf

O exemplo de código a seguir mostra como criar o INF DDInstall. Seção CoInstallers e INF DDInstall. Wdf de um arquivo INF para um driver PnP. O exemplo mostra como criar um arquivo INF chamado MyDevice.inf e baseado 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 caracteres ECHO_Device em Echo.inf para um nome apropriado para o seu produto. O exemplo de código a seguir usa MyDevice.

Você deve tentar corresponder ao layout de seção que o exemplo Echo.inf usa. 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 caracteres ECHO_Device , o arquivo MyDevice.inf deve 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 ===============