Solution to Windows XP Autoplay Problem: Corrupt entries and missing providers

I did not know when exactly it began but annoying corrupt entries had appeared in my Windows XP autoplay dialog boxes, like the one in this picture. When the problem proved persistent and my standard maintenance tools failed to fix it, I decided to go for a manual fix.


Since there was no strong evidence about the source of the problem, all I had was assumptions and all I could do was investigating their validity.

Starting without any clue

Initially, I was under the impression that these corrupt entries are a result of corrupt autoplay data. In another words, I assumed if I see gibberish, that is because Windows finds gibberish, arbitrarily displaying what it finds.

I tried TweakUI and several other tweaking utilities which I knew to be able to modify the autoplay list, but none were useful. So, I set out to do it manually. My first question was: Where are the autoplay data stored? My first guess turned out to be correct: Windows Registry!

Tampering with the Registry can always be dangerous. The changes you make are live and are applied instantly. So, I created a System Restore checkpoint before starting to work into the Registry. (I did not do it as a  mere precaution; I know for a fact that System Restore checkpoints always include a full copy of Windows Registry.)

In the belly of the beast

According to Microsoft, autoplay data were stored in:

The entire key is a maze of branches, each with its own entries. Finding what I wanted took a while. (To make matters worse, I did not know exactly what I wanted.) My first  visit was to a Handler subkey, where Windows keeps a library of “handlers” or “providers”. Each provider defines one of the autoplay items in the list, e.g. “Acquire picture using ACDSee 9.0” or “Browse pictures using ACDSee 9.0”. Each subkey under Handler represents one provider. The subkey defines the icon, the text label and the path to the actual program for the provider. For example, “Acquire Pictures using ACDSee 9.0” was defined by ACDSee90AcquirePicturesOnArrival subkey. However, not all “providers” appear in one autoplay list. Windows displays a subset of them based on the device type, media type and content type.

I checked all the handlers but did not find a handler with a gibberish text label. Confused, I continued to cautiously explore the rest of the maze.

I eventually visited the EventHandler subkey, which serves as a repository of events in which Windows populates an autoplay dialog box. Each event holds a list of providers to show in the autoplay list. The corrupt entries in my case appeared when Windows decided that an inserted disk contained pictures; so, I decided that EventHandler\ShowPicturesOnArrival was the best place to start looking.

Naturally, each provider listed here should have also been defined under Handler subkey discussed above. But as I compared the contents of the two keys, I discovered three providers that were not defined under Handler subkey:

  1. ACDSeeAcquirePicturesOnArrival
  2. ACDSeeShowPicturesOnArrival
  3. OperaViewPicturesOnArrival

Deleting the three fixed the problem.

I made similar inquiries in EventHandler\MixedContentOnArrival and PlayVideoFilesOnArrival as well, which had similar invalid providers in their lists.


Posted on 25 June 2007, in Windows Administration and tagged , , , , , , , , , . Bookmark the permalink. 2 Comments.

  1. Thanks for this information, Fixed my problem that Nero had messed up.Thank you.

  2. Nice post. CleanHandlers tool which I wrote few years back, automates this.

Leave a comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: