Visual Studio 2010 runs faster when the Windows Automation API 3.0 is installed


If you’re running Visual Studio 2010 on XP or Vista you may benefit from installing this upgrade: http://support.microsoft.com/kb/981741

Applications that use Windows Automation APIs can significantly decrease Microsoft Visual Studio IntelliSense performance if Windows Automation API 3.0 is not installed. For example, the Windows pen and touch services can significantly decrease Visual Studio IntelliSense performance if Windows Automation API 3.0 is not installed. This article describes how to install the Windows Automation API 3.0 update. This update is available as a stand-alone download for 32-bit editions of Windows XP and for Windows Server 2003. This update is not available for 64-bit editions of Windows XP. The Windows Automation API is a component of the platform update for Windows Vista and of the platform update for Windows Server 2008.

Note that if you’re running Windows XP SP2 you’ll be told the patch isn’t applicable, that’s because you need to upgrade to XP SP3 first.  If you’re running Vista or Windows Server 2008 you may already have the upgrade, since it’s part of the automatic updates.  If not you can download the upgrade at the link above.  Windows 7 and Windows Server 2008 R2 ships with with Windows Automation API 3.0, so no upgrade is required.

The problem is that earlier versions of the Windows Automation API try to read the entire contents of list boxes that we post to the screen, which blocks us from virualizing them.  This is particularly a problem with intellisense as the number of items in an intellisense list is HUGE and it pops up on every character you type.

The API is typically activated when using accessibility devices (such as screen readers), pen / tablet computers, or touch devices, but some software activates it anyway (including iPhone synchronization).  Once activated it affects the entire system.

 

 

Comments (15)

  1. Blanche says:

    It's a good news.I would like to have a try.

  2. Nathan Alden says:

    Visual Studio 2010 continually prompts me through a system tray bubble that I should go download and install this update. However, the update doesn't install on my OS, with a message of "The update does not apply to your system." If I already somehow have the update, why does Visual Studio 2010 continually prompt me to install it? This is very annoying.

    And yes, I have verified several times I am downloading the correct EXE from Microsoft's site.

  3. Nathan Alden says:

    I resolved the issue. Apparently this update needs Windows Server 2008 SP2 installed. I only had SP1 installed. The download page does not make this clear.

  4. Decoder says:

    I have the same problem like Nathan is facing. When I try to install the update the installer says "The update does not apply to your system" but it continually pops up the message for updating. What is the solution?

  5. David Berg says:

    Decoder,

    This is usually due to not having the latest operating system service patch in place.  For example, you'll see this problem if you're running XP SP2, Vista SP1, or Windows Server 2008 SP1.  The message pops up because it's detecting the problem, but the patch won't install because it requires you update your OS first (it's too bad that it says "Doesn't apply" instead of saying "You must update your OS before installing this path"… ).

    If that's not the problem, then please let me know which OS version you're running.  If you like you can e-mail a copy of your DXDIAG output to DevPerf@Microsoft.com, that has the OS details.

    Regards,

    David

  6. John Nygaard says:

    Yes I too suffer from the notorious bubble.  I'm running XP Pro SP2, am not allowed to update OS,  What's a programmer to do?

  7. David Berg says:

    John,

    You don't need to upgrade to Vista or Win 7, just upgrade to XP SP3.  Aren't you allowed to install the latest XP service pack?  (If not, why not?)

    Regards,

    David

  8. Titus says:

    I work on a 64bit Visat Ultimate system with all updates installed and tried to install the API update which fails. Is there a specific version for my system? Because I too get the prompt to improve visual studio performance…

  9. David Berg says:

    Titus,

    Check and make sure you have Vista SP2 installed (just getting updates won't necessarily do it, you may have to explicitly download and install it): support.microsoft.com/…/935791 for instructions, explanation, and download links.  

    Also, make sure you're downloading the 64 bit version of the update: http://www.microsoft.com/…/details.aspx.

    Regards,

    David

  10. Annoyed says:

    I don't give a crap about this API, Visual Studio is only temporarily on the machine, and the machine is not on the Internet.  How do I make this stupid dialog stop showing up?

  11. David Berg says:

    Note that we only display the balloon if we actually detect that the problem exists on the machine.

    The KB linked above has these instructions for working around this: Customers who cannot install the update can set the following registry key to prevent the notification from being displayed:

    [HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio10.0General] "UIAOverride"=dword:00000001

    Does that help?  

  12. Bill N. says:

    What is the downside of installing this API?  Does it add any services or executables?  I am not using any accessibility devices.  Are you talking about applications that I am writing in VS, or any application on the OS that uses accessibility devices?  And why would VS Intellisense care about external processes?  Does it actually enumerate processes outside of the VS environment?  If so, why?

  13. David Berg says:

    Bill N,

    This is an update to an existing service you already have on your system.  It's not just used by accessibility devices, it's also used by touch devices (including externally connected ones, like iPods – if you have an iPod and synch it, you have this issue) and test automation software.  

    VS Intellisense doesn't care about external processes… except when they start calling our code, which is exactly what happens here.  Normally, Intellisense virtualizes the list of choices (as it can be quite long), but the older version of the Automation API doesn't respect virtualized lists, and asks the Intellisense listbox to provide the FULL list of choices (even though it may not need it, it does it speculatively), and Intellisense has to comply (because we don't know if it's needed or not).  The fix, makes it so the API doesn't ask for information it doesn't need.  This is an issue with all virtualized lists, not just Intellisense.

  14. Joel_MMCC says:

    Can the Windows Server 2003 x64 version be used with Windows XP x64 SP3? As some of you may know, Windows Server 2003 x64 is the same OS under the hood, bit-for-bit, as Windows XP x64 (NOT true of the x86 versions: Windows XP x86 is Windows 5.0, while Windows Server 2003 x86, Windows Server 2003 x64, AND Windows XP x64, are all Windows 5.1!). They even use the same Service Packs! All other hotfixes and other add-ons that had separate x86 and x64 versions for Windows Server 2003 and Windows XP would use the SAME FILE for the x64 versions of Windows XP as for the Windows Server 2003 x64.

    So, since this upgrade IS supported for Windows Server 2003 x64, why is it NOT supported for Windows XP x64, given that they are the SAME IDENTICAL OPERATING SYSTEM, differing only in configuration settings and add-ons!?

  15. Joel_MMCC says:

    Ooops, slight correction: Windows XP x86 is Windows 5.1, and Windows XP x64, Windows 2003 Server x86, and Windows 2003 Server x64, are all Windows 5.2 (not 5.0 and 5.1, respectively, as I typed before).