Engineering Windows 7

Welcome to our blog dedicated to the engineering of Microsoft Windows 7

Beta to RC Changes – Turning Windows Features On or Off

Beta to RC Changes – Turning Windows Features On or Off

The theme of “choice and control” has been applied in many aspects of how we have designed Windows 7. We’ve certainly received lots of positive feedback about the theme and about the choices we’ve made in the design, and we’ve also received a few suggestions for how we might continue to implement this theme in the future. We’ve received feedback for features that should be even more customizable (such as Explorer or the logon screen) or features that should be added to Windows (such as a PDF format reader, security tools, or disk utilities). And we’ve received feedback that some users might prefer to run Windows without certain features. This post is about a point of choice and control in the Windows 7 control panel called “Windows Features” which is where you can choose to turn various features of Windows on or off. This continues our discussion of changes we have made based on feedback from the Beta as we progress to the Release Candidate. This post is by Jack Mayo who is the group program manager for our Documents and Printing team and also worked on Internet Explorer 8. --Steven

“Turning Windows Features On or Off” has a long history in Windows, going back to the earliest days of the 32-bit code base. We’ve received a lot of suggestions about features that you would like to turn on or off using your own criteria for choice. For Windows 7 we’ve engineered a more significant list of features and worked to balance that list in light of the needs of the broad Windows platform as well. We want to provide choice while also making sure we do not compromise on compatibility by removing APIs provided for developers. We also want to strike the right balance for consumers in providing choice and balancing compatibility with applications and providing a consistent Windows experience.

We know many have specific ideas of what constitutes a “feature” or a “program” in Windows and what constitutes an identifiable “part” of the operating system, and yet we also know different people can have different points of view, often strongly held. Some might take an end-user approach and identify a feature based on a window or start menu shortcut. Some might take an approach based on one perspective of architectural subsystems, such as storage or security. Some might take an approach based on what to some are alternate choices to some similar functionality. All of these are valid in some context, but would not result in consistently identifying “features” considering these varied points of view. As engineers we know that no software system can be decomposed into an arbitrary set of layers or parts and any decomposition is likely to change over time.

We don’t want the discussion about this feature or these choices to digress into a philosophical discussion about the definition of an operating system, which is ultimately a challenging exercise (judging by the revision history on the community page), but we do want to improve a feature centered on helping to meet the feedback expressed by some over the summer when this blog started.

In the Release Candidate for Windows 7 we have extended the control panel called “Windows Features” which is available from the standard “Programs and Features” control panel (we often call this ARP, for the original name of Add/Remove Programs). This location is unchanged from Vista and XP, though the wording has been clarified. In Windows 7 if you bring up the Windows Features control panel by clicking on “Turn Windows Features on or off” (or just typing “Windows features” in the start menu) you will see the following in the Release Candidate (by default the hierarchy is not fully expanded, but in this screen shot I’ve expanded some elements for additional information):

Windows Features control panel

For those familiar with the Vista version or the Beta version of this dialog you will notice the list has grown. Let’s talk about what we’ve added and briefly how it works.

If a feature is deselected, it is not available for use.  This means the files (binaries and data) are not loaded by the operating system (for security-conscious customers) and not available to users on the computer. These same files are staged so that the features can easily be added back to the running OS without additional media. This staging is important feedback we have received from customers who definitely do not like to dig up the installation DVD.

For any of the features listed you can change the state to enable it or disable it. The Vista and Windows 7 beta control panel lists a wide range of features. Some are targeted towards Developers working on a client workstation (IIS, MSMQ, etc.), others are utilities for network administrators and enthusiasts (RSM, SNMP, Telnet, etc.), and some are features customers have asked us to make optional (Games, Fax and Scan, Tablet PC components).

In Windows 7 we are expanding the number of features you have control over in this regard, giving customers more control, flexibility and choice in managing the features available in this version of Windows.  In addition to the features that were already available to turn on or off in Windows Vista, we’ve added the following features to the list in Windows 7:

  • Windows Media Player
  • Windows Media Center
  • Windows DVD Maker
  • Internet Explorer 8
  • Windows Search
  • Handwriting Recognition (through the Tablet PC Components option)
  • Windows Gadget Platform
  • Fax and Scan
  • XPS Viewer and Services (including the Virtual Print Driver)

It is worth describing the details of “remove” since this too is a place where there are engineering and customer decisions to be made. We’ve already seen one decision which is to make sure we keep the features staged for future use so that a DVD is not required. A second decision is that we also continue to support the APIs available for features where these APIs are necessary to the functionality of Windows or where there are APIs that are used by developers that can be viewed as independent of the component. As many of you know these are often referred to as “dependencies” and with Windows the dependencies can run both internal to Windows and external for ISVs.

It should be no surprise, but when we develop new features in Windows we tend to use the underlying infrastructure and associated APIs rather than duplicate code which would create extra working set, slow performance, and increase the surface area that needs to be secured, etc. We all know code reuse is a good engineering practice. As a platform, Windows tends to emphasize the creation of APIs for many systems, even when those subsystems are viewed as part of a larger system. When we have APIs that are used, we faced the choice of breaking software that just expected those APIs to be there or to continue to support the API. When we continued to support the API our approach was to remove a feature by making sure that an end-user could not invoke the feature via traditional end-user mechanisms. These are often difficult decisions as we work to balance the expectations of developers, the shared desire to deliver a robust release of Windows 7, and to maintain the goals set out by the feature “Turn Windows Features On or Off”. Because there are so many combinations of dependencies just represented in this list, selecting some options might provide you with some explanation as to the challenges in selecting a combination (for example Windows Media Player and Windows Media Center share a lot of code so turning one off might introduce a pretty complex situation for the average end-user).

Finally, we know some have suggested that this set of choices be a “setup option”. Some operating systems do provide this type of setup experience. As we balanced feedback, the vast majority of feedback we have received was to streamline setup and to reduce the amount of potential complexity in getting a PC running. We chose to focus this feature on the post-setup experience for Windows 7.


Leave a Comment
  • Please add 6 and 6 and type the answer here:
  • Post
  • "We dont want to hide the stuff we dont want.  We dont want to install it in the first place."

    Couldn't agree more. I do not want any of these features installed on my HD. Apps can use the default web browser for displaying pages, so there is no reason to keep even IE8.

    I'll *never* use DVD Maker or MediaCenter, so I don't want this bits on my HD.

    And the talking about dependencies and APIs just shows how poor designed Windows is, there is always E_NOINTERFACE.

    Tried the Win7 Beta1 yesterday, the new "Explorer" is the biggest piece of crap I've seen in my life!

  • @Andre

    New Explorer?

    You Joke?

  • This is definitly a step in the right direction.. The more options I have to customize my installation, the better.. too bad you do this post-setup thought, I'd really like to setup this as I install, and be done with it afterwards instead of having to tweak it post-setup.

  • @Domenico: By "new" I meant the one that came with XP compared with the one that comes with Win7. I know that most changes already came with Vista.

    @steven_sinofsky: Please put the whole Shell to the list so that I can turn it off, I'd rather use my DOS 5.0 command prompt.

    And when we are talking about dependencies, why can't I run my XP explorer.exe on Vista? Because User32 the Shell and IE is a complete mess?

  • How about an install options screen ala Office?

    Run from computer, Run from DVD (Install upon first use), Not Installed.

    Allow us to select, immediately after HD selection, whether we want "Express" or "Custom" installation.  Express would install as it does not, Custom would give us the dialog above with the Office "use it, maybe, or leave it" options.

    Seems like something that would pretty simple to implement, not confuse the majority of users, and would cover a great many of the gripes us "control freaks" have with the install process.

    Please give it some serious thought.  This is one of the easiest, BEST things you could do between Beta/RC to get some seriously "yummy" PR with no impact on performance or usability.

  • personally i think the new Explorer is unique and sensational.

    there is no other OS something more comfortable and complete.

    then everything is reduced to matters of habit and taste

    the Crap  term whether to keep him because you can not speak for all

  • @Steven

    Disk cleanup does deal with some of the mess, but not all of it.

    We get the option to hide it, but not to really remove it. Why can't we have the same flexibilty to choose whether or not we need the disc?  Anyone going this deep into configuration in the first place is almost certainly prepared to make that decision.

    I could have sworn that removing these things like the office disk cache used to be part of disk cleanup, but no longer are.

    My issue here is the inconsistency.  You can configure some things, others are just decided for you based on the user feedback of someone else. And focus certainly should be placed on the most likely scenario, typical user perspective. But options should exist for the rest of us. That's how you really please everyone. Start with a good default, but let us change it.

    So this is a step in the right direction, but it's a half step, and I still just don't really get how this is truely different (for applications like wmp and ie) than just deleting the shortcuts and compressing the files.  Remove should mean remove, not hide.  

  • Who do I have to kill to update beta1 to rc1?

  • @piaqt

    Were is RC1 ? Your dream?

    you talk about 7048 torrent?

    7048 for you is RC1 ?

  • I assume this just removes the UI EXE file, not the underlying DLLs. As you say with dependencies it's hard to know what exactly needs to be removed.

    For example a lot of developers assume IE is installed. I have written a podcasting aggregator that uses Internet Explorer’s MSHTML rendering engine to display the HTML descriptions included inside RSS feeds. In the past I’ve used the Media Player Active X control. Does this mean we will need to check that IE is installed, and will there be a way to call up a screen that installs it for the user, much like Office can install items as they are required?

    Going forward I really think Windows needs to move to a repository based system. One of the things that makes Linux usable these days is the fact that you can easily install stuff, and the package manager works out what dependencies are needed. Some sort of Windows Application Store would be great. I’m sure the EU would moan about it however, but if it was optional and Microsoft didn’t change a lot to be listed in it then I think it would be great.

  • Great that you added more programs in this function, I have really been missing it! ^^,

    But can't you guys redo the functions UI? It's kinda getting old (hasn't been chacnging for many years). It would also be good if you could improove the time it takes to activate/deactivate the functions =)

    Have a nice weekend! ^^



    I totally agree with you!

  • @domenico: Yes, I meant 7048, if that's the latest build. Is there any way to install it as an update, rather than the long upGRADE install?

  • I agree with many others on this blog that it would be good if it were possible to reclaim the disk space used by some of the features that are disabled.

    I have a relatively small disk (80GB) and many times I have found myself needing even a few hundred MB more disk space. If it were possible to make a trade off between having to reinstall features using the DVD and freeing a little more disk space versus easy reinstallation then many times the extra disk space would win.

  • I wish there was a supported way to completely remove/uninstall those features from offline image. It's not so hard, right? Home versions are occupying more than Pro?

    And yeah: thousands of megabytes of fonts! And no way to remove them. They could be nice if i got sum Japanese friend, but now i like my national 1/500 part of Unicode.

    Still, situation is quite improved in Win7!

    If vLite author returns to development, it'll be even better! =)

  • @piaqt

    the 7048 can not be the RC

Page 2 of 9 (133 items) 12345»