Usando o co-instalador UMDF
Observação
Se o driver for direcionado apenas Windows 10, você não precisará redistribuir o WDF nem fornecer um Coinstaller no pacote de driver. Para direcionar Windows 10:
- 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>
- Na Seção Fabricante do INF, especifique 10.0 como versão de so de destino, da seguinte maneira:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Talvez você ainda precise referenciar o coinstaller fornecido pelo sistema como abaixo:
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
Um co-instalador atualiza a versão da estrutura armazenada no computador e processa seções de arquivo INF específicas da estrutura. Este tópico descreve os dois co-instaladores umDF e quando você precisa incluir um com o pacote de instalação do driver ou referenciar um co-instalador em seu arquivo INF.
Obtendo o pacote do co-instalador
Em Windows 8.1, as atualizações da estrutura redistribuível fornecidas pela Microsoft são incluídas como parte do WDK (Kit de Driver do Windows).
Para obter uma lista completa do conteúdo do diretório do co-instalador, consulte Componentes de instalação para drivers KMDF.
Entre outros componentes, o diretório do co-instalador contém um co-instalador de atualização, chamado WUDFUpdate_MMmmm.dll, em que MM é o número de versão principal e mmm é o número de versão secundária.
O co-instalador 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 co-instalador contiver a versão 1.11, o co-instalador atualizará a versão da estrutura do computador para 1.11.
O sistema operacional inclui outro co-instalador, chamado co-instalador de configuração ou WudfCoinstaller.dll. O co-instalador de configuração processa as seções específicas do UMDF do arquivo INF do driver e faz as atualizações necessárias para o registro.
Referenciando co-instaladores do arquivo INF
Se você estiver escrevendo um driver UMDF 2.0 para Windows 8.1, seu arquivo INF deverá fazer referência ao co-instalador de configuração. Como o co-instalador de configuração está incluído no sistema operacional, você não precisa redistribuí-lo.
Se você estiver escrevendo um driver UMDF 1.11 direcionado a sistemas operacionais antes de Windows 8.1, verifique se a versão 1.11 da estrutura está instalada em computadores que usam seu driver. Aqui estão três maneiras de fazer isso:
Faça referência ao co-instalador de atualização no arquivo INF e inclua o co-instalador de atualização no pacote de instalação do driver. Quando o sistema operacional instala o driver, ele executa o co-instalador. Se o driver for distribuído por meio de Windows Update, você deverá escolher essa opção.
Redistribua o pacote MSU relevante (por exemplo, umdf-1.11-Win-6.0.msu) juntamente com um aplicativo de instalação que o chama. Você pode encontrar um exemplo desse aplicativo no subdiretório src\general\wdkinstall da instalação do WDK. Você poderá escolher essa opção se estiver escrevendo um programa de instalação fornecido com o dispositivo e precisar ser executado antes que o dispositivo possa ser usado. Se você escolher essa opção, o arquivo INF deverá referenciar o co-instalador de configuração.
Conte com Windows Update para instalar a versão da estrutura necessária em computadores que usam seu driver. A partir da versão 1.11 da estrutura, novas versões do UMDF são distribuídas por meio de Windows Update. Se você escolher essa opção, o arquivo INF deverá referenciar o co-instalador de configuração.
No arquivo INF, você sempre deve referenciar o co-instalador de atualização ou o co-instalador de configuração. No entanto, referenciar ambos os co-instaladores no INF levará a erros de instalação.
Seções de arquivo INF para o co-instalador
O arquivo INF do driver deve incluir uma seção INF DDInstall.CoInstallers. Se você redistribuir o co-instalador de atualização, a seção DDInstall.CoInstallers deverá incluir uma diretiva AddReg inf e uma diretiva CopyFiles inf, como mostra o exemplo a seguir.
[MyDriver_Install.CoInstallers]
AddReg = MyDriver_Install.CoInstallers_AddReg
CopyFiles = MyDriver_CoInstallers_CopyFiles
A diretiva AddReg do INF identifica uma seção INF que cria uma entrada de registro CoInstallers32 .
[MyDriver_Install.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01011.dll"
A diretiva CopyFiles do INF identifica uma seção INF que copia o co-instalador do dispositivo de instalação para o dispositivo do sistema.
[MyDriver_CoInstallers_CopyFiles]
WudfUpdate_01011.dll
Se você redistribuir um pacote MSU, sua seção DDInstall.CoInstallers deverá especificar uma diretiva AddReg que faça referência ao co-instalador de configuração.
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
O arquivo INF do driver sempre deve conter uma seção DDInstall.Wdf que o co-instalador lê depois de ter sido instalado. Para obter informações sobre diretivas que seu driver pode especificar em DDInstall.Wdf, consulte Especificando diretivas do WDF em arquivos INF.
Você pode evitar criar 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.