Partilhar via


Problemas conhecidos do WDK (Kit de Driver do Windows)

Este tópico detalha problemas conhecidos relacionados ao WDK.

WDK para Windows 11, versão 24H2

Reiniciar após o provisionamento

Após o provisionamento e a implantação, a máquina de destino falha ao reiniciar após as etapas de implantação.

ARM64 WDK Driver SxS Suporte

Quando o kit Windows 11, versão 24H2 e o kit Windows 11, versão 22H2 são instalados em uma máquina ARM64, criando um driver KMDF para ARM64 com TargetPlatformVersion definido para Windows 11, a versão 22H2 falha com WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbolo .

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), você 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, em seguida, reinstalar o WDK mais recente usando as instruções em Baixar o Kit de Driver do Windows.

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 contornar o problema, siga um destes procedimentos: atualizar o Visual Studio para 17.4.1 ou posterior, depurar com WinDbg ou usar uma versão do Visual Studio anterior à 17.2.0. A seguinte mensagem de erro está relacionada a esse 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, os co-instaladores redistribuíveis do WDF não são mais suportados. Especificamente, em um computador que tenha o Windows 11, versão 22H2 WDK e um WDK mais antigo, ao criar um driver WDF 1.11, msbuild falha porque não é possível localizar o coinstalador WDF.

Para corrigir esse problema, antes de instalar o Windows 11, versão 22H2 WDK, faça backup da pasta \Program files (x86)\windows kit\10\redist\wdf e restaure-a depois. Como alternativa, se você já tiver instalado o Windows 11, versão 22H2 WDK, instale o arquivo MSI em WDK 8 componentes redistribuíveis em um computador separado e copie a redist pasta para a pasta acima. Para obter mais informações, consulte Componentes do Framework 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 zeramento automático de alocações de pool tinha um problema que poderia levar a uma alocação não ser inicializada zero em sistemas que executam o Windows 10, versão 1909. Isso agora foi corrigido com uma atualização de segurança do WDK para Windows 10, versão 2004 e do 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 compilação do Visual Studio 16.7. A Microsoft recomenda que todos os desenvolvedores de drivers desinstalem o SDK original e o WDK (versão 2004) e instalem o SDK de atualização e o WDK ou EWDK.

Para garantir que houvesse uma solução de segurança completa em vigor, uma correção do sistema operacional foi lançada para o 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 do kernel para usar as novas DDIs de zeragem do pool que retornam memória zerada por padrão. Isso aumentará a segurança e a confiabilidade do motorista. Para ajudar nessa transição, a Microsoft criou uma regra de verificação de driver estático que está disponível na visualização do Windows 10 WDK versões 20236 e superiores. A regra identificará todas as instâncias no código-fonte de um driver em que as DDIs de alocação de pool antigas estão sendo usadas 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 habilita mais as 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 WDK 10.0.19041.0 causa 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 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 pai ou padrão 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 a partir 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 ser 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, consulte as versões e dependências do .NET Framework.

A geração DVL falha com System.IO.FileNotFoundException

Ao tentar criar um log de verificação de driver (DVL), 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 Windows Insider Preview WDK. Infelizmente, não existe nenhuma solução alternativa para a versão atual.

SDV falha no EWDK se o VS não estiver instalado

SDV tem uma dependência de VCRUNTIME140D.dll como parte do Visual Studio. Como tal, a execução do EWDK em uma máquina 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 o Gerenciador de Testes do WDK.

Solução alternativa: Na máquina cliente, habilite/desabilite manualmente o verificador de driver de acordo com estas instruções.

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

Com as duas versões dos kits instaladas no mesmo PC, o recurso 'Implantar driver' não funcionará para versões mais antigas.

Solução alternativa: use o 1803 em uma máquina separada 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 correspondentes do Windows 10 como o WDK

No WDK para Windows 10, versão 1809, foram feitas alterações no WDTF para oferecer suporte a esta 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 mudança continua com o WDK para Windows 10, versão 2004.

Alternativa para testes de nível inferior

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

APIValidator

Em uma máquina de arco x86, o APIValidator não pode ser executado em binários x64. Se a criação de drivers x64 em uma máquina x86 APIValidator deve ser desativado.

Solução alternativa:

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

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

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

Você deve instalar o 3033929 (KB3033929) do Comunicado de Segurança da Microsoft antes de instalar o WDK em sistemas que executam o Windows 7. KB3033929 pode ser baixado do Centro de Download da Microsoft.

A instalação do WDK gera um erro do Visual Studio informando 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 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 saber se as versões WDK ou EWDK que tenho contêm a correção para zerar as alocações de pool?

Em Configurações do Sistema, vá para Adicionar ou Remover programas, procure o 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, uma vez que o ambiente EWDK é iniciado, olhe para 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 Windows Software Development Kit (SDK) também foi atualizado, isso também é necessário?

Não, no entanto, o Windows Software Development Kit (SDK) atualizado 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 do 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á a original. Nota: Neste cenário "Adicionar ou remover programas", ambas as versões serão listadas.