Windows SDK

O Windows SDK (10.0.22621) para Windows 11, a versão 22H2 fornece os cabeçalhos mais recentes, bibliotecas, metadados e ferramentas para a construção de aplicações Windows. Utilize este SDK para construir aplicações Plataforma Universal do Windows (UWP) e Win32 para Windows 11, versão 22H2 e versões anteriores do Windows.

Dica

SDK de aplicações Windows
O SDK de aplicações Windows fornece um conjunto unificado de APIs e ferramentas que são dissociadas do SO e libertadas para desenvolvedores através de pacotes NuGet. Estas APIs e ferramentas podem ser usadas de forma consistente por qualquer aplicação de ambiente de trabalho em Windows 11 e de baixo nível para Windows 10, versão 1809.

Introdução

Pode obter o Windows SDK de duas formas: instale-o a partir desta página selecionando o link de descarregamento ou selecionando "Windows 11 SDK (10.0.22621.0)" nos componentes opcionais do Instalador Visual Studio 2022. Antes de instalar este SDK:

Última atualização: 4 de outubro de 2021

Requisitos de sistema

O Windows SDK tem os seguintes requisitos mínimos do sistema:

Sistemas operativos suportados

  • Windows 10 versão 1507 ou superior: Home, Professional, Education e Enterprise (LTSB e S não são suportados para UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 e Windows Server 2012 R2 (apenas linha de comando)
  • Windows 8.1
  • Windows 7 SP1

(Nem todas as ferramentas são suportadas em sistemas operativos anteriores)

Requisitos de hardware

  • 1,6 GHz ou processador mais rápido
  • 1 GB de RAM
  • 4 GB de espaço de disco rígido disponível

Requisitos adicionais de SDK

A instalação em sistemas operativos Windows 8.1 e anteriores requer uma atualização para o tempo de funcionamento Universal C no Windows. Para instalar através de Windows Update, certifique-se de que instala as atualizações e patches mais recentes recomendados a partir do Microsoft Update antes de instalar o Windows SDK.

Amostras

As amostras de aplicações do Windows estão agora disponíveis através do GitHub. Pode navegar no código no GitHub, clonar uma cópia pessoal do repositório de Git ou descarregar um arquivo fechado de todas as amostras. Congratulamo-nos com o feedback, por isso sinta-se livre para abrir um problema no repositório se tiver algum problema ou dúvida. Estas amostras são projetadas para funcionar em dispositivos de desktop, mobile e futuros que suportam o Plataforma Universal do Windows (UWP).

Versões anteriores da SDK

Os SDKs e os emuladores previamente lançados, incluindo detalhes de atualização, podem ser encontrados na página de arquivo.

API Light Up

Quando utilizar novas APIs, considere escrever a sua aplicação como adaptável para que seja executado corretamente na maior variedade de dispositivos Windows. Uma aplicação adaptativa "acende-se" com novas funcionalidades onde quer que os dispositivos e a versão Do Windows os suportem, mas de outra forma apenas oferece a funcionalidade disponível na versão da plataforma detetada. Para mais detalhes sobre a implementação, consulte o artigo de código adaptativo da versão.

Notas de lançamento e questões conhecidas

Windows SDK para Windows 11, versão 22H2
  • Atualização de manutenção 10.0.22621.755. Inclui suporte ARM64 para o lançamento VS 17.4
Windows 10 SDK, versão 2104
  • Removido api-ms-win-net-isolamento-l1-1-0.lib. As aplicações que estavam a ligar-se contra api-ms-win-net-isola-l1-1-0.lib podem mudar t OneCoreUAP.lib como um substituto.

  • Removidos irprops.lib. As aplicações que estavam ligadas contra irprops.lib podem mudar para bthprops.lib como uma substituição drop-in.

  • Moveu a ENUM tagServerSelection de wuapicommon.h para wupai.h e removeu o cabeçalho. Se quiser utilizar a tag ENUMServerSelection, terá de incluir wuapi.h ou wuapi.idl.

  • O Windows 10 WinRT API Pack permite-lhe adicionar as mais recentes Windows Runtime suporte apis às suas .NET Framework bibliotecas e aplicações .NET Core 3.0+. Para aceder ao Windows 10 WinRT API Pack, consulte o pacote nuget Microsoft.Windows.SDK.Contracts.

  • A família de funções de impressão está agora em conformidade com as regras de arredondamento do IEEE 754 ao imprimir números de ponto flutuante exatamente representáveis e honrará o modo de arredondamento solicitado através de chamadas para fesetround. O comportamento do legado está disponível quando se liga a legacy_stdio_float_rounding.obj.

  • Kit de Certificação de Aplicativos windows. Várias novas APIs foram adicionadas à lista de APIs suportados no Kit de Certificação de Aplicações e na Windows Store. Se existirem APIs na lista suportada que aparecem acinzentadas ou desativadas no Visual Studio, pode fazer uma pequena alteração no seu ficheiro de origem, para aceder aos mesmos. Para mais detalhes, consulte esta questão conhecida. Encontre mais atualizações para os testes.

  • Atualizações do Compilador de Mensagens (mc.exe):

    • Agora deteta a marca de ordem do byte Unicode (BOM) em ficheiros .mc. Se o ficheiro .mc começar com um UTF-8 BOM, será lido como um ficheiro UTF-8. Caso contrário, se começar com um UTF-16LE BOM, será lido como um ficheiro UTF-16LE. Se o parâmetro -u foi especificado, será lido como um ficheiro UTF-16LE. Caso contrário, será lido utilizando a página de código atual (CP_ACP).
    • Agora evita problemas de uma regra de definição (ODR) em ajudantes ETW gerados por MC-gerados por C++ ETW gerados por macros de configuração conflituosas (por exemplo, quando dois ficheiros .cpp com definições contraditórias de MCGEN_EVENTWRITETRANSFER estão ligados ao mesmo binário, os ajudantes ETW gerados pelo MC irão agora respeitar a definição de MCGEN_EVENTWRITETRANSFER em cada .cpp ficheiro em vez de escolherem arbitrariamente um ou outro).
  • Atualizações do Pré-processo do Windows Trace (tracewpp.exe):

    • Suporta ficheiros de entrada Unicode (.ini, .tpl e código fonte). Os ficheiros de entrada a partir de uma marca de ordem byte UTF-8 ou UTF-16 (BOM) serão lidos como Unicode. Os ficheiros de entrada que não comecem com um BOM serão lidos utilizando a página de código atual (CP_ACP). Para retrocompatibilidade, se o parâmetro da linha de comando -UnicodeIgnore for especificado, os ficheiros que comecem com um UTF-16 BOM serão tratados como vazios.
    • Suporta ficheiros de saída do Unicode (.tmh). Por predefinição, os ficheiros de saída serão codificados utilizando a página de código atual (CP_ACP). Utilize parâmetros de linha de comando -cp:UTF-8 ou -cp:UTF-16 para gerar ficheiros de saída Unicode.
    • Mudança de comportamento: o tracewpp agora converte todo o texto de entrada para Unicode, executa o processamento no Unicode e converte o texto de saída para a codificação de saída especificada. Versões anteriores do tracewpp evitaram conversões unicód e executaram o processamento de texto assumindo um conjunto de caracteres de byte único. Isto pode levar a alterações de comportamento nos casos em que os ficheiros de entrada não estão em conformidade com a página de código atual. Nos casos em que se trata de um problema, considere converter os ficheiros de entrada para UTF-8 (com BOM) e/ou utilizar o parâmetro da linha de comando -cp:UTF-8 para evitar a ambiguidade codificante.
  • Atualizações TraceLoggingProvider.h:

    • Evita problemas de uma regra de definição (ODR) causados por macros de configuração conflituosas (por exemplo, quando dois ficheiros .cpp com definições conflituosas de TLG_EVENT_WRITE_TRANSFER estão ligados ao mesmo binário, os ajudantes TraceLoggingProvider.h irão agora respeitar a definição de TLG_EVENT_WRITE_TRANSFER em cada .cpp ficheiro em vez de escolher arbitrariamente um ou outro).
    • No código C++ o traceLoggingWrite macro foi atualizado para permitir uma melhor partilha de códigos entre eventos semelhantes utilizando modelos variados.
  • Assinando os seus aplicativos. A assinatura da Device Guard é uma funcionalidade da Device Guard que está disponível em Microsoft Store para Empresas e Educação, que permite às empresas garantir que todas as aplicações provêm de uma fonte fidedigna. Consulte a documentação sobre a assinatura do dispositivo.

  • Os cabeçalhos SDK foram atualizados para resolver erros ao compilar o pré-processador C padrão no compilador MSVC cl.exe (/Zc:preprocessador, introduzido em VS 2019 v16.6).

  • Fixo: "GdiplusTypes.h não compila com NOMINMAX". Ver Feedback do Estúdio Visual.

  • Ao construir com /std:c11 ou /std:c17, você agora recebe:

    • C99 tgmath.h
    • C11 static_assert em afirma.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM para Windows v11 visando ARM64 não é compatível com o mais recente winnt.h

    • Como solução alternativa, utilize a versão anterior do Windows 10 SDK (build 19041), ou clang/LLVM para Windows v10 ao direcionar as plataformas ARM64
  • O DirectXMath (incluindo a versão 3.16 nesta versão) não é compatível com o Clang/LLVM para windows no ARM64.

  • O caso de alguns ficheiros de cabeçalho foram alterados, para normalizá-los para sistemas de ficheiros sensíveis a casos:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h e OleCtl.h foram todos feitos em minúsculas.
    • Para a clandestino/LLVM para construções do Windows, para suportar tanto a versão mais antiga como a versão mais recente Windows 10 SDK sem avisos, adicione -Wno-nonportable-system-include-path ao CLI, ou os seguintes #pragma na fonte:

    #ifdef __clang__

    #pragma clang diagnostic ignored "-Wnonportable-system-include-path"

    #endif

Windows 10 SDK, versão 2004 atualização de manutenção (lançado 12/16/2020)

Esta versão contém os seguintes ficheiros. Se encontrar estes problemas, recomendamos que atualize a sua versão do SDK o mais rapidamente possível para evitá-los:

  • Resolvidos acidentes imprevisíveis e difíceis de diagnosticar ao ligar bibliotecas de guarda-chuvas e bibliotecas de OS nativos (por exemplo, onecoreuap.lib e kernel32.lib)
  • Problema resolvido que impediu o AppVerifier de trabalhar
  • Problema resolvido que fez a WACK falhar com "Tarefa falhou em permitir HighVersionLie"

Mais recursos