Partilhar via


Problemas conhecidos do WDK (Windows Driver Kit)

Este tópico detalha os problemas conhecidos relacionados ao WDK.

WDK para Windows 11, versão 22H2

Erro de serviço na inicialização

Se você instalou o Windows 11 original, versão 22H2 WDK entre maio e agosto de 2022 (versão 10.0.22621.1), poderá ver a seguinte mensagem de erro ao iniciar o Visual Studio com o WDK.

O Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null pacote não foi carregado corretamente.

Esse problema foi corrigido no WDK versão 10.0.22621.382. Você pode desinstalar o WDK e reinstalar o WDK mais recente usando as instruções em Baixar o Kit de Driver do Windows.

O depurador no Visual Studio não funciona

Não é possível depurar drivers na interface do Visual Studio ao usar o Visual Studio 2022 versão 17.2.0 e 17.3 com o Windows 11, versão 22H2 WDK (10.0.22621.382). Para solucionar o problema, siga um destes procedimentos: atualizar o Visual Studio para 17.4.1 ou posterior, depurar com o WinDbg ou usar uma versão do Visual Studio anterior à 17.2.0. A seguinte mensagem de erro está relacionada a este problema:

QueryBuildManagerBusyEx deve ser chamado na interface do usuário.

Os co-instaladores redistribuíveis do WDF não funcionam

A partir desta versão, não há mais suporte para os co-instaladores redistribuíveis do WDF. Especificamente, em um computador que tem o Windows 11, versão 22H2 WDK e um WDK mais antigo, ao criar um driver WDF 1.11, o msbuild falha porque não consegue encontrar o coinstaller do WDF.

Para corrigir esse problema, antes de instalar Windows 11, versão 22H2 WDK, faça backup da pasta \Program files (x86)\windows kit\10\redist\wdf e restaure-a posteriormente. Como alternativa, se você já tiver instalado o Windows 11, versão 22H2 WDK, instale o arquivo MSI em componentes redistribuíveis do WDK 8 em um computador separado e copie a redist pasta para a pasta acima. Para obter mais informações, consulte Componentes da Estrutura Redistribuível.

WDK para Windows 10, versão 2004

Problema nas funções ExAllocatePoolZero, ExAllocatePoolQuotaZero e ExAllocatePoolPriorityZero CORRIGIDO

Em maio de 2020, a OSR descobriu que o novo suporte de nível inferior para zero automático de alocações de pool tinha um problema que poderia levar a uma alocação que não era inicializada em sistemas que executam Windows 10, versão 1909. Isso foi corrigido com uma atualização de segurança do WDK para Windows 10, versão 2004 e o Enterprise WDK (EWDK) para Windows 10, versão 2004, em 16 de dezembro. A Microsoft aproveitou a atualização de segurança e atualizou o EWDK para incluir as ferramentas de build do Visual Studio 16.7. A Microsoft recomenda que todos os desenvolvedores de driver desinstalem o SDK original e o WDK (versão 2004) e instalem o SDK de atualização e o WDK ou o EWDK.

Para garantir que havia uma solução de segurança completa em vigor, uma correção do sistema operacional foi lançada para Windows 10, versão 1909, em novembro, portanto, se houvesse um driver criado com o problema de segurança, o sistema operacional estaria protegido contra ele.

Além de baixar o WDK/EWDK atualizado, a Microsoft recomenda que todos os drivers alternem todas as alocações de kernel para usar os novos DDIs de zero de pool que retornam memória zero por padrão. Isso aumentará a segurança e a confiabilidade do driver. Para ajudar nessa transição, a Microsoft criou uma regra verificador de driver estático que está disponível em versão prévia Windows 10 versões do WDK 20236 e superiores. A regra identificará todas as instâncias no código-fonte de um driver em que os DDIs de alocação de pool antigos estão sendo usados e recomendará substituí-las pela nova DDI equivalente mais segura. A regra é aplicável a drivers baseados em WDM, WDF e NDIS.

A instalação do WDK não permite mais mitigações do Spectre para todos os projetos C++, como visto no WDK 1903

Embora a instalação do WDK habilite a mitigação do Spectre por padrão para todos os drivers, ela não os habilita mais para todos os projetos C++.

Erro 'Um WDK correspondente ao destino '10.0.19041.0' não foi encontrado.

Ao selecionar [Versão do SDK do Windows] para '10.0 (versão mais recente instalada)' com o WDK 10.0.19041.0, o erro "Um WDK correspondente à versão de destino '10.0.19041.0' não foi encontrado" mesmo se a versão do SDK estiver instalada.

Solução alternativa: Na página de propriedades do projeto de driver (Propriedades >de Configuração Geral) defina a Versão do SDK do Windows como $(LatestTargetPlatformVersion). Se essa opção não estiver disponível para seleção, selecione a opção herdar do padrão pai ou do projeto.

O EWDK e o SDV em execução no Servidor têm requisitos do .NET

A execução do Verificador de Driver Estático do EWDK requer o .Net Framework 4.7.2. Dependendo da versão do Windows em seu sistema, o .NET pode estar instalado, pode estar instalado, mas precisa estar habilitado ou pode não estar instalado. Para obter mais informações sobre qual versão do .NET está instalada ou o estado da instalação do .NET, examine .NET Framework versões e dependências.

Falha na geração de DVL com System.IO.FileNotFoundException

Ao tentar criar um DVL (Log de Verificação de Driver), o seguinte erro será apresentado:

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.

Isso pode ocorrer nos ambientes de linha de comando e GUI. Esse problema é resolvido em uma versão futura do WDK e pode ser visto no WDK do Windows Insider Preview. Infelizmente, não existe uma solução alternativa para a versão atual.

O SDV falhará no EWDK se o VS não estiver instalado

O SDV tem uma dependência de VCRUNTIME140D.dll como parte do Visual Studio. Dessa forma, a execução do EWDK em um computador sem o VS instalado falhará. Instale o Visual Studio no computador para contornar esse problema.

O Verificador de Driver não é habilitado/desabilitado ao usar o gerenciador de testes do WDK

O Verificador de Driver não é habilitado/desabilitado quando os testes fundamentais do dispositivo são executados usando a Explorer de teste do WDK.

Solução alternativa: No computador cliente, habilite/desabilite manualmente o verificador de driver de acordo com estas instruções.

Instalações lado a lado do WDK de Windows 10, versão 2004 e WDK Windows 10, versão 1903 ou versão 1803

Com ambas as versões de kits instaladas no mesmo computador, o recurso 'Implantar driver' não funcionará para a versão mais antiga.

Solução alternativa: Use o 1803 em um computador separado se o recurso Implantar driver for necessário.

Os testes do WDTF (Windows Device Testing Framework) agora só são executados em sistemas com versões de Windows 10 correspondentes como o WDK

No WDK para Windows 10, versão 1809, foram feitas alterações no WDTF para dar suporte a essa versão do Windows 10, versão 1809. O efeito disso é que o WDTF não será mais executado no sistema operacional de nível inferior. A alteração continua com o WDK para Windows 10, versão 2004.

Alterativo para testes de nível inferior

Os testes do WDTF no WDK para Windows 10, versão 1803, podem ser executados em versões anteriores do Windows.

APIValidator

Em um APIValidator de máquina de arco x86 não é possível executar em binários x64. Se a criação de drivers x64 em uma API de computador x86Validator deve ser desativada.

Solução alternativa:

  1. Vá para a página de propriedades da solução de driver.

  2. Selecione APIValidator, Geral e, em seguida, altere Executar ApiValidator de Sim para Não.

O WDK em execução em sistemas Windows 7 requer 3033929 de KB

Você deve instalar o Microsoft Security Advisory 3033929 (KB3033929) antes de instalar o WDK em sistemas que executam o Windows 7. KB3033929 pode ser baixado no Centro de Download da Microsoft.

A instalação do WDK gera um erro do Visual Studio de que o componente do suplemento já está instalado

Essa mensagem de erro pode ser vista se o WDK foi desinstalado, mas a extensão de drivers do WDK para Visual Studio não foi desinstalada.

Resolução: No Visual Studio, vá para o menu suspenso Extensão , escolha Gerenciar Extensões, selecione o Kit de Driver do Windows e clique em Desinstalar.

Perguntas frequentes

Como fazer saber se as versões do WDK ou do EWDK que tenho contêm a correção para o zerador de alocações de pool?

Em Configurações do Sistema , acesse Adicionar ou Remover programas, pesquise Kit de Driver do Windows e anote a versão. O WDK original para Windows 10, versão 2004, tem uma versão de 10.0.19041.1, a versão atualizada do WDK é 10.0.19041.685 Para o EWDK, depois que o ambiente EWDK for iniciado, examine o título da janela de comando. A versão atualizada conterá vb_release_svc_prod1.19041.685. Além disso, ao examinar as variáveis de ambiente, a variável BuildLab deve mostrar vb_release_svc_prod1.19041.685.

O SDK (Software Development Kit) do Windows também foi atualizado, isso também é necessário?

Não, no entanto, o SDK (Software Development Kit) atualizado do Windows contém uma correção para onecore.lib que pode ser bom ter. Além disso, geralmente é uma boa ideia manter o SDK e o WDK alinhados.

Se eu já tiver o WDK para Windows 10, versão 2004 instalado, preciso desinstalá-lo antes de instalar a versão atualizada?

É altamente recomendável que, se você tiver o SDK e o WDK originais de 2004, eles sejam desinstalados e o SDK de atualização de segurança e o WDK sejam instalados. Dito isso, se o WDK atualizado estiver instalado sobre o WDK original, a versão atualizada substituirá o original. Observação: neste cenário , "Adicionar ou remover programas", ambas as versões serão listadas.