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
Deleting the three fixed the problem.
I made similar inquiries in
PlayVideoFilesOnArrival as well, which had similar invalid providers in their lists.