Usando o coinstalador UMDF
Observação
Se o driver tiver como alvo apenas o Windows 10, não será necessário redistribuir o WDF ou fornecer um Coinstaller no pacote de driver. Para direcionar o Windows 10:
- No Visual Studio, na página de propriedades Configurações do Projeto, em Configurações de Driver ->Versão do SO de Destino, selecione Windows 10 ou superior. Isso equivale a adicionar o seguinte ao arquivo .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- Na Secção do Fabricante do INF, especifique 10.0 como a versão do sistema operativo de destino, da seguinte maneira:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Talvez ainda seja necessário fazer referência ao coinstalador fornecido pelo sistema conforme abaixo:
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
Um coinstalador atualiza a versão do framework armazenada na máquina e processa seções de arquivos INF específicas da estrutura. Este tópico descreve os dois coinstaladores UMDF e quando você precisa incluir um com o pacote de instalação do driver ou fazer referência a um coinstalador no arquivo INF.
Obtenção do pacote de coinstalador
No Windows 8.1, as atualizações de estrutura redistribuível fornecidas pela Microsoft estão incluídas como parte do Kit de Driver do Windows (WDK).
Para obter uma lista completa do conteúdo do diretório do coinstalador, consulte Installation Components for KMDF Drivers.
Entre outros componentes, o diretório co-installer contém um coinstalador de atualização , chamado WUDFUpdate_MMmmm.dll, onde MM é o número da versão principal, e mmm é o número da versão secundária.
O coinstalador de atualização atualiza a versão da estrutura UMDF que está no computador. Por exemplo, se o computador tiver UMDF versão 1.9 e o coinstalador contiver versão 1.11, o coinstalador atualizará a versão de estrutura do computador para 1.11.
O sistema operacional inclui outro coinstalador, chamado de coinstalador de configuração , ou WudfCoinstaller.dll. O coinstalador de configuração processa as seções específicas do UMDF do arquivo INF do driver e faz as atualizações necessárias no registro.
Referenciando coinstaladores a partir do seu arquivo INF
Se você estiver escrevendo um driver UMDF 2.0 para Windows 8.1, seu arquivo INF deve fazer referência ao coinstalador de configuração. Como o coinstalador de configuração está incluído no sistema operacional, não é necessário redistribuí-lo.
Se você estiver escrevendo um driver UMDF 1.11 destinado a sistemas operacionais anteriores ao Windows 8.1, você deve garantir que a versão 1.11 da estrutura esteja instalada em máquinas que usam seu driver. Aqui estão três maneiras de fazer isso:
Consulte o coinstalador de atualização no arquivo INF e inclua o coinstalador de atualização no pacote de instalação do driver . Quando o sistema operacional instala o driver, ele executa o coinstalador. Se o seu driver será distribuído através do Windows Update, você deve escolher esta opção.
Redistribua o pacote MSU relevante (por exemplo, umdf-1.11-Win-6.0.msu) junto com um aplicativo de instalação que o chama. Você pode encontrar uma amostra desse aplicativo no subdiretório src\general\wdkinstall da instalação do WDK. Você pode escolher essa opção se estiver escrevendo um programa de instalação que acompanha o dispositivo e deve ser executado antes que o dispositivo possa ser usado. Se você escolher essa opção, seu arquivo INF deverá fazer referência ao coinstalador de configuração.
Confie no Windows Update para instalar a versão de estrutura necessária em máquinas que usam seu driver. A partir da versão 1.11 do framework, novas versões do UMDF são distribuídas via Windows Update. Se você escolher essa opção, seu arquivo INF deverá fazer referência ao coinstalador de configuração.
No arquivo INF, você sempre deve fazer referência ao coinstalador de atualização ou ao coinstalador de configuração. No entanto, referenciar ambos os coinstaladores no INF levará a erros de instalação.
Seções de arquivo INF para o coinstalador
O arquivo INF do driver deve incluir uma seção INF DDInstall.CoInstallers. Se redistribuir o atualização co-instalador, a sua seção DDInstall.CoInstallers deve incluir uma diretiva INF AddReg e uma diretiva INF CopyFiles , como o exemplo a seguir mostra.
[MyDriver_Install.CoInstallers]
AddReg = MyDriver_Install.CoInstallers_AddReg
CopyFiles = MyDriver_CoInstallers_CopyFiles
A diretiva INF AddReg identifica uma seção INF que cria uma entrada de registo CoInstallers32 .
[MyDriver_Install.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01011.dll"
A diretiva INF CopyFiles identifica uma secção INF que copia o co-instalador do dispositivo de instalação para o dispositivo do sistema.
[MyDriver_CoInstallers_CopyFiles]
WudfUpdate_01011.dll
Se redistribuir um pacote MSU, a sua secção DDInstall.CoInstallers deve especificar uma diretiva AddReg que refira o coinstalador de configuração.
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
O arquivo INF do driver deve sempre conter uma seção DDInstall.Wdf que o coinstalador lê depois de instalado. Para obter informações sobre diretivas que o seu driver pode especificar em DDInstall.Wdf, consulte Especificando diretivas WDF em arquivos INF.
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.