Compartir a través de


Problemas conocidos del Kit para controladores de Windows (WDK)

En este artículo se detallan los problemas conocidos relacionados con el WDK.

WDK para Windows 11, versión 24H2

Desarrollo de controladores del modo kernel x86

A partir de Windows 11, versión 24H2, el WDK ya no admite el desarrollo de controladores en modo kernel x86. Si tiene una necesidad empresarial de desarrollar controladores en modo kernel x86, use WDK versión 23H2.

Reinicio después del aprovisionamiento

Después del aprovisionamiento y la implementación, la máquina de destino no se puede reiniciar después de los pasos de implementación.

Compatibilidad con SxS del controlador ARM64 WDK

Cuando tanto el kit de Windows 11, versión 24H2 como el kit de Windows 11, versión 22H2 se instalan en un equipo ARM64, al compilar un controlador del marco de controladores de modo kernel (KMDF) para ARM64 con TargetPlatformVersion establecido en Windows 11, se produce un error en la versión 22H2 con WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol.

No se puede instalar la extensión WDK

Si usa visual Studio versión 17.11.0 o posterior, desactive la casilla instalar extensión en la instalación de WDK.

WDK para Windows 11, versión 22H2

Error de servicio al iniciarse

Si instaló el WDK original de Windows 11, versión 22H2 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 está corregido en el WDK versión 10.0.22621.382. Puede desinstalar el WDK y, a continuación, volver a instalar el WDK más reciente mediante las instrucciones de Descarga del Kit para controladores de Windows.

El depurador de Visual Studio no funciona

No es posible depurar controladores dentro de la interfaz de Visual Studio cuando se usa Visual Studio 2022 versión 17.2.0 y 17.3 con windows 11, versión 22H2 WDK (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 Windows Driver Framework (WDF) no funcionan

Los co-instaladores redistribuibles WDF ya no son soportados. Esto provoca problemas en los equipos que tienen windows 11, versión 22H2 WDK y un WDK anterior instalado. Al intentar compilar un controlador WDF 1.11 en este sistema, msbuild produce un error. Se produce un error en la compilación porque msbuild no encuentra el co-instalador de WDF.

Para solucionar 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 después. Como alternativa, si instaló Windows 11, versión 22H2 WDK, instale el archivo MSI ubicado en Componentes Redistribuibles de WDK 8 en un equipo independiente y copie la carpeta de redist a la carpeta de \Program files (x86)\windows kit\10\redist\wdf. Para obtener más información, consulte Componentes de marco redistribuibles.

WDK para Windows 10, versión 2004

Problema en las funciones ExAllocatePoolZero, ExAllocatePoolQuotaZero y ExAllocatePoolPriorityZero solucionado

En mayo de 2020, OSR descubrió un problema con el nuevo soporte de nivel inferior para la puesta a cero automática de las asignaciones de pool. El problema podría provocar que una asignación no se inicialice en cero en sistemas que ejecutan Windows 10, versión 1909. Esto se corrigió con una actualización de seguridad del WDK para Windows 10, versión 2004, y del Enterprise WDK (EWDK) para Windows 10, versión 2004 el 16 de diciembre. Microsoft ha aprovechado la actualización de seguridad y ha actualizado 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 y WDK originales (versión 2004) e instalar el SDK de actualización y WDK o EWDK.

Para garantizar que existía una solución de seguridad completa, en noviembre se publicó una corrección del sistema operativo para Windows 10, versión 1909, de modo que si se creaba un controlador con el problema de seguridad, el sistema operativo estaría protegido frente a é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 DDI de agrupación cero que devuelven memoria cero de forma predeterminada. Esto aumenta la seguridad y fiabilidad del controlador. Para ayudar con esta transición, Microsoft creó una regla de comprobador de controladores estáticos, que está disponible en versión preliminar de Windows 10 WDK versiones 20236 y posteriores. La regla identifica todas las instancias del código fuente de un controlador donde se usan los DDI de asignación de grupos antiguos y recomienda 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 habilita la mitigación de Spectre de forma predeterminada para todos los controladores, ya no las habilita para todos los proyectos de C++.

Error "No se encontró un WDK correspondiente al destino "10.0.19041.0".

Al seleccionar [Versión de Windows SDK] en "10.0 (versión instalada más reciente)" junto con WDK 10.0.19041.0 se produce el error "No se encontró un WDK correspondiente a la versión de destino '10.0.19041.0'", incluso si la versión del SDK está instalada.

Solución alternativa: en la página de propiedades del proyecto de controlador (Propiedades de configuración >General) establezca la versión del SDK de Windows 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. Dependiendo de la versión de Windows en el sistema, es posible que .NET esté instalado, pero que tenga que estar habilitado o que no esté instalado. Para obtener más información sobre la versión de .NET instalada o el estado de la instalación de .NET, revise las versiones y 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 de controladores (DVL), se presenta el siguiente error:

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

Este problema puede producirse 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 produce un error al ejecutar el EWDK en una máquina sin VS instalado. Instale Visual Studio en el equipo 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 las pruebas fundamentales del dispositivo se ejecutan mediante el Explorador de pruebas de WDK.

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

Instalación en paralelo del 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 funciona para la versión anterior.

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

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

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

Alternativa para las pruebas de nivel descendente

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

APIValidator

En una máquina con arquitectura x86, APIValidator no se puede ejecutar en binarios x64. Si compila controladores x64 en una máquina x86, APIValidator debe desactivarse.

Solución alternativa:

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

  2. Seleccione APIValidator, después 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 Security Advisory 3033929 (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 indica que el componente del complemento ya está instalado

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

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, seleccione Desinstalar.

Preguntas más frecuentes

¿Cómo puedo saber si las versiones WDK o EWDK que tengo contienen la corrección para la puesta a cero de las asignaciones de pool?

En Configuración del sistema vaya a Agregar o quitar programas, busque Kit para 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 iniciado el entorno de EWDK, examine el título de la ventana de comandos. La versión actualizada contiene 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 es necesario?

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

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

Recomendamos que, si tiene el SDK original de 2004 y el WDK, se desinstalen y se instalen el SDK y WDK de actualización de seguridad. Dicho esto si el WDK actualizado está instalado encima del WDK original, la versión actualizada sobrescribe el original. Nota: En este escenario "Agregar o quitar programas", se muestran ambas versiones.