Windows 10 SDK

Windows 10 Version 1809 用 Windows 10 SDK は、Windows 10 アプリを構築するための最新のヘッダー、ライブラリ、メタデータ、ツールを提供します。

: Windows 10 Version 1809 (以降) をターゲットとする Windows 10 開発には、Visual Studio 2017 が必要です。この SDK は、以前のバージョンの Visual Studio では検出できません。

はじめに

Windows 10 SDK を入手するには 2 つの方法があります。この Web サイトからダウンロード リンクを選択してインストールするか、または Visual Studio 15.8 インストーラーのオプション コンポーネントとしてこのバージョンの Windows 10 SDK (10.0.17763.0) を選択します。

SDK をインストールする前に:

  1. このトピックに記載されているシステム要件をすべて確認します。
  2. インストールの前に Visual Studio 2017 RTM を終了します。Visual Studio が実行されていると、SDK のセットアップが失敗する可能性があります。 ツールの一般的な問題について詳しくは、こちらをご覧ください
  3. このトピックの「既知の問題」を確認します。

システム要件

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

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

  • Windows 10 アプリの開発 (UWP)
    • Windows 10 バージョン 1507 以降: Home、Professional、Education、Enterprise (LTSB および S はサポートされません)
    • Windows Server 2012 R2 (コマンド ラインのみ)、Windows Server 2016 (コマンド ラインのみ)
  • Win32 開発
    • Windows 10 バージョン 1507 以降
    • Windows Server 2016 Standard および Datacenter
    • Windows 8.1
    • Windows Server 2012 R2
    • Windows 7 SP1

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

ハードウェア要件

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

SDK に関するその他の要件

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

新着情報

Windows 10 Version 1809 用の Windows 10 SDK では、Windows アプリケーションを開発するための魅力ある新しい API と更新されたツールが提供されます。詳しくは、Windows 10 Version 1809 の新着情報をご覧ください。

API

Windows 10 Version 1809 で導入された新しい API については、「Windows 10 ビルド 17763 の開発者向け新着情報」をご覧ください。

ツール

CPPWinRT

Windows 10 Version 1803 SDK では、C++/WinRT ヘッダーと CPPWinRT コンパイラ (cppwinrt.exe) が初めて追加されました。今回のリリース (Version 1809) では、大幅な改良と変更が行われています。たとえば、コード生成が改良され、Clang と VC++ の準拠モードがより厳格になり互換性が強化されているほか、さまざまな機能が更新されています。詳しくは、新機能の発表とユーザーからの要望や問題の追跡を行っている GitHub リポジトリをご覧ください。

MC.EXE

メッセージ コンパイラ (MC とも呼ばれ、mc.exe を指します) での C/C++ ETW コードの生成に関して、いくつかの重要な変更が行われました。

  • -mof パラメーターは推奨されなくなりました。このパラメーターは、Windows XP 以前との互換性のある ETW コードの生成を mc.exe に指示するものです。"-mof" パラメーターのサポートは、将来のバージョンの mc.exe で削除される予定です。
  • "-mof" パラメーターが使用されていない場合に生成される C/C++ ヘッダーは、コマンド ラインで -km パラメーターまたは -um パラメーターが指定されたかどうかにかかわらず、カーネル モードとユーザー モードの両方と互換性を持つようになりました。ヘッダーでは_ETW_KM_ マクロを使用し、カーネル モードとユーザー モードのどちらをターゲットとしてコンパイルされているかが自動的に判別され、各モードに適した ETW API が呼び出されます。
  • -km と -um の間に残っている違いは、-km で生成される EventWrite[EventName] マクロにはアクティビティ ID パラメーターがあるのに対し、-um で生成される EventWrite[EventName] マクロにはアクティビティ ID パラメーターがないという点だけになりました。
  • EventWrite[EventName] マクロは、既定で EventWriteTransfer (ユーザー モード) または EtwWriteTransfer (カーネル モード) を呼び出すようになりました。以前の EventWrite[EventName] マクロは、既定で EventWrite (ユーザー モード) または EtwWrite (カーネル モード) を呼び出していました。
  • 生成されたヘッダーで、いくつかのカスタマイズ マクロがサポートされるようになりました。たとえば、生成されたマクロから EventWriteTransfer 以外を呼び出す必要がある場合は、MCGEN_EVENTWRITETRANSFER マクロを設定できます。
  • マニフェストで新しい属性がサポートされるようになりました。
    • イベントの "name": ローカライズされていないイベント名。
    • イベントの "attributes": ファイル名、行番号、コンポーネント名、関数名など、イベントに関する追加のキーと値のメタデータ。
    • イベントの "tags": ユーザー定義のセマンティクスを持つ 28 ビット値 (イベントごと)。
    • フィールドの "tags": ユーザー定義のセマンティクスを持つ 28 ビット値 (フィールドごと、"data" または "struct" 要素に適用可能)。
  • マニフェストに "プロバイダー特性" を定義できるようになりました (プロバイダー グループなど)。マニフェストに使用したプロバイダー特性は、EventRegister[ProviderName] マクロによって自動的に登録されます。
  • ローカライズされたメッセージ ファイルに文字列がない場合、MC によってエラーが報告されるようになりました (以前の MC では何も報告されず、破損したメッセージ リソースが生成されていました)。
  • MC で Unicode (utf-8 または utf-16) の出力を生成できるようになりました。そのためには、パラメーターとして -cp utf-8 または -cp utf-16 を使用します。

MSIX のサポート

Windows SDK ツールが更新され、新しい MSIX 形式がサポートされるようになりました。MakeAppx ツールを使ってアプリケーションを MSIX でパッケージ化したり、Windows アプリ認定キットを使って MSIX パッケージを検証したりできるようになりました。

VM の状態のダンプ

VmSavedStateDumpProvider.dll は、Hyper-V 仮想マシン用に保存された状態ファイルからダンプ関連コンテンツを抽出するための一連の API を公開します。付属の VmSavedStateDumpProvider.lib を使って、これらの API にアクセスできるようになりました。

詳しくは、ドキュメントをご覧ください。

Windows デバッガー

Ipv6

WinDbg Preview の製品版をダウンロードできます。KDNET IPv6 のサポートとドキュメントの更新情報については、Debugging Tools for Windows ブログをチェックしてください。

新しいデバッガー データ モデル API

デバッガーの自動化をサポートするオブジェクト指向の新しいデバッガー データ モデル インターフェイスが、dbgmodel.h ヘッダーを通じて利用可能になりました。このデバッガー データ モデルは、新しいデバッガー拡張機能 (JavaScript、NatVis、C++ で記述されたものを含む) でデバッガーからの情報を利用し、デバッガーや他の拡張機能からアクセスできる情報を生成するしくみの中心となる、拡張可能なオブジェクト モデルです。データ モデル API に書き込まれるコンストラクトは、デバッガーの dx 式エバリュエーター内のほか、JavaScript 拡張機能や C++ 拡張機能から参照できます。ドキュメントは、デバッガー データ モデル C++ インターフェイスの概要に関する記事および dbgmodel.h ヘッダーでご覧いただけます。

Windows Performance Toolkit

最新バージョンの Windows Performance Recorder (WPR) では、TraceMergeProperties にカスタム イベントのある WPR プロファイル (WPRP) が意図したとおりに動作するようになりました。カスタム WPRP に TraceMergeProperties XML 要素が含まれていて、その要素にカスタム イベントの空のセットがある場合、カスタム イベントの既定のセット (ImageID、WinSat、その他の既定値) は含められなくなります。

最新の WPR で以前のバージョンと同じ動作を維持するには、TraceMergeProperties 要素の一部として次の属性を追加してください: Base="TraceMerge_Default"

最新バージョンの Windows Performance Analyzer (WPA) では、Windows 8 インストールでの実行時に、特定のコンポーネントで Microsoft .NET Framework 4.5.2 が必要となります。WPA を適切に使用するには、https://www.microsoft.com/en-us/download/details.aspx?id=48130 から最新バージョンの .NET をインストールできます。

サンプル

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

以前の SDK のバージョン

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

API の使用

新しい API を使用するときは、できるだけ多くの種類の Windows 10 デバイスでアプリが正しく動作するように、アダプティブなアプリを記述することを検討してください。アダプティブ アプリでは、デバイスと Windows バージョンでサポートされている場合は新しい機能で利便性が向上しますが、サポートされていない場合は検出されたプラットフォーム バージョンで使用できる機能のみが提供されます。実装について詳しくは、API コントラクトを使った機能の動的な検出に関する記事 (10 by 10) をご覧ください。最新のリリース ノートやツールの問題については、Windows 開発者フォーラムをご覧ください。