Share via


Componentes da Estrutura Redistribuível

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

Este tópico descreve as atualizações da estrutura redistribuível fornecidas pela Microsoft incluídas como parte do WDK (Kit de Driver do Windows) e como determinar quais serão adicionadas ao pacote de driver.

As atualizações de estrutura redistribuíveis possibilitam executar um driver criado com uma versão de estrutura posterior à incluída em um sistema operacional. Por exemplo, KMDF 1.11 está incluído no Windows 8. Mas você pode executar um driver KMDF 1.11 no Windows Vista ou no Windows 7. No entanto, antes de fazer isso, você deve garantir que a biblioteca de estruturas KMDF 1.11 substitua a biblioteca de estruturas incluída no sistema operacional anterior (nesse caso, KMDF 1.7 e KMDF 1.9, respectivamente). Faça isso redistribuindo um arquivo .msu ou um co-instalador fornecido pela Microsoft com seu pacote de driver.

Quando é necessário incluir um co-instalador ou .msu no meu pacote de driver?

Primeiro, decida quais versões do Windows seu driver dará suporte. Com base nisso, determine qual versão da estrutura usar.

Se a versão do WDF escolhida for mais recente do que a versão fornecida com o sistema operacional de destino, inclua o arquivo co-instalador ou .msu no pacote de driver.

Por exemplo, você deseja que seu driver seja executado no Windows 7. Você pode optar por criar seu driver usando o WDF 1.11 ou o WDF 1.9. Se você escolher 1.9, que é fornecido com o Windows 7, não será necessário atualizar o sistema. Por outro lado, se você escolher 1.11, precisará incluir um pacote de atualização do WDF 1.11 com o driver.

Devo incluir o co-instalador ou o arquivo .msu?

Se a instalação do driver for disparada conectando um novo dispositivo de hardware a um sistema e você estiver instalando apenas o driver, inclua o co-instalador no pacote de driver. Em seguida, faça referência ao co-instalador no arquivo INF, conforme descrito em Especificando o co-instalador KMDF em um arquivo INF.

Se você precisar instalar um aplicativo além do driver, deverá redistribuir o pacote MSU relevante (por exemplo, kmdf-1.11-Win.6.0.msu) juntamente com um aplicativo de instalação que o chama. Nesse caso, nenhuma entrada INF é necessária.

Você nunca precisa do co-instalador e do arquivo .msu.

Onde posso encontrar esses arquivos e o que está incluído?

Os co-instaladores estão localizados em %program files%\Windows Kits\<version>\redist\wdf.

Esse diretório contém os seguintes arquivos, para x86 e x64:

  • WdfCoinstaller01007.dll, WdfCoinstaller01009.dll, WdfCoinstaller01011.dll (co-instaladores para KMDF 1.7/1.9/1.11).
  • WUDFUpdate_01007.dll, WUDFUpdate_01009.dll, WUDFUpdate_01011.dll (co-instaladores para UMDF).
  • winusbcoinstaller.dll, winusbcoinstaller2.dll (co-instaladores para WinUSB 1.5/1.9).

Se você quiser o arquivo MSU, baixe e instale o pacote (no formato MSI) de componentes redistribuíveis do WDK 8. Após a instalação, a MSU e os co-instaladores podem ser encontrados em %program files%\Windows Kits\8.0\redist\wdf.

Nomenclatura e controle de versão do co-instalador

O co-instalador é chamado WdfCoInstallerMMmmm.dll.

  • MM é o número de versão principal.
  • mmm é o número de versão secundária.

Por exemplo, o nome de arquivo para a versão 1.0 do co-instalador é WdfCoInstaller01000.dlle o nome do arquivo para a versão 1.11 é WdfCoInstaller01011.dll.

A versão do co-instalador que você inclui com seu pacote de driver deve corresponder à versão da biblioteca de estrutura que você usa para desenvolver seu driver.

Observe que o nome do arquivo da biblioteca de estrutura inclui apenas o número de versão principal. Para obter mais informações sobre nomes de arquivo de biblioteca, consulte Controle de versão da biblioteca de estrutura.