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.