onsdag 18. juni 2008

The case of a broken Windows DVD Maker

The problem

One of the nice gems in Windows Vista is the Windows DVD maker, which is incredibly easy to use. Except when it doesn't work that is.

On one of my two home computers the burning process stopped at 0.2% with the error message

"Invalid class string"

Great.


The solution

Since you're probably googling for the solution, I'll tell you now. On my computer, two registry keys had to be deleted:

HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{79D28B7F-A6BD-49EF-8CEA-EA0E7791589E}
HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{138130AF-A79B-45D5-B4AA-87697457BA87}

Remember to back up the keys first, either by exporting them in the registry editor, or by creating a restore point using System Restore).

If Nero stops working, restore them.

If Windows DVD Maker still doesn't work, read on to find out which keys to delete on your computer.


What's going on here?

I believe the keys are registrations of Nero codes. The first one is Nero Audio Processor and the latter is "Nero Digital Audio Decoder". Both are found under a key called "ActiveMovie Filter Class Manager".

Unfortunately, they're not really installed.

Windows DVD Maker apparently loads the codecs during the first .2% of the burn process. However, although still listed in the system, they've been uninstalled, and Windows DVD maker fails as a result of that.

The root cause is probably the Nero uninstaller not correctly removing the codecs from the system.


How could you tell which keys to delete?

Googling the error message really just returned one suggestion for mending the program, but apparently copied to a million sites on the Internet. Adding host:microsoft.com to the search returned the same answer, but probably the original posting.

The error message "Invalid class string" indicates that the program is trying to create a COM object by passing a GUID (you know, like {1B544C20-FD0B-11CE-8C63-00AA0044B51E}) to the operating system. Windows will then look in the registry under HKEY_CLASSES_ROOT\Clsid\{1B544C20-FD0B-11CE-8C63-00AA0044B51E} for information on which dll to load.

In the case of Windows DVD Maker, this failed for some unknown GUID.

Luckily, Process Monitor can tell you what key it is. Filter on "Process Name is DVDMaker.exe ,Include" and let it capture events while you're burning a DVD. When the burn process stops with the "Invalid class string" error message, look for a RegOpenKey operation at the end of the log on any key like HKCR\ClsId\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} which FAILS.

On my computer, I first saw that DVDMaker.exe successfully read the

HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{79D28B7F-A6BD-49EF-8CEA-EA0E7791589E}

key, but then failed to read the

HKEY_CLASSES_ROOT\CLSID\{79D28B7F-A6BD-49EF-8CEA-EA0E7791589E}

a couple of log lines later. If you look at the preceeding lines of the log, you can clearly a pattern being broken here.

Unfortunately, since Windows DVD Maker stops at the first error, you'll have to repeat process until all nonexisting codecs have been removed from the list.

2 kommentarer:

Marc Patrick Roy sa...

I apologize for not speaking german. I d o speak french if it can help.

I am having problems with DVD Maker. I downloaded process monitor. In my case it fails at "CREATING DVD, please wait..." 99.0 % complete. It then pops cannot create the dvd "invalid class string" error.

While I see a trend for several keys not working (i.e. HKCU\..) they work under (HKLM\...) is this the issue? I thought that was ok.

the last error in the log is "name not found" for hklm\software\microsoft\windows nt\current version\fontsubstitutes\segoe UI

then it reqclosekey (success)

and that's all she wrote. So I my issue one of font? As in a missing font being used in the video composition?

M.P.
readfile duser.dll (success)

Marki sa...

Maybe try "Codec Tweak Tool" oder "Filmerit" to repair DirectShow filters. In my case this way has solved the problem without editing the registry manually.