{"id":35163,"date":"2005-06-29T10:00:11","date_gmt":"2005-06-29T10:00:11","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2005\/06\/29\/why-isnt-windows-setup-just-a-disk-reimage-plus-a-registry-dump\/"},"modified":"2005-06-29T10:00:11","modified_gmt":"2005-06-29T10:00:11","slug":"why-isnt-windows-setup-just-a-disk-reimage-plus-a-registry-dump","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20050629-11\/?p=35163","title":{"rendered":"Why isn&#039;t Windows Setup just a disk reimage plus a registry dump?"},"content":{"rendered":"<p><a href=\"http:\/\/blogs.msdn.com\/oldnewthing\/archive\/2005\/01\/27\/361595.aspx#363056\"> Why can&#8217;t all the registry key needed by Windows Setup be precomputed and splorted at one go?<\/a> One reason is that Windows Setup can be customized via a so-called &#8220;<a href=\"http:\/\/support.microsoft.com\/kb\/155197\">unattend file<\/a>&#8220;, which means that a lot of the work cannot be precalculated. Some settings also have cascade effects on other settings.\n Also, the model for component registration is to make each component <a href=\"http:\/\/msdn.microsoft.com\/library\/en-us\/com\/htm\/cmf_d2l_3cmq.asp\"> responsible for its own registration<\/a>, which can in turn be context-sensitive: &#8220;If the system has configuration x, then do y else z&#8221;. Internet Explorer&#8217;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 <a href=\"http:\/\/www.microsoft.com\/technet\/prodtechnol\/winxppro\/deploy\/introductoin.mspx\"> Sysprep-based deployment<\/a> (which is used by computer manufacturers and large corporations).\n Making each component responsible for its own registration reduces entanglements between components but also means that &#8220;global optimizations&#8221; such as precalculating the registry cannot be done. Engineering is about tradeoffs and this is one of them: Maintainability vs. speed.\n (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 <code>HIVExxx.INF<\/code> files on your Windows&nbsp;XP CD.)<\/p>\n<p> That said, it appears that <a href=\"http:\/\/www.winsupersite.com\/showcase\/longhorn_setup.asp\"> Longhorn setup is moving towards the &#8220;disk image&#8221; model<\/a>. I wish them luck. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why can&#8217;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 &#8220;unattend file&#8220;, which means that a lot of the work cannot be precalculated. Some settings also have cascade effects on other settings. Also, the model for [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-35163","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-other"],"acf":[],"blog_post_summary":"<p>Why can&#8217;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 &#8220;unattend file&#8220;, which means that a lot of the work cannot be precalculated. Some settings also have cascade effects on other settings. Also, the model for [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/35163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=35163"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/35163\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=35163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=35163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=35163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}