iTunes Gives Warning On Startup

From Wiki
Jump to: navigation, search

Even after a fresh re-install of Windows XP with SP3 from a legal CD, when starting iTunes I would get a dialog box about "iTunes might be unable to launch or communicate with iPod or iPhone. For help repairing your operating system, click More Information.". Apple suggests attempting to re-register the DLL's listed below:

regsvr32 /s softpub.dll
regsvr32 /s wintrust.dll
regsvr32 /s dssenh.dll
regsvr32 /s rsaenh.dll
regsvr32 /s gpkcsp.dll
regsvr32 /s sccbase.dll
regsvr32 /s slbcsp.dll
regsvr32 /s mssip32.dll
regsvr32 /s cryptdlg.dll
regsvr32 /s initpki.dll

Notice the '/s' option, which means "silently". This is a moronic option, because if you get an error, YOU WON'T KNOW IT. Running them WITHOUT the '/s' option reveals that sccbase.dll is throwing an error message of

Loadlibrary("sccbase.dll") failed - the specified module could not be found

and slbcsp.dll

Loadlibrary("slbcsp.dll") failed - the specified module could not be found

(Just click 'OK' to dismiss the dialogs as they appear)

One page I ran across suggests finding sccbase.dll and slbcsp.dll on another computer and copying them over. A laptop that was installed from the very same CD that my desktop was on had these two files, so I copied them over. I re-ran regsvr32 on the two files again, and get the same error message.

This is not really a helpful error message, because the error message would seem to indicate it can't find the DLLs we just tried to register. Not so! It actually means there's another DLL that these DLLs are trying to load that can't be found. For some reason, the geniuses in Redmond apparently didn't think to display what it's actually missing.

Because of a partially helpful page I found here (not worth reading unless you're just bored), I found a utility named Dependency Walker (you won't need this unless the following doesn't work for you). Using DW, I was able to determine that sccbase.dll needed sccsccp.dll, and slbcsp.dll needs slbiop.dll and slbrccsp.dll.

Now you've got the back story you didn't care about. So let's check if you actually have these 5 files or not. Open a command console with Start->Run, type cmd, and press return. Then type

cd \windows\system32
dir scc* slb* /b

You should see the following output

C:\WINDOWS\system32>dir scc* slb* /b
sccbase.dll
sccsccp.dll
slbcsp.dll
slbiop.dll
slbrccsp.dll

C:\WINDOWS\system32>

If you don't have all 5 of these files, find a copy of them on another system. Make sure you copy them into the C:\Windows\System32 directory. Now we need to register one of these DLLs that wasn't in the original list, so do the following:

regsvr32 slbiop.dll

You should see a dialog box appear that says "DllRegisterServer in slbiop.dll has succeeded." Press OK to dismiss the box, like we did before.

From the original list of 10 DLL's we registered earlier, 2 failed, so we need to register those 2 again.

regsvr32 /s sccbase.dll
regsvr32 /s slbcsp.dll

This time they should complete with a dialog box indicating they succeeded. If they do, you should be good to go. If not, I don't know what to tell you. Maybe Google some more. I quit when it started working.

Side note: When trying to install the HP LaserJet CP2025dn software from HP, I was getting some message about cryptographic services weren't present or something. After this fix, I decided to see if it would install, and it did.