Si desarrollas drivers en Windows, el Windows Driver Kit (WDK) es la navaja suiza que no te puede faltar, y su versión empresarial, Enterprise WDK (EWDK), te pone en bandeja un entorno listo para compilar desde consola sin instalaciones pesadas. Con WDK y EWDK puedes crear, probar, depurar e implementar controladores de forma fiable, integrándote con Visual Studio o trabajando en entornos aislados para CI/CD.
En esta guía vas a encontrar qué es el WDK, cómo instalarlo (y cuándo conviene usar EWDK), la compatibilidad con ARM64, las novedades como la distribución por paquetes NuGet, los requisitos de Visual Studio y SDK, el control de versiones (Build y QFE), y un apartado práctico para firmar correctamente archivos INF y catálogos con las herramientas del kit. También verás consejos de depuración, recursos para trabajar con las últimas builds y comandos para diagnosticar y reparar problemas en Windows 11.
Qué es Windows Driver Kit (WDK) y para qué sirve
El Windows Driver Kit es el conjunto oficial de Microsoft que reúne compiladores, enlazadores, cabeceras, bibliotecas, documentación y ejemplos para crear controladores de Windows. Su propósito es estandarizar y simplificar el ciclo completo de desarrollo de drivers, cubriendo desde la compilación hasta las pruebas y la implementación, tanto en modo kernel como en modo usuario (KMDF y UMDF 2, respectivamente).
Con las versiones recientes puedes compilar controladores para Windows 10 y Windows 11, además de Windows Server 2016 y posteriores. La instalación y ejecución del WDK es compatible desde Windows 7, aunque lo recomendable es trabajar con entornos actualizados si tu objetivo es desplegar en sistemas modernos.
La plataforma evoluciona con frecuencia. De hecho, en la información más reciente recopilada se menciona la versión pública 10.0.26100.3323, con fecha de 14 de marzo de 2025. Este ritmo de actualizaciones mantiene alineadas las herramientas con las novedades del sistema, frameworks y arquitecturas soportadas.
EWDK: entorno de compilación autónomo desde la línea de comandos
Enterprise WDK (EWDK) es un entorno de consola autosuficiente que puedes descargar y usar sin instalación previa. Viene empaquetado con compiladores, enlazadores, herramientas de build, cabeceras y bibliotecas necesarios para compilar proyectos de controladores basados en Visual Studio, pero sin IDE.
Una ventaja clave es la portabilidad. Descargas el paquete (ZIP o ISO según versión), lo montas o lo expandes y ya puedes trabajar. Al no requerir instalación, puedes versionarlo, comprimirlo o moverlo entre máquinas sin fricciones, algo muy útil en entornos empresariales y pipelines de integración continua.
Para usarlo tras expandirlo (por ejemplo, en D:\EWDK), abre una consola con privilegios de administrador, navega a la carpeta y lanza el entorno con: LaunchBuildEnv.cmd (o LaunchBuildEnv). Ese script configura variables, rutas y la toolchain para compilar directamente con MSBuild o invocar herramientas específicas del WDK.
Desde ahí puedes entrar en tu solución o proyecto y compilar con MSBuild. Por ejemplo: msbuild project.vcxproj /p:Configuration=Release /p:Platform=x64. Si necesitas Debug, ARM o Win32, ajusta los parámetros: /p:Configuration=Debug y /p:Platform=ARM o Win32. El motor es el mismo de Visual Studio, pero sin el IDE.
Si te viene bien tener un acceso directo en el escritorio al entorno, puedes crear un acceso que ejecute el intérprete de comandos cargando la ruta del EWDK y el script de inicio. Por ejemplo: %comspec% /k "D:\EWDK" && LaunchBuildEnv.cmd. Así, cada vez que abras ese acceso, entrarás ya con el entorno de build preparado.
Instalación de Visual Studio 2022 y componentes necesarios
Para usar el WDK de manera integrada con un IDE, Visual Studio 2022 es el compañero natural. Instálalo y selecciona la carga de trabajo «Desarrollo de escritorio con C++». Después, en Componentes individuales, añade los elementos clave:
- Bibliotecas con mitigaciones de Spectre para ARM64/ARM64EC y x64/x86 (MSVC v143).
- Herramientas de compilación de ATL y MFC v143 con mitigaciones de Spectre para ARM64/ARM64EC, x86 y x64.
- Kit para controladores de Windows (WDK) como componente VSIX cuando esté disponible.
Ten en cuenta que la instalación de Visual Studio no siempre incluye el SDK de Windows más reciente. Es fundamental alinear la versión del SDK con la del WDK: los números de compilación deben coincidir para evitar incompatibilidades durante la compilación.
SDK de Windows y WDK: números de compilación que deben coincidir
El WDK y el SDK siguen un esquema de versión con un número de compilación y un valor QFE (Quick Fix Engineering). Para compilar un driver, el número de compilación del SDK debe coincidir con el del WDK. El QFE solo es necesario que coincida si aprovechas funcionalidades específicas introducidas en una QFE posterior.
Una forma rápida de comprobar qué tienes instalado es ir a Configuración de Windows → Aplicaciones → Aplicaciones instaladas y buscar «kit». Ahí verás la cadena de compilación completa de cada componente. Evita fiarte del nombre del directorio en C:\Program Files (x86)\Windows Kits\10\Include, porque el sufijo .0 está codificado y no refleja el QFE real.
Cuando instalas un kit con el mismo número de build, la nueva instalación sustituye a la anterior. Esto ayuda a mantener la cadena de herramientas limpia y sin duplicados conflictivos, pero conviene documentar internamente qué versión exacta se usa en cada proyecto para reproducibilidad.
Instalación del WDK desde Visual Studio y mediante NuGet
Desde la versión 17.11.0 de Visual Studio, el WDK se incluye como un VSIX que puedes gestionar desde el propio Instalador de VS. Ve a Modificar → Componentes individuales → Kit de controladores de Windows, aplícalo y el instalador validará si ya hay una versión compatible instalada o la añadirá.
Otra novedad importante es que a partir de la versión 10.0.26100.1, WDK está disponible como paquetes NuGet que puedes obtener directamente desde nuget.org dentro de Visual Studio. El paquete gestiona dependencias como el SDK, facilitando mantener la toolchain al día sin procesos manuales ni búsquedas de descargas por separado.
Si prefieres aislarte del IDE o necesitas un entorno reproducible para automatización, EWDK es tu mejor baza. Incluye Visual Studio Build Tools, SDK y WDK listos para usar desde consola y sin instalación tradicional.
Compatibilidad con ARM64 y escenarios de depuración
Las versiones recientes de WDK (desde 10.0.26100.1) dan soporte nativo para desarrollo, pruebas e implementación en ARM64. Puedes instalar y ejecutar WDK y EWDK de forma nativa en hardware ARM64, y depurar o implementar controladores ARM64 desde máquinas host tanto ARM64 como x64.
Además, se mantiene la emulación para drivers x86 en marcos KMDF y UMDF 2 cuando trabajas en ARM64. Esto te permite abarcar escenarios mixtos sin renunciar a productividad ni cobertura, especialmente en equipos que mantienen compatibilidad con aplicaciones de usuario x86.
Durante la instalación en ARM64, el instalador identifica e instala las dependencias necesarias (herramientas de compilación, binarios y bibliotecas). La experiencia es lo más automática posible, reduciendo errores de configuración en entornos menos comunes.
EWDK en detalle: contenidos, requisitos y uso opcional del IDE
La edición pública más reciente de EWDK citada en la documentación incluye Visual Studio 2022 Build Tools 17.11.4 y toolset MSVC v14.41. Como prerequisito, requiere .NET Framework 4.7.2, así que asegúrate de tenerlo instalado en el host donde lo vayas a montar.
Pasos típicos de uso cuando el paquete llega en ISO: 1) montar la imagen desde una letra de unidad (no se admiten rutas UNC como recurso compartido), 2) ejecutar LaunchBuildEnv.cmd para configurar el entorno, 3) dentro de ese entorno, invocar SetupVSEnv para alistar el entorno de las herramientas de VS, 4) si quieres abrir el IDE, lanza devenv.exe con su ruta completa, por ejemplo: "C:\Program Files\Microsoft Visual Studio\2022\%Community|Professional|Enterprise%\Common7\IDE\devenv.exe".
Ten en cuenta que si decides usar la interfaz de Visual Studio con las herramientas del EWDK, la versión mayor del IDE debe coincidir con la de las Build Tools incluidas (por ejemplo, Visual Studio 2022 con EWDK que contenga VS17.X). Al terminar, puedes expulsar la ISO para liberar la unidad.
Comandos prácticos con MSBuild en el entorno del WDK/EWDK
Una vez cargado el entorno con LaunchBuildEnv, sitúate en la carpeta de tu proyecto o solución. Ejemplos de compilación con MSBuild:
msbuild project.vcxproj /p:Configuration=Release /p:Platform=x64para compilar un proyecto concreto.msbuild solution.sln /p:Configuration=Debug /p:Platform=Win32para compilar toda la solución en Win32 Debug.msbuild project.vcxproj /p:Configuration=Release /p:Platform=ARMpara escenarios ARM.
Puedes usar tu editor de código favorito para modificar fuentes y archivos de proyecto. Recuerda que EWDK carece de IDE, despliegue y pruebas integradas de Visual Studio, ya que está centrado en la línea de comandos y la construcción reproducible.
Firmado de INF en Windows 8/10/11: Inf2Cat y SignTool
En Windows 8 y superiores, los archivos INF deben estar firmados para poder instalarse. El proceso típico consta de cuatro pasos: generar el catálogo (.cat), obtener un certificado, firmar el .cat e instalar el certificado público en el equipo de destino.
1) Genera el catálogo con Inf2Cat. Abre una consola como administrador, ve a la carpeta que contiene la herramienta e invoca: Inf2Cat /driver:<ruta> /os:<os1>.... La ruta debe señalar un directorio que contenga el INF (no un INF suelto en la raíz de una unidad). Si hay un .inf en esa ruta, se creará el .cat correspondiente.
2) Obtén o crea un certificado. Lo ideal es adquirirlo a una CA para distribuir controladores externos, aunque para uso interno puedes crear un certificado personal de prueba (.pfx). La clave privada sirve para firmar y debe custodiarse; la clave pública se distribuye para verificar la firma. Hay herramientas de terceros para generar certificados de prueba, y Microsoft documenta certificados de desarrollo.
3) Firma el .cat con SignTool. Navega a la carpeta de la herramienta y usa una de estas opciones: signtool sign /f C:\mycertificate.pfx /p mipassword C:\mycatfile.cat si firmas con un .pfx; o signtool sign /n "NombreDeMiCertificado" C:\mycatfile.cat si el certificado está instalado en el equipo. SignTool viene con el WDK y suele estar en la misma ruta que Inf2Cat.
4) Instala el certificado público en el equipo destino antes de instalar el INF. Importa el .cer en la cuenta de equipo y colócalo en «Entidades de certificación raíz de confianza». Puedes verificar/gestionar certificados desde MMC: Archivo → Agregar o quitar complementos → Certificados → Cuenta de equipo.
En sistemas antiguos (Windows 7) no se exige el firmado del INF, pero en Windows 8/10/11 sí. Para casos de prueba con hardware específico (p. ej., NI-VISA y USB), se recomienda firmar correctamente y evitar excepciones y problemas como el error «formato requerido» al conectar un USB que puedan comprometer la seguridad del entorno.
Dónde están las herramientas y consideraciones de versión
Dependiendo de la versión del WDK, las herramientas pueden ubicarse en distintas rutas. En versiones anteriores, Inf2Cat y SignTool podían encontrarse en C:\Program Files (x86)\Windows Kits\8.0\bin\x86. Para Windows 10, usa WDK 10; para Windows 8, WDK 8. La documentación de la descarga del WDK indica si requiere una versión concreta de Visual Studio para usar todas las herramientas.
Recuerda que puedes combinar WDK con EWDK según el flujo de trabajo del equipo. Incluso es posible tener varios WDK/EWDK instalados en paralelo para mantener proyectos heredados mientras desarrollas nuevas versiones con toolchains recientes.
Compatibilidad por sistema operativo, arquitecturas y cambios en WDF
Con Windows 11 22H2 y posteriores, WDK/EWDK requieren Visual Studio 2022, y ofrecen soporte de compilación y pruebas en x64 y ARM64. El desarrollo puede dirigirse a Windows 10, Windows 11 y Windows Server 2016+ sin problemas, manteniendo a la vez escenarios mixtos donde ciertas pilas de dispositivos conservan componentes x86/ARM32 en modo usuario por compatibilidad.
Ten presente que Microsoft retiró el soporte para coinstaladores redistribuibles de WDF a partir de Windows 11, versión 22H2. Si tu proyecto dependía de ellos, consulta la documentación oficial para alternativas actuales y ajusta tu plan de despliegue.
Programas Insider, ejemplos y depuración con WinDbg
Si necesitas acceso temprano a novedades del ecosistema, apúntate al Programa Windows Insider para obtener compilaciones de WDK Insider Preview. Encontrarás instrucciones de instalación específicas para estas versiones preliminares, útiles en validaciones previas al lanzamiento.
Microsoft ofrece ejemplos de controladores listos para descargar que acortan la curva de aprendizaje. Puedes usarlos como base de referencia para arquitecturas, modelos de driver y patrones de compilación, acelerando la puesta en marcha de nuevos proyectos.
En cuanto a depuración, WinDbg sigue siendo la herramienta de cabecera, y ha evolucionado con interfaz moderna, scripting avanzado y compatibilidad total con Windows 10 y 11. Para escenarios con extensiones HAL, existe un certificado HAL de OEM para Windows 2017 que puede instalarse en entornos de prueba en Windows 10 1709 o superior.
Buenas prácticas de proyecto y flujo de trabajo

Define en tu repositorio los números de compilación exactos del WDK/SDK soportados por cada rama. Esto evita divergencias entre equipos y facilita reproducir builds en máquinas nuevas o en runners de CI.
En automatización, estandariza comandos MSBuild y publica artefactos con símbolos y PDB donde proceda. El uso de EWDK en CI permite plantillas limpias y reproducibles, mientras que en desarrollo local puedes optar por Visual Studio para una iteración más rápida.
Para equipos ARM64, valida tu pipeline de depuración e instalación cruzada (host x64 ↔ destino ARM64, y host ARM64 ↔ destino ARM64). La compatibilidad cruzada está soportada, pero conviene probarla desde el principio para evitar sorpresas de última hora.
En entornos regulados o distribuciones a clientes, establece una política de firma clara: certificados de CA para releases; certificados de prueba internos para QA. Documenta cómo rotar certificados y cómo instalar la parte pública en los equipos destino con seguridad.
Arranque del entorno EWDK: LaunchBuildEnv.cmd (desde la raíz del paquete EWDK). Opcionalmente, tras cargarlo, ejecuta SetupVSEnv para preparar el entorno de las Build Tools.
Compilación típica: msbuild project.vcxproj /p:Configuration=Release /p:Platform=x64. Cambia a Debug, ARM o Win32 según destino. Para soluciones usa el nombre de la .sln.
Acceso directo al entorno: %comspec% /k "D:\EWDK" && LaunchBuildEnv.cmd. Esto abre una consola con las variables de compilación ya definidas y te ahorra pasos al iniciar la jornada.
Generación de catálogo desde INF: Inf2Cat /driver:<ruta> /os:10_X64,10_X86,11_X64 (ajusta los valores de OS que correspondan). Firmado con SignTool: signtool sign /f C:\cert.pfx /p password C:\driver.cat o signtool sign /n "CN del certificado" C:\driver.cat.
Para cerrar el círculo, recuerda que WDK/EWDK están pensados para cubrir desde el desarrollo hasta la entrega, con especial atención a la seguridad y la compatibilidad de versiones. Si alineas correctamente SDK y WDK, aprovechas NuGet y respetas el proceso de firmado, tendrás una cadena de herramientas robusta para publicar controladores con garantías.
