Diretrizes do DIFx
A partir do Windows 10 versão 1607 (Redstone 1), as ferramentas do DIFx (Driver Install Frameworks) (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 seu pacote de driver como um pacote de driver autônomo que não requer um instalador. Esse é um pacote autossuficiente que adiciona suas próprias configurações ou configurações de que precisa para funcionar corretamente, em vez de depender de um instalador para modificar o estado do sistema do qual o pacote de driver pode depender. Pacotes de driver autônomos são necessários para dar suporte a cenários de pacote de driver, como distribuir o pacote de driver por meio de Windows Update e adicionar o pacote de driver a uma imagem offline. É recomendável publicar um pacote de driver autônomo a ser entregue por meio de Windows Update para sistemas nos 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 advertências se aplicam:
- Se o pacote de driver especificar apenas valores TargetOSVersion de Windows 8.1 ou posterior, você não poderá usar a ação personalizada DO DIFxApp MSI (
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 de Windows 8.1 ou posterior, você não poderá usar essas ações personalizadas em sua MSI. - A partir do Windows 8.1, os aplicativos aos quais o link se
Difxapi.dll
vincula devem conter um manifesto do aplicativo direcionado à versão do sistema operacional na qual o aplicativo se destina a ser executado. Isso ocorre devido à dependência do DIFxAPI no GetVersionEx, uma API que foi alterada a partir do Windows 8.1. Para obter mais informações sobre as 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 no 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 WDK do Windows 7 por meio do WDK do Windows 10 versão 1511. Embora uma versão DIFx da 2.1 estivesse disponível em versões anteriores do WDK, ela não era compatível com o 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 ele 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 chama as funções de instalação do driver.
Da mesma forma, se você precisar do instalador personalizado para desinstalar o pacote de driver, use PnPUtil ou um instalador personalizado que chame DiUninstallDriver ou SetupUninstallOEMInf.