Directrices de DIFx

A partir de Windows 10 versión 1607 (Redstone 1), las herramientas de Marcos de instalación de controladores (DIFx) (Difxapi.dll, Difxapp.dll, Difxappa.dlly DPInst.exe) están en desuso y ya no se incluyen en el WDK.

En su lugar, se recomienda proporcionar el paquete de controladores como un paquete de controladores independiente que no requiera un instalador. Se trata de un paquete independiente que agrega su propia configuración o configuración que necesita para funcionar correctamente, en lugar de depender de un instalador para modificar el estado del sistema del que puede depender el paquete de controladores. Los paquetes de controladores independientes son necesarios para admitir escenarios de paquetes de controladores, como distribuir el paquete de controladores a través de Windows Update y agregar el paquete de controladores a una imagen sin conexión. Se recomienda publicar un paquete de controladores independiente para que se entregue a través de Windows Update a los sistemas en los que está conectado el hardware. El primer paso para publicar el paquete de controladores en Windows Update es enviar el paquete de controladores al Centro de desarrollo de hardware de Windows.

Si decide usar DIFx de todos modos, debe usar un WDK anterior para obtener las herramientas adecuadas. Se aplican las siguientes advertencias:

  • Si el paquete de controladores especifica solo los valores targetOSVersion de Windows 8.1 o posterior, no puede usar la acción personalizada MSI de DIFxApp (Difxapp.dll y Difxappa.dll) debido a la dependencia de DIFxApp en GetVersionEx, una API que cambió a partir de Windows 8.1. TargetOSVersion se especifica en la sección fabricante inf. DIFxApp expone acciones personalizadas de MSI como MsiProcessDrivers, MsiInstallDrivers y MsiUninstallDrivers. Si el paquete de controladores especifica los valores targetOSVersion de Windows 8.1 o posteriores, no puede usar estas acciones personalizadas en msi.
  • A partir de Windows 8.1, las aplicaciones que se vinculan a Difxapi.dll deben contener un manifiesto de aplicación que tenga como destino la versión del sistema operativo en la que se va a ejecutar la aplicación. Esto se debe a la dependencia de DIFxAPI en GetVersionEx, una API que cambió a partir de Windows 8.1. Para obtener más información sobre los cambios en GetVersionEx en Windows 8.1, consulte Selección de destino de la aplicación para Windows.
  • Si el paquete de controladores usa la parte BuildNumber de TargetOSVersion (introducida en Windows 10, versión 1607 (compilación 14310 y posteriores), no puede usar las herramientas de DIFx con ese paquete de controladores. Las herramientas de DIFx no admiten el destino BuildNumber.
  • Usa diFx versión 2.1, que está disponible en el WDK de Windows 7 a través del WDK de Windows 10 versión 1511. Aunque una versión diFx de 2.1 estaba disponible en versiones anteriores del WDK, no era compatible con Windows 7 y versiones posteriores de Windows.
  • Los WDK anteriores solo contienen versiones x86 y amd64 de los archivos binarios de DIFx. Los archivos binarios de DIFx no están disponibles para otras arquitecturas.

Aunque ya no se está actualizando, puede encontrar documentación de referencia de API para DIFx en Difxapi.h. Si usa las API DriverPackagePreinstall, DriverPackageInstall y DriverPackageUninstall, considere la posibilidad de cambiar a DiInstallDriver y DiUninstallDriver.

Si todavía necesita un instalador personalizado para instalar el paquete de controladores, use la herramienta de línea de comandos PnPUtil o un instalador personalizado que llame a las funciones de instalación del controlador.

Del mismo modo, si necesita el instalador personalizado para desinstalar el paquete de controladores, use PnPUtil o un instalador personalizado que llame a DiUninstallDriver o SetupUninstallOEMInf.