Windows SDK Registry Keys


The Windows SDK team has received a number of questions about how we manage our registry, so I wanted to take a minute to describe the way that the Windows SDK writes to the registry.

On installation of a Windows SDK, including Windows SDK components installed with Visual Studio 2008, the following registry keys are written:


    On an X86 computer:

    • HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows

    • HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows

  • In addition to the keys listed above, this key is set when installing on an X64 or IA64 computer:


    • HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows

At the root of each of those folders, the SDK sets the following keys:























Name


Data


CurrentIA64Folder


If Visual Studio 2008 is installed, this key points to the install location of the IA64 Libraries that are installed.


CurrentIA64Version


If Visual Studio 2008 is installed, this key points to the latest version of the IA64 Libraries that are installed.


CurrentInstallFolder


Install location for the most recently installed Windows SDK


CurrentVersion


Version number of the most recently installed Windows SDK


ProductVersion


Version number of the newest version of the Windows SDK installed to disk


Directly below that level, the SDK sets the following SubKeys. The SubKey scheme reflects the corresponding version of the Windows SDK.



















SubKey


Window SDK Version


v6.0


Windows SDK for Windows Vista


v6.0


Windows SDK for Windows Vista Update


v6.0A


Windows SDK Components in Visual Studio 2008


v6.1


Windows SDK for Windows Server 2008


At the root of each of these SubKey folders, we set the following keys:













Name


Data


InstallationFolder


Installation folder for this version of the Windows SDK


ProductVersion


Version ID of this version of the Windows SDK


Below each of those folders, keys are created for each SDK component;  for example, WinSDKIntellisenseRefAssys for our Intellisense component and WinSDKNetFxTools for our .NET Framework tools. In that way we register each SDK component installed to disk. Several other components that ship, such as FxCop and .NET Compact Framework, set their own registry keys independent of the SDK.


The SDK’s ProductVersions have the following naming scheme, as reflected below.



















SubKey


Window SDK ProductVersion


Windows SDK  for Windows Vista


6.0.6000.0


Windows SDK Update for Windows Vista


6.1.6000.16384


Windows SDK Components in Visual Studio 2008


6.0.6001.17011


Windows SDK for Windows Server 2008


6.0.6001.18000


What the ProductVersion ID means:


































Release


OS increment


SDK increment


OS Product build


SDK build


Windows SDK  for Windows Vista


6


0


6000


0


Windows SDK Update for Windows Vista


6


1


6000


16384


Windows SDK Components in Visual Studio 2008


6


0


6001


17011


Windows SDK for Windows Server 2008


6


0


6001


18000


In order to determine the highest version of the SDK you have installed on disk, use the Product build number, followed by the SDK build. For instance, 6001.18000 is higher than 6000.16384.


Note that the naming schemes for future SDKs have not been definitely determined; we would love your feedback on what you think of all of this.


 


The MSDN Windows SDK Developer Center is the place to find resources and links to Windows SDK products, release notes, technical articles, and more.


Comments (8)

  1. A new article on the Windows SDK blog explains how the Windows SDKs, including the Windows SDK components

  2. My latest in a series of the weekly, or more often, summary of interesting links I come across related to Visual Studio. US ISV Developer Evangelism Team has posted a link to 46 tutorials that the ASP.NET team has created for the ASP.NET AJAX Control

  3. consumer4beta@hotmail.com says:

    What was the last SDK version to work with VS.NET 2003?

  4. wsdkblog@microsoft.com says:

    I believe that the last SDKs to work with VS .NET 2003 are the  SDK for .NET Framework 2.0 (x86), Released Nov 2006   (http://www.microsoft.com/downloads/details.aspx?FamilyID=fe6f2099-b7b4-4f47-a244-c96d69c35dec&DisplayLang=en) and the Windows Server 2003 R2 Platform SDK, Released Mar 2006 (http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en)

    Karin Meier

    Windows SDK

  5. makeminea99 says:

    Here, we all find the naming system thses days ever so confusing. I assume that currently, to develop our apps that run mainly on XP and Vista we should use Windows SDK for Windows Server 2008 for the latest and greates samples etc. That just seems wrong to me.

  6. wsdkblog@microsoft.com says:

    I understand that the naming of Windows SDKs is confusing.  Just remember that the name of an SDK relates to the latest operating system that SDK supports.  This way, you’ll know that an SDK supports development for the OS in the SDKN name, plus all Microsoft supported OSes prior to that one.  To help you figure out how long Microsoft will support a product, there’s a great site at Microsoft Lifecycle Support Policy (http://support.microsoft.com/default.aspx?scid=fh;[ln];lifecycle) that explains the support schedule around just about any product, including information around the various support phases.  You don’t have to guess how long a product will be supported.

    Karin Meier

    Windows SDK Team

  7. Sergei G says:

    I have v7.0A and v7.1 installed and for some reason

    HKLMSoftwareMicrosoftMicrosoft SDKsWindowsCurrentInstallFolder

    still points to v6.0A.

    I am sure that I have installed 7.1 only a few weeks ago.

  8. Deven Bhatt says:

    I want to do a project in Win32 S.D.K on Windows Registry Editor..

    Plz suggest some solution..