Introduction

備忘録。

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\shared\sdkddkver.h を見ればわかる話だが、具体的なバージョン (例:10.0.10240.0) は記載されていない。

UWP のアプリを CMake から作成する際、 CMAKE_SYSTEM_VERSION で Windows SDK のバージョンを指定するが、その際、どのような値を指定すればよいか不明だったため調べたメモ。

Answer

調べた限りこのような感じ。
バージョンについてはいまいち自信がない。

プリプロセッサ バージョン コードネーム
NTDDI_WIN7 0x06010000 Windows 7
NTDDI_WIN8 0x06020000 Windows 8
NTDDI_WINBLUE 0x06030000 Windows 8.1
NTDDI_WINTHRESHOLD 0x0A000000 10.0.10240.0 Threshold 1
NTDDI_WIN10 0x0A000000 10.0.10240.0 Threshold 1
NTDDI_WIN10_TH2 0x0A000001 10.0.10586.0 Threshold 2
NTDDI_WIN10_RS1 0x0A000002 10.0.14393.0 Redstone 1
NTDDI_WIN10_RS2 0x0A000003 10.0.15063.0 Redstone 2
NTDDI_WIN10_RS3 0x0A000004 10.0.16299.0 Redstone 3
NTDDI_WIN10_RS4 0x0A000005 10.0.17134.0 Redstone 4
NTDDI_WIN10_RS5 0x0A000006 10.0.17763.0 Redstone 5
NTDDI_WIN10_19H1 0x0A000007 10.0.18362.0 Titanium
NTDDI_WIN10_VB 0x0A000008 10.0.19041.0 Vibranium
NTDDI_WIN10_MN 0x0A000009 10.0.19042.0 Manganese
NTDDI_WIN10_FE 0x0A00000A 10.0.19043.0 Ferrum
NTDDI_WIN10_CO 0x0A00000B 10.0.21277-22000.0 Cobalt
NTDDI_WIN10_NI 0x0A00000C 10.0.22449-22621.0 Nickel
NTDDI_WIN10_CU 0x0A00000D 10.0.25057-25236.0 Copper
NTDDI_WIN11_ZN 0x0A00000E 10.0.25246-25398.0 Zinc
NTDDI_WIN11_GA 0x0A00000F 10.0.25905-25941.0 Gallium
NTDDI_WIN11_GE 0x0A000010 10.0.25947-26100.0 Germanium

実際に指定できる値は C:\Program Files (x86)\Windows Kits\10\Include 配下のフォルダの名前であり、そのフォルダ内の shared\sdkddkver.h に記述されている NTDDI_VERSION の値がその SDK のバージョンに対応する値である。
例えば、 10.0.26100.0 なら

1
#define NTDDI_VERSION   0x0A000010

となっている。