Diretrizes DIFx
A partir do Windows 10 versão 1607, as ferramentas DIFx (Estruturas de Instalação de Driver) (Difxapi.dll
, Difxapp.dll
, Difxappa.dll
e DPInst.exe
) foram preteridas e não estão mais incluídas no WDK.
Em vez disso, recomendamos fornecer como um pacote de driver autônomo que não exija um instalador. Esse pacote independente adiciona suas próprias configurações ou configurações necessárias para funcionar corretamente. Um pacote de driver autônomo não depende de um instalador para modificar o estado do sistema que o pacote de driver pode exigir. Os pacotes de driver autônomos são necessários para dar suporte à distribuição do pacote de driver por meio do Windows Update e à adição do pacote de driver a uma imagem offline. Recomendamos publicar um pacote de driver autônomo a ser entregue por meio do Windows Update para sistemas aos quais seu hardware está conectado. A primeira etapa para publicar o pacote de driver no Windows Update é enviar seu pacote de driver para o Centro de Desenvolvimento de Hardware do Windows.
Se você optar por usar o DIFx de qualquer maneira, deverá usar um WDK mais antigo para obter as ferramentas certas. As seguintes ressalvas se aplicam:
Se o pacote de driver especificar apenas valores TargetOSVersion do Windows 8.1 ou posterior, você não poderá usar a ação personalizada MSI do DIFxApp (
Difxapp.dll
eDifxappa.dll
) devido à dependência do DIFxApp em GetVersionEx, uma API que foi alterada a partir do Windows 8.1. TargetOSVersion é especificado na seção Fabricante do INF. O DIFxApp expõe ações personalizadas do MSI, como MsiProcessDrivers, MsiInstallDrivers e MsiUninstallDrivers. Se o pacote de driver especificar valores TargetOSVersion do Windows 8.1 ou posterior, você não poderá usar essas ações personalizadas em seu MSI.A partir do Windows 8.1, os aplicativos vinculados devem
Difxapi.dll
conter um manifesto do aplicativo direcionado à versão do sistema operacional na qual o aplicativo deve ser executado. Esse requisito se deve à dependência do DIFxAPI em GetVersionEx, uma API que foi alterada a partir do Windows 8.1. Para obter mais informações sobre alterações em GetVersionEx no Windows 8.1, consulte Direcionando seu aplicativo para Windows.Se o pacote de driver usar a parte BuildNumber de TargetOSVersion (introduzida em Windows 10, versão 1607 (Build 14310 e posterior)), você não poderá usar as ferramentas DIFx com esse pacote de driver. As ferramentas DIFx não dão suporte ao direcionamento BuildNumber.
Use o DIFx versão 2.1, que está disponível no Windows 7 WDK por meio do Windows 10 versão 1511 WDK. Embora uma versão DIFx de 2.1 estivesse disponível em versões anteriores do WDK, ela não era compatível com Windows 7 e versões posteriores do Windows.
Os WDKs mais antigos contêm apenas versões x86 e amd64 dos binários DIFx. Os binários DIFx não estão disponíveis para outras arquiteturas.
Embora não esteja mais sendo atualizado, você pode encontrar a documentação de referência da API para DIFx em Difxapi.h. Se você estiver usando as APIs DriverPackagePreinstall, DriverPackageInstall e DriverPackageUninstall, considere alternar para DiInstallDriver e DiUninstallDriver.
Se você ainda precisar de um instalador personalizado para instalar o pacote de driver, use a ferramenta de linha de comando PnPUtil ou um instalador personalizado que chame as funções de instalação do driver.
Da mesma forma, se você precisar que o instalador personalizado desinstale o pacote de driver, use PnPUtil ou um instalador personalizado que chame DiUninstallDriver ou SetupUninstallOEMInf.