Windows SDK

Windows 11 用のWindows SDK (10.0.22621) には、Windows アプリケーションをビルドするための最新のヘッダー、ライブラリ、メタデータ、およびツールが用意されています。 この SDK を使用して、Windows 11、バージョン 23H2、および以前の 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)] を選択することで、このページからインストールする 2 つの方法で取得できます。 SDK をインストールする前に:

最終更新日: 2024 年 2 月

システム要件

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 11、ビルド 10.0.22621.3235 (2024 年 2 月 29 日リリース)

サービス更新プログラム 10.0.22621.3235。

Windows 11、ビルド 10.0.22621.2428 (2023 年 10 月 24 日リリース)

サービス更新プログラム 10.0.22621.2428。

Windows 11、バージョン 22H2、ビルド 10.0.22621.1778

Update 10.0.22621.1778。 強調表示されている機能は次のとおりです。

  • WindowTabManager API を使用すると、タブ付きインターフェイスを持つアプリケーションは、開いているタブに関する情報を Windows シェルに提供できます。
  • HumanPresence API に更新して使いやすさを向上させ、人間のプレゼンス機能をサポートするセンサーの新しい設定を追加します。
  • RemoteDesktop API を使用すると、アプリケーションでリモート デスクトップとローカル デスクトップを切り替えることができます。
Windows 11 バージョン 22H2 のWindows SDK
  • サービス更新プログラム 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) の問題を回避します (たとえば、競合する定義を持つ 2 つの.cpp ファイルとTLG_EVENT_WRITE_TRANSFERが同じバイナリにリンクされている場合、TraceLoggingProvider.h ヘルパーは、任意に 1 つまたは複数を選択するのではなく、各.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 を有効にできませんでした" で失敗する原因となった問題を解決しました

その他のリソース