Recent from talks
Nothing was collected or created yet.
Microsoft Windows SDK
View on Wikipedia| Microsoft Windows SDK | |
|---|---|
| Developer | Microsoft |
| Stable release | 10.0.26100.1742
/ September 26, 2024 |
| Operating system | Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8, Windows 10, Windows 11 |
| Type | Application programming interface (API) |
| Website | developer |
Microsoft Windows SDK, and its predecessors Platform SDK, and .NET Framework SDK, are software development kits (SDKs) from Microsoft that contain documentation, header files, libraries, samples and tools required to develop applications for Microsoft Windows and .NET Framework.[1] These libraries are also distributed as Windows System Files.
The Platform SDK specializes in developing applications for Windows 2000, XP and Windows Server 2003. .NET Framework SDK is dedicated to developing applications for .NET Framework 1.1 and .NET Framework 2.0. Windows SDK is the successor of the two and supports developing applications for Windows XP and later, as well as .NET Framework 3.0 and later.[2]
Features
[edit]Platform SDK is the successor of the original Microsoft Windows SDK for Windows 3.1x and Microsoft Win32 SDK for Windows 9x. It was released in 1999 and is the oldest SDK. Platform SDK contains compilers, tools, documentations, header files, libraries and samples needed for software development on IA-32, x64 and IA-64 CPU architectures. .NET Framework SDK however, came to being with .NET Framework. Starting with Windows Vista, the Platform SDK, .NET Framework SDK, Tablet PC SDK and Windows Media SDK are replaced by a new unified kit called Windows SDK. However, the .NET Framework 1.1 SDK is not included since the .NET Framework 1.1 does not ship with Windows Vista. (Windows Media Center SDK for Windows Vista ships separately.) DirectX SDK was merged into Windows SDK with the release of Windows 8.[3]
Windows SDK allows the user to specify the components to be installed and where to install them. It integrates with Visual Studio, so that multiple copies of the components that both have are not installed; however, there are compatibility caveats if either of the two is not from the same era.[4][5] Information shown can be filtered by content, such as showing only new Windows Vista content, only .NET Framework content, or showing content for a specific language or technology.
Windows SDKs are available for free; they were once available on Microsoft Download Center but were moved to MSDN in 2012.
A developer might want to use an older SDK for a particular reason. For example, the Windows Server 2003 Platform SDK released in February 2003 was the last SDK to provide full support of Visual Studio 6.0. Some older PSDK versions can still be downloaded from the Microsoft Download center; others can be ordered on CD/DVD.[6]
| Name | Version number | Build number | Release date | Download | Notes |
|---|---|---|---|---|---|
| Microsoft Windows Software Development Kit | 3.1 | ? | 1992 | [1] | |
| Microsoft Windows Software Development Kit | 3.11 | ? | ? | ? | |
| Microsoft Win32 Software Development Kit | 3.1 | ? | ? | [2] | |
| Microsoft Win32 Software Development Kit | 3.5 | 3.50.612.1 | 1994-04 | [3] | |
| Microsoft Win32 Software Development Kit | 3.51 | ? | 1995-06 | [4] | |
| Microsoft Win32 Software Development Kit | 4.0 | 4.0.1381.1 | 1996-11 | [5] | |
| Microsoft Win32 Software Development Kit | v5.0 | 5.0.1636.1 | 1998-06 | ? | Included in Visual Studio 6 |
| Microsoft Platform SDK April 1999 | ? | ? | 1999-04 | [6] | MSDN subscription CD-ROM disc.
Last Platform SDK to officially install on Windows 95 |
| Microsoft Platform SDK September 1999 | ? | 5.0.2128.8 | 1999-09 | [7], [8] | MSDN subscription CD-ROM disc.
Also known as Microsoft Platform SDK for Windows 2000 RC2. Includes Alpha to AXP64 cross toolset. Last Platform SDK to fully support Visual C++ 5.0 |
| Microsoft Platform SDK January 2000 | ? | ? | 2000-01 | ? | MSDN subscription CD-ROM disc. |
| Microsoft Platform SDK April 2000 | ? | 5.0.2195.32 | 2000-04 | [9] | MSDN subscription CD-ROM disc. |
| Microsoft Platform SDK November 2000 | ? | 5.0.2296.5 | 2000-11 | [10] | MSDN subscription CD-ROM disc.
Also known as Microsoft Platform SDK for Whistler Beta 1. Includes preliminary tools for Itanium. |
| Microsoft Platform SDK February 2001 | ? | ? | 2001-02 | ? | |
| Microsoft Platform SDK June 2001 | v5.1 | 5.1.2505.0 | 2001-06 | [11] | MSDN subscription CD-ROM disc.
Last Platform SDK to officially develop for Windows 95. (Does not officially install on Windows 95) |
| Microsoft Platform SDK August 2001 | v5.1 | 5.1.2601.0 | 2001-08 | [12], [13] | MSDN subscription CD-ROM disc.
Last Platform SDK to unofficially develop for Windows 95. (Does not officially install on Windows 95) |
| Microsoft Platform SDK November 2001 | v5.2 | 5.2.3590.2 | 2001-11 | [14] | |
| Microsoft Platform SDK May 2002 | v5.2 | 5.2.3639.1 | 2002-05 | [15] | |
| Microsoft Platform SDK July 2002 | v5.2 | 5.2.3663.0 | 2002-07 | [16] | |
| Microsoft Platform SDK August 2002 | v5.2 | 5.2.3672.1 | 2002-08 | [17] | |
| Microsoft Platform SDK November 2002 | v5.2 | 5.2.3718.1 | 2002-11 | [18] | |
| Microsoft Platform SDK February 2003 | v5.2 | 5.2.3790.0 | 2003-02 | [19] | Last version with VC6 support[8] and latest version with Windows 95 and Windows 98 support. |
| .NET Framework SDK Version 1.1 | ? | 1.1.4322.573 | 2003-03-29 | [20] | Included in Visual Studio 2003. Does not include the Platform SDK. |
| Microsoft Platform SDK for Windows XP SP2 | ? | 5.1.2600.2180 | 2004-08 | [21] | Introduced strsafe.h |
| Windows Server 2003 SP1 Platform SDK | v5.2 | 5.2.3790.1830.15 | 2005-05-02 | [22] | |
| Windows Server 2003 R2 Platform SDK | v5.2 | 5.2.3790.2075.51 | 2006-03-14 | [23] | Last Platform SDK to develop for Windows 2000.[9] Also suggested by MS to work with VS6 with no guarantee as it has not been tested with specific requirements.[10] |
| .NET Framework 2.0 Software Development Kit | ? | 2.0.50727.42 | 2006-11-29 | [24] | Included in Visual Studio 2005 Professional. Does not include the Platform SDK. |
| Microsoft Windows Software Development Kit for Windows Vista and .NET Framework 3.0 Runtime Components | v6.0 | 6.0.6000.16384 | 2006-10-30 | [25] | The C++ compilers in this SDK release support the /analyze key. |
| Microsoft Windows Software Development Kit Update for Windows Vista | v6.1 | 6.1.6000.16384.10 | 2007-03-22 | [26] | First unified .NET and Platform SDK. Does not support Visual Studio .NET 2003 and Microsoft Visual C++ Toolkit 2003 |
| Included in Visual Studio 2008[11] | v6.0a | 6.1.6723.1 | 2007-11-19 | [27] | |
| Windows SDK for Windows Server 2008 and .NET Framework 3.5 | v6.1 | 6.0.6001.18000.367 | 2008-02-05 | [28] | .NET Framework 3.5 |
| Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 | v7.0 | 6.1.7600.16385 | 2009-07-24 | [29], [30] | |
| Included in Visual Studio 2010 | v7.0a | 6.1.7600.16385 | 2010-04-12 | [31] | .NET Framework 4. Works only with Visual Studio 2010 and not Visual Studio 2010 Express. This is also the last version to include offline documentation.[12] |
| Microsoft Windows SDK for Windows 7 and .NET Framework 4 | v7.1 | 7.1.7600.0.30514 | 2010-05-19[13][14] | [32], [33] | It is the latest version that officially supports Windows XP target. .NET Framework 4 needed. Higher sub-version from .NET Framework is not recognised by installation. Building the samples with nmake.exe is not supported, most of the NMAKE macros are removed. |
| Included in Visual Studio 2012 Update 1 (or later) | v7.1A | 7.1.51106 | ? | ? | Introduces the "v110_xp" platform toolset |
| Microsoft Windows SDK for Windows 8 and .NET Framework 4.5 | v8.0 | 6.2.9200.16384 | 2012-11-15[15] | [34] | .NET Framework 4.5, Windows Store apps and Integrated DirectX SDK |
| Included in Visual Studio 2012 | v8.0A | 8.0.50727 | ? | ? | |
| Windows Software Development Kit (SDK) for Windows 8.1 | v8.1 | 8.100.25984.0 | 2013-10-17 | [35] | Windows 8.1, .NET Framework 4.5.1, Windows Store apps and Integrated DirectX SDK |
| Included in Visual Studio 2013 | v8.1A | 8.1.51636 | ? | ? | Includes the "v120_xp" platform toolset |
| Windows Standalone SDK for Windows 10 | v10 | 10.0.10240.0 | 2015-07-29 | [36] | Also included in Visual Studio 2015[16] |
| Windows Standalone SDK for Windows 10, Version 1511[17] | v10 | 10.0.10586.212 | 2015-11-30 | [37] | Also included in Visual Studio 2015 Update 1 & 2[18] |
| Windows Standalone SDK for Windows 10, Version 1607 | v10 | 10.0.14393.795 | 2016-08-02 | [38] | Also included in Visual Studio 2015 Update 3 |
| Windows Standalone SDK for Windows 10 Creators Update, Version 1703 | v10 | 10.0.15063.0 | 2017-04-05 | [39] | Included in Visual Studio 2017 ver.15.1 |
| Windows 10 SDK for Fall Creators Update, version 1709 | v10 | 10.0.16299.15 | 2017-10-10 | [40] | Included in Visual Studio 2017 ver.15.4 |
| Windows 10 SDK for April 2018 Update, version 1803 | v10 | 10.0.17134.0 | 2018-05-08 | [41] | Included in Visual Studio 2017 ver.15.7 |
| Windows 10 SDK for October 2018 Update, version 1809 | v10 | 10.0.17763.0 | 2018-10-02 | [42] | Included in Visual Studio 2017 ver.15.8 |
| Windows 10 SDK for Windows 10, version 1903 | v10 | 10.0.18362.0 | 2019-05-21 | [43] | Included in Visual Studio 2019 |
| Windows 10 SDK for Windows 10, version 2004 | v10 | 10.0.19041.0 | 2020-05-12 | [44] | |
| Windows 10 SDK for Windows 10, version 2004 | v10 | 10.0.19041.685 | 2020-12-16 | [45] | Servicing update |
| Windows 10 SDK for Windows 10, version 21H1 | v10 | 10.0.20348.0 | 2021-05-25 | [46] | |
| Windows 10 SDK for Windows 11 | v10 | 10.0.22000.194 | 2021-10-04 | [47] | |
| Windows SDK for Windows 11 | v10 | 10.0.22621.755 | 2022-10-25 | [48] | Released as part of Windows 11, version 22H2. Includes servicing update 10.0.22000.755 on October 25, 2022,
Includes ARM64 support for the Visual Studio 17.4 release |
| Windows SDK for Windows 11 | v10 | 10.0.22621.1778 | 2023-05-24 | [49] | Released as part of Windows 11, version 22H2 Build 10.0.22621.1778. |
| Windows SDK for Windows 11 | v10 | 10.0.26100.0 | 2024-05-22 | [50] | Initial release of the 10.0.26100 series, to correspond with the Windows 11, version 24H2 preview. |
| Version | Removed feature |
|---|---|
| Windows SDK for Windows 7 and .NET Framework 3.5 SP1[19] | |
| Windows SDK for Windows 7 and .NET Framework 4[20] |
|
| Windows Software Development Kit (SDK) for Windows 8[21] |
|
| Windows Software Development Kit (SDK) for Windows 8.1[22] | Nothing |
| Windows Software Development Kit (SDK) for Windows 10 | Nothing[23] |
Documentation
[edit]The Windows SDK documentation includes manuals documenting:
- Desktop app development with Windows API and managed code
- Metro-style app development using Windows Runtime and Universal Windows Platform
- Web app development using ASP.NET, HTML, CSS and JavaScript
- Language-related topics for C++, C#, Visual Basic.NET, F#, JavaScript, CSS and HTML, such as syntax and conventions (Windows PowerShell language is not covered.)
See also
[edit]References
[edit]- ^ "Windows SDK: Download Windows Server 2008 SDK and more". Microsoft Developer Network. Microsoft Corporation. Retrieved 6 December 2009.
- ^ "Windows SDK Frequently Asked Questions (FAQ)". Microsoft Developer Network. Microsoft Corporation. Archived from the original on 26 September 2009. Retrieved 6 December 2009.
- ^ "Where is the DirectX SDK?". Windows Dev Center. Microsoft. Retrieved 20 February 2016.
- ^ "Windows SDK Fails to Install with Return Code 5100". Support. Microsoft. 5 June 2012.
- ^ Stewart, Heath (1 April 2011). "Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1". Setup & Install by Heath Stewart. Microsoft.
- ^ Microsoft Software Development Kits CD Order Archived 2011-10-08 at the Wayback Machine
- ^ Windows and Windows Phone SDK archive
- ^ Windows® Server 2003 SP1 Platform SDK Web Install, Microsoft Download Center "The last SDK that will work with VC 6.0 is the February 2003 Edition, you can order a CD on the fulfillment site."
- ^ "Windows Server 2003 R2 Platform SDK Web Install". www.microsoft.com. Archived from the original on 2006-04-22. Retrieved 2006-04-22.
- ^ "Platform SDK February 2003 installation + IE8". Social.msdn.microsoft.com. Archived from the original on 2019-10-18. Retrieved 2017-08-08.
- ^ Microsoft Windows SDK Blog: New samples in Win 7 SDK: Direct2D and DirectWrite
- ^ "Windows SDK 7.1 release notes". Retrieved 23 July 2014.
- ^ Microsoft Windows SDK for Windows 7 and .NET Framework 4 iso image
- ^ Microsoft Windows SDK for Windows 7 and .NET Framework 4 web installer
- ^ Windows SDK for Windows 8 – Windows Dev Center. Msdn.microsoft.com. Retrieved on 2014-02-16.
- ^ Building Apps for Windows 10 with Visual Studio 2015
- ^ Windows 10 SDK Release Notes
- ^ Visual Studio 2015 Update 1 Release Notes
- ^ Release Notes, Windows SDK for Windows 7 and .NET Framework 3.5 SP1
- ^ Release Notes, Microsoft Windows SDK for Windows 7 and .NET Framework 4
- ^ "Windows Software Development Kit (SDK) for Windows 8". Windows Dev Center. Microsoft. Retrieved 20 February 2016.
- ^ "Windows Software Development Kit (SDK) for Windows 8". Windows Dev Center. Microsoft. Retrieved 20 February 2016.
- ^ "Windows Software Development Kit (SDK) for Windows 10". Windows Dev Center. Microsoft. Retrieved 20 February 2016.
External links
[edit]Microsoft Windows SDK
View on GrokipediaHistory
Origins in Early Windows
The Microsoft Windows 3.1 Software Development Kit (SDK) was introduced in April 1992, coinciding with the release of Windows 3.1 on April 6, 1992, to provide developers with essential tools and resources for building 16-bit applications targeting the Win16 API.[7][8] This initial SDK included core header files such as WINDOWS.H, which enforced STRICT type-checking for improved code reliability, along with redistributable dynamic link libraries (DLLs) like COMMDLG.DLL for common dialog boxes and DDEML.DLL for dynamic data exchange.[8] It supported the development of graphical user interface (GUI) elements through sample source code demonstrating controls, menus, and windows, and integrated seamlessly with Microsoft compilers including the C Optimizing Compiler version 6.0 and QuickC for Windows.[8] Key tools in the early SDK facilitated resource management and debugging for 16-bit environments, including the Dialog Editor (DLGEDIT.EXE) for designing user interfaces, the Image Editor (IMAGEDIT.EXE) for handling icons and bitmaps, the Help Compiler (HC31.EXE) for creating application help files, and Dr. Watson (DRWATSON.EXE) for crash analysis.[8] These components emphasized compatibility with Windows 3.0 while introducing enhancements like drag-and-drop functionality, Object Linking and Embedding (OLE) support, and TrueType font integration, enabling developers to create more robust multimedia and networked applications on MS-DOS-based systems.[8] The SDK's documentation, spanning multiple volumes such as the Programmer's Reference and Guide to Programming, provided detailed API references for core functions, underscoring its role in standardizing Windows application development during the early 1990s.[8] The first major update to the SDK arrived in 1993, aligned with the release of Windows for Workgroups 3.11 on August 11, 1993, extending support for peer-to-peer networking features through expanded NetBIOS documentation and WNet functions for file sharing and printer access.[9][10] This iteration maintained the 16-bit focus but added libraries and samples for network redirectors, reflecting the growing emphasis on connectivity in enterprise and small office environments.[9][10] By 1995, the SDK evolved significantly with the introduction of the Win32 SDK alongside Windows 95's retail release on August 24, 1995, marking the shift to 32-bit application support and preemptive multitasking.[11] This version provided comprehensive headers for user interface elements (e.g., windows, controls, and dialogs via USER32.H), the Graphics Device Interface (GDI32.H for drawing and printing), and kernel functions (KERNEL32.H for process management and file I/O), enabling developers to leverage the full 32-bit API subset compatible with both Windows 95 and contemporary NT systems.[11] Samples and tools in this SDK illustrated modern features like long file names and shell extensions, establishing a foundation for scalable, protected-mode applications that outperformed their 16-bit predecessors.[11]Platform SDK Transition
In 1999, Microsoft released the Platform SDK as the successor to the earlier Microsoft Win32 SDK, consolidating fragmented development resources into a unified package that included headers and libraries for core Windows technologies such as Component Object Model (COM), Active Template Library (ATL), and Microsoft Foundation Classes (MFC). This consolidation addressed the growing complexity of Windows application development by providing a single, comprehensive set of tools and documentation, serving as a critical bridge between established Win32 programming models and the forthcoming .NET Framework ecosystem. Building briefly on the limitations of early 16-bit SDKs, which were constrained by DOS compatibility and lacked robust 32-bit support, the Platform SDK fully enabled modern 32-bit application creation for Windows NT-based systems.[12] Key components of the Platform SDK included primary support for the IA-32 architecture, early preparations for x64 (AMD64) development through updated headers and compiler tools, and utilities like the Microsoft Interface Definition Language (MIDL) compiler for generating code from Interface Definition Language (IDL) files in distributed computing scenarios, such as Remote Procedure Calls (RPC). The February 2003 edition marked the final release compatible with Visual C++ 6.0, targeted at Windows Server 2003 development, after which subsequent versions required newer compilers. Additionally, the SDK integrated elements from the Internet Explorer SDK, incorporating APIs and headers for web-related technologies like ActiveX controls and HTML rendering components to facilitate browser extension and web-integrated application development.[13][14][12] The Platform SDK's evolution aligned closely with major Windows releases, notably the Windows 2000 launch in February 2000, where updated editions provided essential APIs for enterprise-scale applications, including those leveraging Active Directory for directory services, authentication, and LDAP-based queries. This alignment empowered developers to build secure, scalable solutions for networked environments, such as domain management and user authentication systems, solidifying the SDK's role up through Windows XP compatibility.[15][16]Modern Unified SDK
The unified Windows SDK was introduced in November 2006 alongside Windows Vista, merging the existing Platform SDK with tools and components from the .NET Framework 3.0 to streamline development for the new operating system.[17] This consolidation aimed to provide a single, comprehensive package for building both native Win32 applications and managed .NET code, reducing fragmentation that had persisted in prior SDK iterations. Subsequent releases progressively dropped support for older platforms like Windows XP, with the Windows SDK 7.1—released on June 15, 2010—serving as the final version compatible with XP and Windows Server 2003.[18] Key evolutions in the SDK reflected Microsoft's shifting focus toward modern app architectures and hardware support. In 2012, the Windows 8 SDK integrated the formerly separate DirectX SDK, incorporating its headers, libraries, and tools directly to simplify graphics and multimedia development without requiring multiple installations.[19] The same release added WinRT headers and metadata, enabling developers to target Metro-style (later Universal Windows Platform) apps with a projection layer for languages like C++ and C#. In 2018, updates to the Windows 10 SDK introduced native support for ARM64 architectures, allowing cross-platform compilation for emerging mobile and edge devices.[20] Further adaptations emphasized agility and integration with ecosystem tools. Starting in 2018, Microsoft shifted to delivering SDK updates more frequently through NuGet packages, such as for C++/WinRT projections, aligning with the monthly cadence of Windows 10 feature updates and enabling easier CI/CD workflows. This approach continued into the Windows 11 era, with version 10.0.26100 released in 2024 to support the 24H2 update, incorporating API enhancements for AI workloads via Windows ML and advanced security features like post-quantum cryptography primitives.[1] This pattern of frequent updates persisted into 2025, with servicing releases of the 10.0.26100 SDK supporting Windows 11 version 25H2, released in October 2025, focusing on improved AI integration and security features.[1][21]Components
Headers and Libraries
The Microsoft Windows SDK provides a comprehensive set of header files and libraries that enable developers to access the Win32 API for native Windows application development. These components form the foundational layer for building desktop and server applications, supporting both 32-bit and 64-bit architectures, with declarations available in Unicode and ANSI versions.[22] The headers define function prototypes, structures, constants, and macros, while the libraries supply the necessary import stubs for dynamic linking to system DLLs. Core headers in the SDK encapsulate key subsystems of the Windows operating system. The[Windows.h](/page/Windows.h) header serves as the primary umbrella file, including fundamental definitions and pulling in other essential headers for base API access across categories such as user interface, system services, and graphics.[23] User32.h declares APIs for user interface elements, including window creation, message handling, and input processing, which are crucial for graphical applications.[23] Kernel32.h provides declarations for core system services, encompassing memory management, file and device I/O, process and thread control, and synchronization primitives.[23] Similarly, Gdi32.h exposes graphics device interface functions for rendering text, lines, shapes, and bitmap operations, supporting legacy 2D graphics in Windows applications.[23]
The SDK's libraries consist of import libraries (.lib files) that facilitate linking to corresponding dynamic-link libraries (DLLs) at build time, enabling runtime resolution of API calls. For user interface functionality, User32.lib links to User32.dll, providing access to windowing and input APIs.[24] System services are linked via Kernel32.lib for Kernel32.dll, while graphics operations use Gdi32.lib for Gdi32.dll.[24] Additional libraries support specialized components, such as Advapi32.lib for advanced security and registry APIs in Advapi32.dll, and Ole32.lib for Component Object Model (COM) interfaces in Ole32.dll, which enable object-oriented programming and inter-process communication.[25] These static import libraries resolve function addresses during loading, ensuring compatibility with the Windows runtime environment.[26]
The Win32 API, as exposed through these headers and libraries, structures over 10,000 functions organized by functional areas like base services, networking, and diagnostics, allowing developers to interact directly with the operating system kernel and subsystems.[23] It supports interoperability with C and C++ languages, where developers include headers to access prototypes and link libraries for resolution. To handle internationalization, the API includes Unicode variants of functions, denoted by a "W" suffix (e.g., MessageBoxW), which operate on wide-character strings (UTF-16) for global text support, while "A" variants use ANSI code pages; generic forms without suffixes adapt based on compile-time macros like UNICODE.[27] Many newer functions are Unicode-only, promoting consistent wide-character usage across applications.[27]
In modern versions of the Windows SDK, particularly for Universal Windows Platform (UWP) development, metadata packages in .winmd files extend the traditional headers and libraries by providing a binary description of Windows Runtime (WinRT) APIs. These files enable language projections, allowing C++ code to consume WinRT types natively via generated headers from tools like cppwinrt.exe, while C# projections facilitate managed interop through assemblies.[28] This metadata-driven approach supports cross-language scenarios in UWP apps, where Win32 extensions can project into managed environments without direct header inclusion.[28]
Tools and Samples
The Microsoft Windows SDK provides a suite of command-line tools essential for compiling, signing, and packaging applications. The Resource Compiler (Rc.exe) processes resource definition scripts (.rc files) to generate binary resource files (.res), incorporating elements like menus, dialogs, icons, and string tables into executables.[29] SignTool.exe enables digital signing of files for authenticity and tamper detection, along with signature verification and timestamping to comply with certificate validity periods.[30] Additional utilities support debugging, performance monitoring, and deployment. Debugger extensions integrate with WinDbg to provide Windows-specific debugging features, such as kernel-mode analysis and API tracing.[31] The Windows Performance Toolkit, part of the Windows Assessment and Deployment Kit (ADK), includes Windows Performance Recorder (WPR) for capturing event traces to profile system and application performance, identifying bottlenecks in CPU usage and I/O operations, and Windows Performance Analyzer (WPA) for viewing the traces.[32] For deployment, tools like MakeAppx.exe facilitate the creation of app packages, including MSIX formats, by bundling application files, manifests, and dependencies into distributable containers.[33] The SDK includes a large collection of over 300 code samples in C++, available through the official Windows classic samples repository, to illustrate practical API usage across domains like Win32 desktop applications, DirectX graphics rendering, and network programming with Winsock.[34][35] These samples emphasize core concepts; for example, a basic Win32 application sample demonstrates window creation and message handling using the CreateWindow API function, typically requiring SDK headers such as <windows.h> for compilation. Such examples promote understanding of API integration without relying on higher-level frameworks, enabling developers to build native Windows applications from foundational code.Versions and Compatibility
Release Timeline
The Microsoft Windows SDK has evolved through a series of major releases aligned with Windows operating system milestones, beginning with version 6.0 for Windows Vista in February 2007. This release introduced updated headers, libraries, and tools optimized for the new Vista APIs, marking a shift toward more integrated development support for graphical user interfaces and multimedia features.[12] Subsequent versions built on this foundation, incorporating enhancements for security, performance, and new platform capabilities, including version 7.1 in 2010 for .NET Framework 4.0 and Windows 7, version 8.0 in 2012 for Windows 8, and version 8.1 in 2013 for Windows 8.1 with improved touch and sensor support. Version 7.0, released in August 2009 for Windows 7 and .NET Framework 3.5 SP1, expanded support for taskbar enhancements and improved compatibility with Visual Studio 2008 and 2010. It emphasized better integration with .NET technologies and included samples for developing applications leveraging Windows 7's Aero interface and multi-touch features. By this point, the SDK had transitioned from the earlier Platform SDK nomenclature to a more unified branding focused on Windows-specific development. Support for legacy platforms like Windows 2000 had already been discontinued in the predecessor Platform SDK releases around 2005.[12] The introduction of version 10.0.10240 in 2015 coincided with the launch of Windows 10, bringing support for the Universal Windows Platform (UWP) to enable cross-device app development. This version adopted a new numbering scheme of 10.0.| Version | Release Date | Key Associations and Milestones |
|---|---|---|
| 6.0 | February 2007 | Windows Vista; foundational APIs for Aero and security features. |
| 7.0 | August 2009 | Windows 7 and .NET 3.5 SP1; taskbar and multi-touch support. |
| 7.1 | November 2010 | Windows 7 and .NET 4.0; last to support Windows XP. |
| 8.0 | September 2012 | Windows 8; initial ARM support and Metro-style apps. |
| 8.1 | October 2013 | Windows 8.1; touch enhancements and sensor APIs. |
| 10.0.10240 | July 2015 | Windows 10 RTM; UWP introduction for universal apps. |
| 10.0.19041 | May 2020 | Windows 10 2004 update; example of build-specific targeting. |
| 10.0.22000 | October 2021 | Windows 11; Snap Layouts and modern UI APIs. |
| 10.0.26100 | May 2024 (initial); updates to November 2025 | Windows 11 24H2 and 25H2; Copilot+ PC AI enhancements and further on-device AI features. |
Platform Targeting
The Microsoft Windows SDK enables developers to target specific Windows operating system versions through preprocessor macros defined in code, primarily_WIN32_WINNT and WINVER, which determine the minimum supported platform and control the availability of APIs in the included headers. These macros are typically set in a file like targetver.h before including sdkddkver.h, ensuring that only features compatible with the targeted version are exposed during compilation. For instance, defining #define _WIN32_WINNT 0x0A00 targets Windows 10 (version 10.0), allowing access to APIs introduced in that release while excluding older, unsupported elements.[38][22]
The SDK supports multiple processor architectures to accommodate diverse hardware, including x86 (32-bit), x64 (64-bit), ARM (32-bit), and ARM64 (64-bit), with comprehensive support for these beginning in the Windows 8 SDK released in 2012. This allows developers to build applications for traditional Intel/AMD processors as well as ARM-based devices, such as those in the Windows on ARM ecosystem, by selecting the appropriate platform configuration in build tools like Visual Studio. Earlier SDK versions provided x86 and x64 support, but ARM and ARM64 integration expanded with Windows 8 to enable native development for mobile and embedded scenarios.[39][40]
Compatibility across Windows versions has evolved, with support for legacy platforms like Windows 2000 discontinued in predecessor SDKs by 2005 and the Windows SDK from version 6.0 targeting Windows Vista and later. Subsequent SDK versions maintain backward compatibility for applications targeting older systems through conditional compilation, but full utilization of recent features requires Windows 10 version 1809 (build 17763) or later as the host environment for development and runtime execution. This ensures access to updated APIs and security enhancements, while apps built with newer SDKs can still run on supported downlevel systems via emulation or shims where applicable.[38][41]
Down-level support for behaviors on older operating systems is facilitated through application manifests, which allow developers to specify compatibility settings without altering core code. For example, DPI awareness levels—such as system-aware or per-monitor aware—can be declared in the manifest using elements like <dpiAwareness>PerMonitor</dpiAwareness>, enabling proper scaling on pre-Windows 10 systems that lack native high-DPI handling. This mechanism helps mitigate visual artifacts and ensures consistent user experiences across versions by instructing the OS to apply specific virtualization or awareness modes.[42][43]
Integration and Usage
Visual Studio Integration
The Windows SDK integrates deeply with Visual Studio, enabling developers to install and utilize SDK components directly through the Visual Studio Installer. The "Desktop development with C++" workload includes the Windows SDK starting with Visual Studio 2015, with the latest version included by default from Visual Studio 2019, providing headers, libraries, and tools essential for building Windows applications without requiring a separate download.[5] This streamlined installation process ensures that the SDK aligns with the IDE's build environment, supporting targets from Windows 7 SP1 onward.[5] Key features of this integration include enhanced IntelliSense support for Windows APIs, which leverages the installed SDK headers to provide accurate code completion, parameter information, and error detection during development of C++ projects.[44] Visual Studio offers built-in project templates for creating Win32 desktop applications and WinUI-based apps, allowing developers to generate boilerplate code that incorporates SDK components like window management APIs or modern UI frameworks right from project creation.[45] Additionally, debugging capabilities are augmented by the SDK, enabling step-through execution into Windows system calls with access to symbol information from the attached SDK headers and libraries, facilitated by tools like the integrated debugger and WinDbg components.[31] For Universal Windows Platform (UWP) development, Visual Studio 2015 and later versions support Extension SDKs, which are specialized references added to projects to expose device-family-specific APIs, such as those for mobile or desktop extensions, without altering the core project structure.[46] Since Visual Studio 2019, modular inclusion of SDK elements has been enabled through NuGet packages like Microsoft.Windows.SDK.Contracts, which allow developers to reference Windows Runtime APIs in .NET Framework or .NET Core projects without installing the full SDK, promoting lighter-weight dependencies and easier version management via the NuGet Package Manager.[47][48] Project configuration in Visual Studio further simplifies SDK management through property pages, where developers can select specific Windows SDK versions per configuration—such as debug or release—directly in the project's General properties, ensuring compatibility with targeted Windows versions and avoiding build errors from mismatched installations.[49] This selection is also accessible via the "Retarget projects" option in the solution explorer, which updates the SDK version across multiple projects efficiently.[5]Standalone Development
The Microsoft Windows SDK supports standalone development independent of the Visual Studio IDE, enabling command-line builds and integration with alternative environments for creating Windows applications. Developers can download the SDK via a standalone installer or ISO from the Microsoft Developer website, with the latest version (10.0.26100 for Windows 11) requiring about 4 GB of available hard disk space upon installation. The installer allows customization of components, such as selecting specific headers, libraries, and tools, to tailor the setup to project needs without including unnecessary elements.[1] To perform builds, the SDK is paired with the free Build Tools for Visual Studio, which supplies the essential compiler (cl.exe) and linker (link.exe) from its bin directory. The build environment is initialized by running batch files like vcvarsall.bat, which set critical variables including PATH (for tool executables), INCLUDE (for header paths), and LIB (for library paths), with options to target architectures such as x86, x64, ARM, or ARM64. This setup facilitates direct compilation of C++ source files using commands likecl.exe /EHsc example.cpp followed by linking with link.exe, supporting the creation of executables, DLLs, and static libraries.[50]
Specific usage often involves batch scripts to automate multi-target builds across platforms, streamlining workflows for complex projects. For enhanced package management, the SDK integrates with CMake through vcpkg, where vcpkg installs dependencies and automatically configures CMake to locate SDK headers and libraries via triplet specifications like x64-windows. This method ensures reproducible builds without manual path adjustments.[51]
Standalone development provides a lighter footprint than full Visual Studio installations, ideal for resource-constrained continuous integration/continuous deployment (CI/CD) pipelines on servers like Windows Server 2016 or later. It also accommodates non-Microsoft compilers, such as GCC via MinGW, for accessing SDK headers and libraries, though compatibility tweaks may be needed for seamless operation.[1]
