Compartir a través de


Directrices de DIFx

A partir de La versión 1607 de Windows 10, 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 como un paquete de controladores independiente que no requiera un instalador. Este paquete independiente agrega su propia configuración o configuración que necesita para funcionar correctamente. Un paquete de controladores independiente no depende de un instalador para modificar el estado del sistema que podría requerir el paquete de controladores. Los paquetes de controladores independientes son necesarios para admitir la distribución del 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 se conecta 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 advertencias siguientes:

  • 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 posterior, 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 destinado a la versión del sistema operativo en la que se va a ejecutar la aplicación. Este requisito 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 windows 7 WDK a través del WDK de Windows 10 versión 1511. Aunque una versión diFx de 2.1 estaba disponible en versiones anteriores de 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 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.