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 3 and 5 and type the answer here:
  • Post
  • Microsoft, you have come a long way. Now you only need to add these to the Add/Remove list:

    1. Accessories (similar to Games) - we've had this in some many earlier versions of Windows

    2. BitLocker Drive Encryption components. I'd rather prefer to have them included in lower SKUs yet have the option to remove them

    3. Windows Defender (this is super-critical). I don't need Windows Defender.

    4. P2P Networking Components like XP allowed

    5. Does "Tablet PC Components" include Speech components? I'd prefer to remove anything speech and accessibility related.

    6. Optical Platform

    7. System Tools, the actual Backup utility and PowerShell

  • Windows 2008 allows the user to completely uninstall windows components (get rid of all media APIs, codecs, etc). It even allows you to wipe the Vista-style GUI-beautification.

    Even more, it actually allows you, not to install them at all in the first place.

    Isn't it the same Microsoft that makes Windows 7?

    Why doesn't Microsoft want to allow its users control over their Windows?

    Why is Microsoft trying to fool people by invoking all kind of technical issues and writing endless articles about the difficulties they face?

  • By Windows 2008 I mean Windows Server 2008...

  • rant:Personally i have very little use for these types of features and feel that its sad that Microsoft has to build a tool to cripple valuable functionality/applications(often times superior to other applications of similiar types) just to accomidate the Euro Whiners. /rant

  • Once again, this shows that in many ways MS just does not 'get it'.

    Its been said many time on this blog already. There's a right way to do this, and MS aren't doing it.

    1. Include options during the setup. Yes, you've got to do this.

    2. You've got a right mishmash of 'features' here, and they need to be split into (a) End User things and (b) Developer/Infrastructure things. Media player goes into bucket (a) and TFTP or .Net framework into bucket (b).

    3. You rely on having an Internet connection to do things like validation of licenses and download updates, especially service packs, but you still find the need to have other code 'staged'. How dumb are you?????

    4. There are at least 3 'statuses' for code. (i) loaded and active (available) (ii) staged locally (iii) not installed. Office has this distinction. And it works perfectly well with 'install on first use'. Windows should work the same way.

    5. That UI is about as old as Windows itself, its ugly, and doesn't fit the purpose for which its being used, it gives no information, it doesn't display dependencies etc. etc. etc. etc.

    Get back to us all when you've fixed this.... its half a job as usual.

  • "I tried turning off Media Center and Media Player. It asked me for a reboot. Then I turned them on again without rebooting. It again turned them on and then asked me for a reboot. Now if I visit ARP again without rebooting, it doesn't show them as Turned on. Is this a "bug or feature by design"?" --Anonymous

    This may be unrelated to the topic but after reading this post I was wondering. Why on earth did you guys make it so that for practically every update/change - the computer needs to be restarted?

    Okay its not much of an issue with home users, but I have a server running Windows Server 2003 - and wow, honestly every single Windows Update requires a reboot of the server, making it highly inefficient for good up times, and you can't just ignore a security update on Windows!

    Why not make it so that, like in Linux/Unix we can do updates that DO NOT require non-stop system reboots? Heck, if not for home users (would still love that though) at least, AT LEAST for your server releases?

  • I'm all for making windows smaller, though this can be done as much through better and more efficient coding than anything else. I don't think many critics here understand the ramifications of removing features entirely or even what that means. As has been pointed out, many developers depend on the IE rendering engine being available (I've even used the DVD burner component programatically.) But let's say you remove WMP entirely; does this include the CODECs?

  • I am so definitely agree with:

    PLEASE stop using capitals where it's not needed!


    re: Beta to RC Changes – Turning Windows Features On or Off

    Just from looking at the list, please can you make it consistent for the poor users.

    When you use an acronym it would be best to always spell it out and put the acronym itself in brackets.

    So that would be:

    File Transfer Protocol (FTP) server

    Services for Network File System (NFS)

    Trivial File Transfer Protocol (TFTP) client

    Also, can you not capitalise words that don't need them like

    Internet games

    More games

    Web management tools

    and so on.

  • "I don't think many critics here understand the ramifications of removing features entirely or even what that means. As has been pointed out, many developers depend on the IE rendering engine being available"

    Sure I do, one of my own apps depends on IE. If the user chooses not to install IE my app won't run, where is the problem. Windows could also figure out the dependency of an uninstalled feature (either reference or LoadLibrary) and then instead of a "DLL missing" dialog could prompt with a dialog asking whether the missing feature should be installed. You can even hook the LoadLibrary call and block the calling app until the feature is installed.

    The problem is that Windows is not designed by engineers but by bureaucrats. Why does Microsoft always have to choose the worst option?

    But the good thing is that we, the users, have the option to use Win7 or Linux/MacOS and run WinXP in a virtual machine.

  • All I want to see as far as customizing Windows 7 goes is:

    The ability to disable the hideous breadcrumb folder navigation system (which is bad from a UI design standpoint for a lot of reasons) and use the old up-arrow button and backspace for moving up a directory again.

    I've been using Vista since it came out, and it STILL pisses me off every time I need to navigate up a level. There's no way to disable it, either.

  • "The ability to disable the hideous breadcrumb folder navigation system (which is bad from a UI design standpoint for a lot of reasons) and use the old up-arrow button and backspace for moving up a directory again.

    I've been using Vista since it came out, and it STILL pisses me off every time I need to navigate up a level. There's no way to disable it, either."

    Totally agree, I want my old Explorer back.

    Why can't I run my XP explorer.exe on Vista/Win7? Why does a File Manager has so many dependencies? Even the old Win 3.1 fileman.exe runs on never Windows versions.

  • Where people are asking to remove features/components to save disk space rather than simply to turn them off, I could see a control panel that gave you the option (turn this off so you can turn it on later without needing to use the DVD/turn this off and delete it so that you must have the DVD to turn it on again). But there are probably a limited number of features that could be turned off without impact (maybe an app uses something from Paint but not many apps rely on Spider). Would it feel confusing to have the turn off/delete option if delete wasn't available for every feature/component?

  • I don't get it. PC's have so much disk space nowadays, how can you complain about it..

  • I would love to turn speech off and uninstall the language pack as well

  • You guys should add Windows Defender to that list too

Page 6 of 9 (133 items) «45678»