Windows Development Kit 6001 RTM
I have started this blog immediately after we finished all the reviews for
Advanced Windows Debugging (The Addison-Wesley Microsoft Technology Series)
with the goal to supplement and correct, when necessary, the book content. With all the available hours, previously spent on the book project, I never thought that it will be hard to find time for blogging. However, I found a lot of tasks postponed since some time, waiting for completion. Now I should find more time for contributing to this blog.
What has been changed since the book has been completed?
In the last few days, Microsoft announced the release of
Windows Server 2008 (formerly known as Longhorn) and the client version, Windows Vista SP1. The Microsoft Connect team promptly sent a notification mail to all Windows Development Kit (WDK) Beta users telling them that the WDK RTM version is ready for downloading. Because our samples designed to be compiled using WDK and a new version can affects many readers, it is better to evaluate its impact ourselves.
WDK is considered by many as one of the Microsoft best keep secrets, simply because it offers a simple, yet robust platform for creating, building and verification application targeted to multiple platforms. Even better, the footprint is fairly small by today's standards (less then 1.6 GB installed), the dependences of the guest operating system are minimal. The WDK is self contained, all compilers, libraries and tools are available for all target platforms. It even comes with ATL and MFC libraries. If you need to write a simple application that is happy with the OS installed CRT (msvcrt.dll), WDK is a very good option.
WDK's version is set to 6001.18000 that should also represent the build version of the Windows Server 2008 and the corresponding Windows Vista SP1.
C:\>set base
BASEDIR=C:\WinDDK\6001.18000 I just downloaded it and all the samples build without a surprise. As expected, the whole build process worked flawless and the samples are failing as designed.
What is new in the WDK 6001?
As with the previous version this one is available only as an ISO file. This version seems smaller than other versions and fit well in a CD image (the web site recommend burning it on a DVD). If you are looking for a free CD/DVD burner search the web for cdburn.exe or dvdburn.exe. Both are available from Microsoft in the Windows Resource Kit Tools.
The WDK 6001 contains many driver samples using both User Mode Driver Framework and Kernel Mode Driver Framework. There are new tools as well are extension to the existing tools (static verifier, prefast, etc.).
Perhaps the most important is the Microsoft
hypervisor reference which is available as a role in Windows Server 2008. For people not familiar with the hypervisor, it can be described as a thin layer of software that runs above the physical hardware. It allows multiple operating systems to run "simultaneously" on the same physical computer and maintains the isolation between them. Each such virtual computer is called a partition.
The documentation contains a node describing the hypervisor implementations and the APIs available for creating hypervisor aware drivers and applications. The node is located strategically hidden under Device and Driver Technology|System|Hypervisor.
Because the debugger is so close to the hardware layer, the introduction of another layer between debuggers and the physical hardware layer brings some changes to the debugging process. In the future post I will analyze the impact that the hypervisor has to the techniques described in the book.