Partilhar via


Construção de drivers Arm64 com o WDK

A partir da versão 10.0.26100.1 do WDK (lançada em 22 de maio de 2024), o WDK agora oferece suporte ao desenvolvimento, teste e implantação de drivers em máquinas Arm64. O WDK pode ser instalado e executado nativamente em hardware Arm64, além da emulação anteriormente suportada de drivers x86 KMDF/UMDF2 em hardware Arm64. Existe também suporte para a depuração e implementação de drivers num alvo Arm64 a partir de computadores host Arm64 e x64. O processo de instalação do WDK em máquinas Arm64 identificará e instalará automaticamente todas as dependências necessárias, incluindo ferramentas de compilação, binários e bibliotecas.

Esta página descreve como criar um driver Arm64 com o WDK.

Configuração

  1. Baixar Visual Studio 2022. Você precisará no mínimo da versão 17.0.0 ou posterior. Certifique-se de ter os seguintes componentes instalados:

    • MSVC v143 - VS 2022 C++ ARM64/ARM64EC bibliotecas mitigadas contra a vulnerabilidade Spectre (Mais recente)
    • MSVC v143 - VS 2022 C++ x64/x86 bibliotecas mitigadas contra Spectre (Mais recente)
    • C++ ATL para as mais recentes ferramentas de compilação v143 com Spectre Mitigations (ARM64/ARM64EC)
    • C++ ATL para as mais recentes ferramentas de compilação v143 com mitigações contra Spectre (x86 e x64)
    • C++ MFC para as mais recentes ferramentas de compilação v143 com Spectre Mitigations (ARM64/ARM64EC)
    • C++ MFC para as mais recentes ferramentas de compilação v143 com mitigações do Spectre (x86 & x64)
    • Kit de Controladores do Windows
  2. Instale e reinicie o Visual Studio.

  3. Baixe o SDK do Windows. Verifique se você tem o SDK versão 26100 (Windows 11, versão 24H2) ou posterior.

  4. Baixe o WDK. Verifique se você tem o WDK versão 26100 ou posterior.

Construir um driver Arm64 com o WDK

  1. No Visual Studio, abra uma solução de driver. Você pode usar o seu próprio ou um dos Windows-driver-samples repo.

  2. Selecione Plataforma de soluções e selecione Configuration Manager.

    Captura de ecrã da barra de ferramentas do Visual Studio a mostrar a opção Gestor de Configuração no menu suspenso da plataforma de solução.

  3. Em Plataforma de Solução Ativa, selecione Novo.

    Captura de ecrã da caixa de diálogo do Gestor de Configuração com a opção

  4. Em Tipo ou selecionar Nova Plataforma, selecione Arm64. Copie as configurações do Win32. Selecione OK e Fechar.

    Captura de ecrã do diálogo da Nova Plataforma de Solução com Arm64 selecionado como plataforma alvo.

  5. Selecione Arm64 como a plataforma de destino e reconstrua.

Problemas conhecidos

  • Integração:

    • Quando ambos os kits do Windows 11, versão 24H2, e do Windows 11, versão 22H2 estão instalados, a criação de um driver KMDF para ARM64 com TargetPlatformVersion configurado para o Windows 11, versão 22H2 falha devido a símbolos externos não resolvidos.
    • Não é possível depurar drivers nas versões 17.2.0 e 17.3 do Visual Studio 2022 com o WDK do Windows 11, versão 22H2.
  • Soluções alternativas:

    • Atualize o Visual Studio para a versão 17.4.1 ou posterior para corrigir problemas de depuração.
    • Utilize o WinDbg para depuração se atualizar o Visual Studio não for uma opção.
    • Considere usar uma versão anterior do Visual Studio se os problemas de compatibilidade persistirem.

Usando o Enterprise Windows Driver Kit (EWDK)

  • Visão geral do EWDK:

    • O EWDK inclui todas as dependências necessárias e pode ser usado para criar drivers sem exigir a instalação do Visual Studio.
  • Compilar usando EWDK:

    • Use o seguinte comando para construir o driver:

      Msbuild -p:Configuration=Release/Debug; Platform=ARM64
      

Para obter mais informações, consulte Enterprise WDK (EWDK).

Solução de problemas

  • Configuração do no Visual Studio:

    • No Visual Studio, configure a solução de driver para Arm64 selecionando a plataforma Arm64 no Configuration Manager e copiando as configurações do Win32.
  • Teste e depuração:

    • Teste e depure drivers em um dispositivo Windows on Arm ou em uma máquina virtual Windows 11 Arm64.

Consulte também