Installment Three: Wimgapi.dll
The Wimgapi.dll is the library which does all the work for Windows imaging. It exposes a set of public APIs which can be used to create WIM files, add images to the WIM file, view the images in the WIM file and, of course, restore images from the WIM file. Ximage is actually just a command line interface to Wimgapi.dll. It is the dll that does all of the imaging work. Because the API set is public, you could write your own client to Wimgapi.dll and create a custom imaging tool if you were so inclined. Perhaps the most important client to Wimgapi, however, is Longhorn setup. Recall from installment two that Longhorn will be distributed in the form of WIM files. When you run Longhorn setup, setup is using the Wimgapi APIs to restore an image from the WIM file on your Longhorn CD.
By now it should be obvious why that directory is called “images.” In Longhorn there is no difference between images that you’ve created using the Longhorn imaging tools and the images which are on the Longhorn CD. They’re both created via clients of Wimgapi and both are in the WIM format.
There is one last thing to add before we wrap this up. As you might have guessed from the name, Wimfltr.sys is a filter driver for WIM files. This filter driver allows you to mount the images within a WIM file as though they were a local drive on your computer. Wimfltr.sys allows you to mount the image in read-only mode or read-write. This gives you a lot of flexibility with your images. In the past if you wanted to do something simple with an image, like swap out a .sys file, this is the process you had to go through. First you restore the image, then you replace the file, then you re-image the system. With the filter driver you simply mount the image, replace the file and you’re done in a matter of minutes.