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.