Wednesday, April 01, 2015

PrintIsolationProxy.dll corrupted



I have a notebook computer, ASUS VivoBook S400CA, Intel i5 processor, running Windows 8.1, around 18 months old now.

The computer had been running fine for all this time, of course it is never as fast as you would like it to be, but still…

The other day I wanted to print something (I only use the printer on average about twice a month), and Windows told me I had to install a printer? What??? I clicked on Find Printer in the Printer Settings Box and up pops dialog box telling me the local print spooler service is not running and to turn it on. What??? So I went to services (Click Start and types ‘services.msc’) and sure enough Print Spooler had stopped. I started it, it seemed to run, but after 5 seconds or so, it stopped. What???

To make an extreme long story short, what fixed it is that I ran the sfc utility from within an Administrator’s command window (type ‘command’ from Start and then right click on Command Prompt, then select Run as Administrator). To run sfc, I typed ‘sfc /scannow’. After this command completed (it takes a while), I went to Notepad (any text editor will do) and looked at the log file that sfc created. This files was stored in c:\windows\system32\logs\cbs\cbs.log. Using the Find command, I looked for occurrences of ‘Cannot’, I found 2 (well actually more than 2, but they always pointed to the same 2 files), amstream.dll and PrintIsolationProxy.dll. The ‘cannot’ refers to the fact that sfc found these files to be corrupted, but it couldn’t repair them.

Next, I took a guess and decided to try and replace PrintIsolationProxy.dll with another copy from somewhere else. I downloaded this copy from, ran it through a couple of virus checkers and malware detectors, then renamed the existing version to PrintIsolationProxyOld.dll and popped the new one in its place. Even that is fairly complicated as in order to be able to rename a file, you need to be the owner of it so in the Properties box of this file I had to change that from ‘TrustedInstaller’.

Once the new file was copied to c:\windows\system32, I opened up services again, started the Print Spooler, and voila: it didn’t die after the mandatory 5 seconds went by. Next I tried to print and the printer works again!

I ran virus checkers and malware detectors over the old version, and none of them detected anything untoward. So I can only surmise that Windows Update did something.

I have no idea what amstream.dll does or which process uses it, that is a problem still remaining to be solved.

Ironically, PrintIsolationProxy.dll was added to Windows around 2009 (Vista?), to prevent wayward printer drivers from crashing the print subsystem…..

No comments: