Problemas conocidos del Kit de controladores de Windows (WDK)

En este tema se detallan los problemas conocidos relacionados con el WDK.

WDK para Windows 11, versión 22H2

Error del servicio en el inicio

Si instaló el Windows 11 original, versión 22H2 WDK entre mayo y agosto de 2022 (versión 10.0.22621.1), es posible que vea el siguiente mensaje de error al iniciar Visual Studio con WDK.

El Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null paquete no se cargó correctamente.

Este problema se ha corregido en la versión 10.0.22621.382 de WDK. Puedes desinstalar el WDK y volver a instalar el WDK más reciente siguiendo las instrucciones de Descargar el Kit de controladores de Windows.

El depurador de Visual Studio no funciona

No es posible depurar controladores dentro de la interfaz de Visual Studio al usar Visual Studio 2022 versión 17.2.0 y 17.3 con el Windows 11, versión 22H2 WDK (versión 10.0.22621.382). Para solucionar el problema, realice una de las siguientes acciones: actualice Visual Studio a 17.4.1 o posterior, depure con WinDbg o use una versión de Visual Studio anterior a la 17.2.0. El siguiente mensaje de error está relacionado con este problema:

Se debe llamar a QueryBuildManagerBusyEx en la interfaz de usuario.

Los co-instaladores redistribuibles de WDF no funcionan

A partir de esta versión, ya no se admiten los co-instaladores redistribuibles de WDF. En concreto, en un equipo que tiene el Windows 11, versión 22H2 WDK y un WDK anterior, al compilar un controlador WDF 1.11, msbuild produce un error porque no encuentra el coinstalado WDF.

Para corregir este problema, antes de instalar Windows 11, versión 22H2 WDK, realice una copia de seguridad de la carpeta \Program files (x86)\windows kit\10\redist\wdf y restáurela posteriormente. Como alternativa, si ya ha instalado el Windows 11, versión 22H2 WDK, instale el archivo MSI en los componentes redistribuibles de WDK 8 en un equipo independiente y copie la redist carpeta en la carpeta anterior. Para obtener más información, vea Redistributable Framework Components.

WDK para Windows 10, versión 2004

Problema en las funciones ExAllocatePoolZero, ExAllocatePoolQuotaZero y ExAllocatePoolPriorityZero FIXED

En mayo de 2020, OSR descubrió que la nueva compatibilidad de nivel descendente para la reducción automática de ceros de las asignaciones de grupos tenía un problema que podía provocar que una asignación no se inicializara en cero en sistemas que ejecutan Windows 10, versión 1909. Esto se ha corregido ahora con una actualización de seguridad del WDK para Windows 10, versión 2004 y Enterprise WDK (EWDK) para Windows 10, versión 2004 el 16 de dic. Microsoft aprovecharon la actualización de seguridad y actualizaron el EWDK para incluir las herramientas de compilación de Visual Studio 16.7. Microsoft recomienda a todos los desarrolladores de controladores desinstalar el SDK original y WDK (versión 2004) e instalar el SDK de actualización y WDK o EWDK.

Para asegurarse de que se ha implementado una solución de seguridad completa, se publicó una corrección del sistema operativo para Windows 10, versión 1909 en noviembre, por lo que si hubiera un controlador creado con el problema de seguridad, el sistema operativo se protegería de él.

Además de descargar el WDK/EWDK actualizado, Microsoft recomienda que todos los controladores cambien todas las asignaciones de kernel para usar los nuevos DDIs de agrupación cero que devuelven memoria de cero de forma predeterminada. Esto aumentará la seguridad y la confiabilidad de los controladores. Para ayudar con esta transición, Microsoft ha creado una regla de comprobador de controladores estáticos que está disponible en la versión preliminar Windows 10 WDK 20236 y versiones posteriores. La regla identificará todas las instancias del código fuente de un controlador donde se usan los DDI de asignación de grupo antiguos y recomendará reemplazarlas por la nueva DDI equivalente más segura. La regla es aplicable a los controladores basados en WDM, WDF y NDIS.

La instalación de WDK ya no habilita mitigaciones de Spectre para todos los proyectos de C++, como se ve en WDK 1903

Aunque la instalación de WDK habilitará la mitigación de Spectre de forma predeterminada para todos los controladores, ya no las habilita para todos los proyectos de C++.

No se encontró el error "A WDK correspondiente al destino "10.0.19041.0".

Al seleccionar [Versión de Windows SDK] en "10.0 (versión instalada más reciente)" con WDK 10.0.19041.0, se produce el error "A WDK correspondiente a la versión de destino "10.0.0.19041.0" aunque la versión del SDK esté instalada.

Solución: En la página de propiedades del proyecto de controlador (Propiedades >de configuración General) establezca La versión de Windows SDK en $(LatestTargetPlatformVersion). Si esta opción no está disponible para seleccionar, seleccione la opción heredar del valor predeterminado primario o del proyecto.

EWDK y SDV que se ejecutan en el servidor tienen requisitos de .NET

La ejecución del comprobador de controladores estáticos desde EWDK requiere .Net Framework 4.7.2. En función de la versión de Windows en el sistema, es posible que se instale .NET, se puede instalar, pero es necesario habilitarlo o no estar instalado. Para obtener más información sobre qué versión de .NET está instalada o el estado de la instalación de .NET, revise las versiones y las dependencias de .NET Framework.

Se produce un error en la generación de DVL con System.IO.FileNotFoundException

Al intentar crear un registro de comprobación del controlador (DVL), se mostrará el siguiente error:

Unhandled Exception: System.IO.FileNotFoundException: 
Could not load file or assembly 
'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
or one of its dependencies. 
The system cannot find the file specified.

Esto puede ocurrir en los entornos de línea de comandos y GUI. Este problema se resuelve en una versión futura del WDK y se puede ver en el WDK de Windows Insider Preview. Desafortunadamente, no existe ninguna solución alternativa para la versión actual.

Error de SDV en el EWDK si VS no está instalado

SDV tiene una dependencia de VCRUNTIME140D.dll como parte de Visual Studio. Por lo tanto, se producirá un error al ejecutar el EWDK en un equipo sin VS instalado. Instale Visual Studio en la máquina para solucionar este problema.

El comprobador de controladores no se habilita o deshabilita al usar el Explorador de pruebas de WDK

El Comprobador de controladores no se habilita o deshabilita cuando se ejecutan pruebas fundamentales del dispositivo mediante el Explorador de pruebas de WDK.

Solución: En el equipo cliente, habilite o deshabilite manualmente el comprobador de controladores según estas instrucciones.

Instalaciones en paralelo de WDK de Windows 10, versión 2004 y WDK Windows 10, versión 1903 o versión 1803

Con ambas versiones de kits instalados en el mismo equipo, la característica "Implementar controlador" no funcionará para la versión anterior.

Solución: Use 1803 en una máquina independiente si se necesita implementar la característica de controlador.

Las pruebas de Windows Device Testing Framework (WDTF) ahora solo se ejecutan en sistemas con versiones de Windows 10 coincidentes como WDK

En WDK para Windows 10, versión 1809, se realizaron cambios en WDTF para admitir esta versión de Windows 10, versión 1809. El efecto de esto es que WDTF ya no se ejecutará en el sistema operativo de nivel descendente. El cambio continúa con WDK para Windows 10, versión 2004.

Alterative for down-level testing (Modificación de pruebas de nivel descendente)

Las pruebas WDTF de WDK para Windows 10, versión 1803, se pueden ejecutar en versiones anteriores de Windows.

APIValidator

En una APIValidator x86 arch machine no se puede ejecutar en archivos binarios x64. Si se deben desactivar los controladores x64 en una APIValidator de máquina x86.

Solución alternativa:

  1. Vaya a la página de propiedades de la solución de controladores.

  2. Seleccione APIValidator, General y, a continuación, cambie Ejecutar ApiValidator de a No.

WDK que se ejecuta en sistemas Windows 7 requiere KB 3033929

Debe instalar Microsoft 3033929 de aviso de seguridad (KB3033929) antes de instalar WDK en sistemas que ejecutan Windows 7. KB3033929 se puede descargar desde el Centro de descarga de Microsoft.

La instalación del WDK genera un error de Visual Studio que el componente del complemento ya está instalado

Este mensaje de error se puede ver si el WDK se desinstaló, pero la extensión de controladores WDK para Visual Studio no se desinstaló.

Resolución: En Visual Studio, vaya al menú desplegable Extensión , elija Administrar extensiones, seleccione el Kit de controladores de Windows y, a continuación, haga clic en Desinstalar.

Preguntas más frecuentes

Cómo indicar si las versiones de WDK o EWDK que tengo contienen la corrección para la creación de ceros de asignaciones de grupo?

En Configuración del sistema , vaya a Agregar o quitar programas, busque Kit de controladores de Windows y anote la versión. El WDK original para Windows 10, versión 2004 tiene una versión de 10.0.19041.1, la versión actualizada de WDK es 10.0.19041.685 Para el EWDK, una vez que se inicia el entorno de EWDK, examine el título de la ventana de comandos. La versión actualizada contendrá vb_release_svc_prod1.19041.685. Además, al examinar las variables de entorno, la variable BuildLab debe mostrar vb_release_svc_prod1.19041.685.

El Kit de desarrollo de software (SDK) de Windows también se actualizó, ¿esto también es necesario?

No, sin embargo, el Kit de desarrollo de software (SDK) de Windows actualizado contiene una corrección para onecore.lib que puede ser agradable tener. Además, generalmente es una buena idea mantener el SDK y WDK alineados.

Si ya tengo el WDK para Windows 10, versión 2004 instalada, ¿es necesario desinstalarlo antes de instalar la versión actualizada?

Se recomienda encarecidamente que, si tiene el SDK original de 2004 y WDK, se desinstalarán y se instalarán el SDK de actualización de seguridad y WDK. Dicho esto si el WDK actualizado está instalado sobre el WDK original, la versión actualizada sobrescribirá el original. Nota: En este escenario se mostrará "Agregar o quitar programas", ambas versiones.