Windows SDK

Windows 11 バージョン 22H2 の Windows SDK (10.0.22621) には、Windows アプリケーションをビルドするための最新のヘッダー、ライブラリ、メタデータ、およびツールが用意されています。 この SDK を使用して、Windows 11、バージョン 22H2 および以前の Windows リリース用のユニバーサル Windows プラットフォーム (UWP) アプリケーションと Win32 アプリケーションをビルドします。

ヒント

Windows App SDK
Windows アプリ SDKには、OS から切り離され、NuGet パッケージを介して開発者にリリースされる、統合された API とツールのセットが用意されています。 これらの API とツールは、Windows 11およびダウンレベルからWindows 10 Version 1809までの任意のデスクトップ アプリで一貫した方法で使用できます。

作業の開始

このページから Windows SDK をインストールするには、ダウンロード リンクを選択するか、Visual Studio 2022 インストーラーのオプション コンポーネントで [Windows 11 SDK (10.0.22621.0)] を選択します。 SDK をインストールする前に:

最終更新日: 2021 年 10 月 4 日

システム要件

Windows SDK の最小システム要件は次のとおりです。

サポートされるオペレーティング システム

  • Windows 10 バージョン 1507 以降: Home、Professional、Education、Enterprise (LTSB と S は UWP ではサポートされていません)
  • Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2 (コマンド ラインのみ)
  • Windows 8.1
  • Windows 7 SP1

(以前のオペレーティング システムでは、一部のツールはサポートされません)

ハードウェア要件

  • 1.6 GHz 以上の高速プロセッサ
  • 1 GB の RAM
  • 4 GB のハード ディスク空き容量

SDK に関するその他の要件

Windows 8.1以前のオペレーティング システムへのインストールには、Windows のユニバーサル C ランタイムの更新プログラムが必要です。 Windows Update を通じてインストールするには、Windows SDK をインストールする前に、推奨される最新の更新プログラムとパッチを Microsoft Update から必ずインストールしてください。

サンプル

Windows アプリのサンプルは、 GitHub から入手できるようになりました。 GitHub でコードを参照したり、Git からリポジトリの個人用コピーを複製したり、すべてのサンプルの zip 形式のアーカイブを ダウンロード したりできます。 フィードバックをお待ちしておりますので、問題点やご質問がある場合は、リポジトリ内で新しい問題点をご提示ください。 これらのサンプルは、ユニバーサル Windows プラットフォーム (UWP) をサポートするデスクトップ、モバイル、今後のデバイスで動作するように設計されています。

以前の SDK のバージョン

以前にリリースされた SDK とエミュレーター、および更新プログラムの詳細については、アーカイブ ページをご覧ください。

API の使用

新しい API を使用する場合は、最も広い範囲の Windows デバイスで正しく実行されるように、適応型になるようにアプリを記述することを検討してください。 アダプティブ アプリは、デバイスと Windows バージョンでサポートされている新機能を使用して "点灯" しますが、それ以外の場合は検出されたプラットフォーム バージョンで使用可能な機能のみを提供します。 実装の詳細については、 バージョン アダプティブ コードに関する記事を参照してください。

リリース ノートと既知の問題

Windows SDK for Windows 11 バージョン 22H2
  • サービス更新プログラム 10.0.22621.755。 VS 17.4 リリースの ARM64 サポートが含まれています
Windows 10 SDK バージョン 2104
  • api-ms-win-net-isolation-l1-1-0.lib を削除しました。 api-ms-win-net-isolation-l1-1-0.lib に対してリンクしていたアプリは、代わりに t OneCoreUAP.lib を切り替えることができます。

  • irprops.lib を削除しました。 irprops.lib に対してリンクしていたアプリは、ドロップイン置換として bthprops.lib に切り替えることができます。

  • ENUM tagServerSelection を wuapicommon.h から wupai.h に移動し、ヘッダーを削除しました。 ENUM タグServerSelectionを使用する場合は、wuapi.h または wuapi.idl を含める必要があります。

  • Windows 10 WinRT API Pack を使用すると、.NET Framework 4.5 以降および .NET Core 3.0 以降のライブラリとアプリに最新のWindows ランタイム API サポートを追加できます。 Windows 10 WinRT API Pack にアクセスするには、Microsoft.Windows.SDK.Contracts nuget パッケージを参照してください。

  • printf ファミリの関数は、正確に表現可能な浮動小数点数を出力するときに IEEE 754 丸め規則に準拠 し、 fesetround の呼び出しを介して要求された丸めモードを受け入れることができるようになりました。 従来の動作は、 legacy_stdio_float_rounding.obj とリンクするときに使用できます。

  • Windows アプリ認定キット。 アプリ認定キットと Windows ストアの [サポートされている API] の一覧にいくつかの新しい API が追加されました。 サポートされている一覧に、Visual Studio で灰色表示または無効になっている API がある場合は、ソース ファイルを少し変更してアクセスできます。 詳細については、この既知の 問題を参照してください。 テストのその他の更新プログラムを検索します

  • メッセージ コンパイラ (mc.exe) の更新:

    • これで、.mc ファイル内の Unicode バイトオーダー マーク (BOM) が検出されます。 .mc ファイルが UTF-8 BOM で始まる場合は、UTF-8 ファイルとして読み取られます。 それ以外の場合は、UTF-16LE BOM で始まる場合は、UTF-16LE ファイルとして読み取られます。 -u パラメーターを指定した場合は、UTF-16LE ファイルとして読み取られます。 それ以外の場合は、現在のコード ページ (CP_ACP) を使用して読み取られます。
    • これで、構成マクロの競合によって発生する MC 生成 C/C++ ETW ヘルパーでの 1 定義規則 (ODR) の問題を回避できるようになりました (たとえば、MCGEN_EVENTWRITETRANSFERの定義が競合する 2 つの .cpp ファイルが同じバイナリにリンクされている場合、MC によって生成された ETW ヘルパーは、任意に 1 つを選択するのではなく、各 .cpp ファイル内のMCGEN_EVENTWRITETRANSFERの定義を尊重するようになりました)。
  • Windows トレース プリプロセッサ (tracewpp.exe) の更新プログラム:

    • Unicode 入力 (.ini、.tpl、およびソース コード) ファイルをサポートします。 UTF-8 または UTF-16 バイトオーダー マーク (BOM) で始まる入力ファイルは Unicode として読み取られます。 BOM で開始されない入力ファイルは、現在のコード ページ (CP_ACP) を使用して読み取られます。 下位互換性のために、-UnicodeIgnore コマンド ライン パラメーターが指定されている場合、UTF-16 BOM で始まるファイルは空として扱われます。
    • Unicode 出力 (.tmh) ファイルをサポートします。 既定では、出力ファイルは現在のコード ページ (CP_ACP) を使用してエンコードされます。 コマンド ライン パラメーター -cp:UTF-8 または -cp:UTF-16 を使用して Unicode 出力ファイルを生成します。
    • 動作の変更: tracewpp は、すべての入力テキストを Unicode に変換し、Unicode で処理を実行し、出力テキストを指定された出力エンコードに変換するようになりました。 以前のバージョンの tracewpp では、Unicode 変換を回避し、1 バイト文字セットを想定してテキスト処理を実行しました。 これにより、入力ファイルが現在のコード ページに準拠していない場合に動作が変更される可能性があります。 これが問題である場合は、エンコードのあいまいさを避けるために、入力ファイルを UTF-8 (BOM を使用) に変換するか、-cp:UTF-8 コマンド ライン パラメーターを使用することを検討してください。
  • TraceLoggingProvider.h の更新:

    • 構成マクロの競合によって発生する 1 定義規則 (ODR) の問題を回避します (たとえば、競合する定義のTLG_EVENT_WRITE_TRANSFERを持つ 2 つの .cpp ファイルが同じバイナリにリンクされている場合、TraceLoggingProvider.h ヘルパーは、任意にいずれかを選択する代わりに、各 .cpp ファイル内のTLG_EVENT_WRITE_TRANSFERの定義を尊重するようになりました)。
    • C++ コードでは、TraceLoggingWrite マクロが更新され、可変個引数テンプレートを使用した類似イベント間のコード共有が改善されました。
  • アプリに署名する。 Device Guard 署名は、ビジネス向け Microsoft Storeおよび Education で使用できる Device Guard 機能です。これにより、企業はすべてのアプリが信頼できるソースから取得されることを保証できます。 Device Guard 署名に関するドキュメントを参照してください

  • MSVC コンパイラ cl.exe (/Zc:プリプロセッサ、VS 2019 v16.6 で導入) で標準準拠 C プリプロセッサを使用してコンパイルするときにエラーを解決するために、SDK ヘッダーが更新されました。

  • "GdiplusTypes.h が NOMINMAX でコンパイルされない" という問題を修正しました。 「Visual Studio のフィードバック」を参照してください

  • /std:c11 または /std:c17 を使用してビルドすると、次の情報が得られます。

    • C99 tgmath.h
    • assert.h の C11 static_assert
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • ARM64 を対象とする Windows v11 用 Clang/LLVM は、最新の winnt.h と互換性がありません

    • 回避策として、ARM64 プラットフォームをターゲットとする場合は、Windows 10 SDK の以前のバージョン (ビルド 19041)、Windows v10 の clang/LLVM を使用します
  • DirectXMath (このリリースのバージョン 3.16 を含む) は、ARM64 上の Windows 用 Clang/LLVM と互換性がありません。

  • 一部のヘッダー ファイルの大文字と小文字が変更され、大文字と小文字が区別されるファイル システム用に正規化されました。

    • OAIdl.h、ObjIdl.h、ObjIdlbase.h、OCIdl.h、Ole2.h、OleAuto.h、および OleCtl.h はすべて小文字になりました。
    • Clang/LLVM for Windows ビルドの場合、警告なしで古いバージョンと最新のWindows 10 SDK の両方をサポートするには、CLI にを追加するか、ソースで次の#pragmaを追加-Wno-nonportable-system-include-pathします。

    #ifdef __clang__

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

    #endif

Windows 10 SDK バージョン 2004 サービス更新プログラム (2020 年 12 月 16 日リリース)

このリリースには、次のファイルが含まれています。 これらの問題が発生した場合は、SDK のバージョンをできるだけ早く更新して回避することをお勧めします。

  • アンブレラ ライブラリとネイティブ OS ライブラリ (onecoreuap.lib や kernel32.lib など) の両方をリンクするとクラッシュが発生する予測不能で診断が困難な問題を解決しました
  • AppVerifier が動作しない問題を解決しました
  • WACK が "タスクで HighVersionLie を有効にできませんでした" で失敗する原因となった問題を解決しました

その他のリソース