Partilhar via


Problemas conhecidos do Kit de Driver do Windows (WDK)

Este artigo detalha problemas conhecidos relacionados ao WDK.

WDK para Windows 11, versão 26H1

Teste de Drivers com Suporte ao Visual Studio

O teste de drivers no Visual Studio é suportado a partir do Visual Studio 2022 versão 17.14.23 e posteriores

WDK para Windows 11, versão 24H2

Desenvolvimento de Driver em Modo Kernel para x86

A partir do Windows 11, versão 24H2, o WDK não suporta mais o desenvolvimento de drivers no modo kernel x86. Se tiver uma necessidade empresarial de desenvolver drivers de modo kernel x86, use o WDK Versão 23H2

Reiniciar após o provisionamento

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

Suporte SxS para Drivers ARM64 WDK

Quando o kit do Windows 11, versão 24H2, e o kit do Windows 11, versão 22H2, são instalados em uma máquina ARM64, construir um driver do KMDF (Kernel Mode Driver Framework) para ARM64 com TargetPlatformVersion definido como Windows 11, versão 22H2, falha com WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol.

Falha na instalação da extensão WDK

Se você estiver usando o Visual Studio versão 17.11.0 ou posterior, desmarque a caixa de seleção instalar a extensão na instalação do WDK.

WDK para Windows 11, versão 22H2

Erro de serviço na inicialização

Se você instalou o WDK original do Windows 11, versão 22H2 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, 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 as versões 17.2.0 e 17.3 do Visual Studio 2022 com o WDK do Windows 11, versão 22H2 (10.0.22621.382). Para contornar o problema, execute uma das seguintes ações: 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 coinstaladores redistribuíveis do Windows Driver Framework (WDF) não funcionam

Os coinstaladores redistribuíveis WDF não são mais suportados. Isso causa problemas em computadores que têm o Windows 11, versão 22H2 WDK e um WDK mais antigo instalado. Quando você tenta criar um driver WDF 1.11 em tal sistema, msbuild falha. A compilação falha porque o msbuild não consegue encontrar 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ê instalou o WDK do Windows 11, versão 22H2, instale o arquivo MSI nos componentes redistribuíveis do WDK 8 em um computador separado e copie a redist pasta para a \Program files (x86)\windows kit\10\redist\wdf pasta. Para obter mais informações, consulte Redistributable Framework Components.

WDK para Windows 10, versão 2004

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

Em maio de 2020, a OSR descobriu um problema com o novo suporte de nível inferior para zeragem automática de alocações de pool. O problema pode fazer com que uma alocação não seja inicializada a zero em sistemas que executam o Windows 10, versão 1909. Isso 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 e o WDK originais (versão 2004) e instalem o SDK de atualização e o WDK ou EWDK.

Para garantir que havia 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 o novo pool zerando DDIs, que retornam memória zerada por padrão. Isso aumenta a segurança e a confiabilidade do driver. Para ajudar nessa transição, a Microsoft criou uma regra de Verificador de Driver Estático, que está disponível nas versões de pré-visualização do Windows 10 WDK 20236 e superiores. A regra identifica 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 recomenda substituí-los pelo novo DDI equivalente mais seguro. 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 (última versão instalada)' com o 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 (Configuration Properties >General), defina Windows SDK Version como $(LatestTargetPlatformVersion). Se essa opção não estiver disponível para seleção, selecione a opção herdar do pai ou do padrão do projeto.

EWDK e SDV em execução no servidor têm requisitos .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 é apresentado:

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.

Esse problema pode ocorrer em 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 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 falha. Instale o Visual Studio no computador para contornar esse problema.

O Verificador de Driver não é ativado/desativado ao usar o explorador de testes WDK

O Verificador de Driver não é ativado/desativado quando os testes do Device Fundamental são executados usando o WDK Test Explorer.

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

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

Com ambas as versões dos kits instaladas no mesmo PC, o recurso Implantar driver não funciona para a versão mais antiga.

Solução alternativa: Use o 1803 numa máquina separada caso o recurso Implantar controlador seja 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 suportar 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

Numa máquina com arquitetura x86, o APIValidator não consegue correr em binários x64. Se estiver criando drivers x64 em uma máquina x86, APIValidator deve ser desligado.

Solução alternativa:

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

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

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

Você deve instalar o Microsoft Security Advisory 3033929 (KB3033929) antes de instalar o WDK em sistemas que executam o Windows 7. KB3033929 pode ser transferido a partir do Centro de Transferências da Microsoft.

A instalação do WDK gera um erro do Visual Studio informando que a extensão já está instalada.

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 selecione Desinstalar.

FAQ

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

Em Configurações do Sistema , vá para Adicionar ou Remover programas, procure Windows Driver Kit 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, observe o título da janela de comando. A versão atualizada contém 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 é 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?

Recomendamos que, se você tiver o SDK e o WDK originais de 2004, eles sejam desinstalados e que o SDK e o WDK de atualização de segurança sejam instalados. Dito isto, se o WDK atualizado estiver instalado sobre o WDK original, a versão atualizada substituirá o original. Nota: Neste cenário "Adicionar ou remover programas", ambas as versões são listadas.