10/08/2007

Vista Upgrade: DVD Driver Problems FIX - Roxio DLA

The gods too are fond of a joke. - Aristotle

Recently I upgraded XP Pro to Windows Vista Ultimate. It wasn't until sometime later that I found I had lost my DVD drive. The driver appeared in Device Manager but it had that familiar yellow exclamation mark indicating a problem loading the driver.

After a bit of searching, I discovered that the culprit was Roxio CD/DVD software (e.g., "DLACDBHM.SYS" et. al.) which is not Vista - compatible, and thus blocks correct loading of the built in Vista CD/DVD drivers.

The FIX:

First step, in C:\Windows\System32 you need to find the DLA folder and delete it. That's their "Stuff". If you want to get sophisticated, you can search the registry for all keys that point to any of these .sys drivers and remove the entries.

Next, run this Registry Fix script courtesy of Doug Knox:

'Restore CD-Roms and DVD's to Explorer
'xp_cd_dvd_fix.vbs
'© Doug Knox - rev 04/14/2002
'Downloaded from www.dougknox.com
'based on cdgone.reg

Option Explicit
On Error Resume Next

Dim WshShell, Message

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}\UpperFilters"
WshShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}\LowerFilters"
WshShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdr4_2K\"
WshShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdralw2k\"
WshShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdudf\"
WshShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UdfReadr\"
Set WshShell = Nothing

Message = "Your CD/DVD-Rom drives should now appear in Windows Explorer." & vbCR
Message = Message & "You may need to reboot your computer to see the change."

MsgBox Message, 4096,"Finished!"

The above script should be saved as "xp_cs_dvd_fix.vbs" and you can execute it out of Windows Explorer by double-clicking. This is a pretty old script but the most important thing it does is to remove the "UpperFilters" and "LowerFilters" entries.

Note: the above does not remove Roxio DLA - which is incompatible with Vista. Here are full instructions for that:

Note: These instructions apply specifically to Windows XP, but they work on Vista as well.
To perform a clean uninstallation of DLA.
1) Uninstall the current copy of DLAusing the "Add/Remove Programs," control panel, if available.
2) Delete the "DLA," folder from your Program Files folder. (By default this is located inside:C:\Program Files\Sonic\)
3) Edit the Registry to remove entries relating specifically to DLA. (As a precaution, please exportany registry entries before deleting them.)
a. To start the Registry Editor, click on "Start," click on to "Run," type "regedit," and click "OK."
b. Open the "HKEY_CURRENT_USER" folder. (If this folder does not exist, proceed to step f.)
c. Open the "Software" folder.
d. Open the "Sonic" folder.
e. Right-click on the "Direct Access" folder and select delete.
f. Go to HKEY_LOCAL_MACHINE\Software\Sonic.
g. Right-click on the "Direct Access" folder and select delete.
h. Go to HKEY_CLASSES_ROOT\CLSID.
i. Right-click on the "{5CA3D70E-1895-11CF-8E15-001234567890}" folder and select delete.(This data for the "Default," setting in this folder should be "DriveLetterAccess.")
j. Go to HKEY_CLASSES_ROOT\Installer\Products.
k. Right-click on the "29FE602138E2958RCABC02843CBCD76A" folder and select delete.
l. Go to HKEY_CLASSES_ROOT\
m. Right-click on the "VERITAS.DLAEventHandler" folder and select delete.
n. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID.
o. Right-click on the "{5CA3D70E-1895-11CF-8E15-001234567890}" folder and select delete.(This data for the "Default," setting in this folder should be "DriveLetterAccess.")
p. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Classes.
q. Right-click on the "VERITAS.DLAEventHandler" folder and select delete.
r. Got to HKEY_LOCAL_MACHINE\Software\Microsoft\Shared Tools\MSConfig\startupreg.
s. Right-click on the "dla" folder and select delete.
t. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers.
u. Right-click on "VxDlaCdOnArrival" and select delete.
v. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
w. Right-click on the "{1206EF92-2E83-4859-ACCB-2048C3CB7DA6}" folder and select delete.
4) Restart your computer.
5) Delete the "DLA," folder from the System32 folder. (This is located inside: C:\Windows\System32)

Reboot your machine, and you should now see your DVD drive, and Roxio DLA will be gone.