Holy cow, I wrote a book!
Why can't all the registry key needed by Windows Setup be precomputed
and splorted at one go?
One reason is that Windows Setup can be customized via a so-called
which means that a lot of the work cannot be precalculated.
Some settings also have cascade effects on other settings.
Also, the model for component registration is to make each component
responsible for its own registration,
which can in turn be context-sensitive:
"If the system has configuration x, then do y else z".
Internet Explorer's component registration for example
contains many conditional sections
based on the installation configuration specified in the
unattend file and
the even fancier Winbom.ini file used by
(which is used by computer manufacturers and large corporations).
Making each component responsible for its own registration
reduces entanglements between components
but also means that "global optimizations" such as
precalculating the registry cannot be done.
Engineering is about tradeoffs and this is one of them:
Maintainability vs. speed.
(Of course, there are sections of the registry that are not
context-sensitive, and those to some degree have already been
gathered together for block copying onto the machine during Windows Setup.
Look at the HIVExxx.INF files on your Windows XP CD.)
That said, it appears that
Longhorn setup is moving towards the "disk image" model.
I wish them luck.