This morning I’ve managed to mis-install a display adapter, which resulted in a BSOD on my Windows 10 on startup. Before the windows screen, before I had a chance to request safe-mode…
Searching on Google brought up generic and uninformative results, and I found myself diving through uncharted waters (for me), playing with stuff until (unbelievably) I managed to recover the computer.
This post tries to recount my story, in the hope it might help other users facing a similar issue.

How it all started

(if you are stuck, you don’t care about my rant – you can skip to the next section)

It all started with Windows 10 being excruciatingly slow for my wife. She requested me to check this, and I saw that the disk usage was 100%, with the main culprit being a “Microsoft Compatibility Telemetry” process.

Diligently, I searched the web what should be done, and I found a site explaining how to fix this, no problem. The first two methods were as easy as they were unhelpful – they suggested two ways to disable telemetry on windows, but since it was already disabled (as far I could see), I looked up the third option.

The third option suggested installing a 3rd party to update device drivers. I was careless, and missed the fact that the software they were suggesting (Driver Easy) was their own – the suggestion was posted on the drivereasy.com knowledge base…

Now, I’m not familiar with this application, and I won’t go as far as asserting that they have any malicious intent, but with my experience with them in the last 24 hours, I will most definitely not use their services, let alone pay for them!

For one – the “Method 3” they suggest has nothing with the problem at hand, and actually it appears in most of the problems they “solve” in the knowledge base page – if I was a total cynic, I would say they copied solutions from the internet, adding a suggestion to download their software, and uploading it in hopes their page will come up higher than the original in search results…

Another thing that seems shady is that the application in its “free” state is somewhat deceptive in what it does, which is to make it more frustrating than useful, promising it would all be better once you “Upgrade” – big buttons (like “Update All”) which only result in a pop-up telling you that it is not possible in the free version.

Actually, even the buttons which actually do something send you through this screen, so you can never be sure what’s really been done, and what you are expected to do yourself. They also make sure you have the lousiest experience, so even though downloading a new driver is supported in the free version – it is downloaded at only a few Kb/s (with a disclaimer that the paid version is 10x faster!)

So it seems that the free version is not much more than an ad for the paid version, and a bad one at that. There are a lot of successful “freemiums” out there, but what’s common in all of them is that the free version has actual value.

Installing Drivers willynilly

Anyway, using this software, it suggested to update 26 Device(s). It suggested to “Update All” (which it didn’t), or to update each. Pressing the “Update” button, it suggested to “Automatically Create a system restore point” (which it didn’t), then to download the driver (at a dialup connection speed), and then to install the driver – which it didn’t do as well, even though their upgrade prompt claims they it should be able to do…

So I installed the first driver they suggested – the “FrescoLogic Proxy Display Adapter” – I opened the Device Manager, and found the driver in the list, right-clicked, browsed my computer for the driver software, pressed next, installation started…

…and then the computer froze…

Blue Screen of Death

I was very worried that restarting the computer at this state might be very dangerous – as interrupting a driver update (especially one regarding a display adapter) – might result in corruption which might interfere with the computer boot. But since nothing seemed to be moving for about 30 minutes – I figured I don’t have much choice, so I hard-rebooted, and my worst case scenario materialized.

I got Windows 10’s BSOD

an illustrative photo

That was bad enough as it is, what was worse is that I got this screen before I saw the Windows splash screen, so I couldn’t get to the last known configuration options by pressing F8 (which apparently is not an option anyway since Windows 8).

With no known recourse, I started googling for the error I saw (with a second computer I mercifully have).

The error was:

“System Service Exception at lci proxykmd.sys”

Most suggestions I saw were to update or delete the offending service. I don’t remember I found any result with this specific error for this specific service, but since I knew more or less what caused it – I’m not surprised.

But how the f*** do I do that?

After a few minutes of frantic googling – I found out that restarting the computer enough times will start a recovery mode (BSOD promised to restart after collecting the error info, but it didn’t – so you have to do it manually)!

Auto repair did not fix anything, and I finally realized my only out is by using the command prompt:

But how? I don’t have access to the Device Manager… How do you uninstall a driver from the recovery console? Apparently you need to use PnPUtil to do that.

I tried to call the the line suggested (pnputil /e), but the console did not recognize it… Then I noticed that the working directory, though familiar, is not the regular default working directory – it was X:\Windows\System32 instead of C:\Windows\System32

Changing the working directory did the trick but a bare pnputil /e proved unhelpful, since it simply spooled a lot of very similar data, and it was very hard to find yourself in there.
So, to be able to actually lookup something, you need to see the information a page at a time – pnputil /e | more, which at least shows you a page at a time, but it is very hard to find something…

The next thing I tried was to find a string in this pnputil /e | findstr /c:Logic. This showed me that there is a line for Fresco Logic, but no reference to the valuable information around it…

C:\Windows\System32>pnputil /e | findstr /c:Login
Driver package provider :    Fresco Logic Inc.

So I’ve tried pnputil /e | findstr /c:Logic /n which at least shows at which line it is:

C:\Windows\System32>pnputil /e | findstr /c:Login
118:Driver package provider :    Fresco Logic Inc.

So I requested for the full list again, and found some new tid-bit of information – the published package name – oem20.inf!

Published name :              oem20.inf
Driver package provider  :    Fresco Logic Inc.

But, what’s this inf file? What does it mean? Where is it?

Looking under C:\Windows\System32\DriverStore\FileRepository I’ve found two drivers starting with lci_proxycmd.inf_*, which at the moment did not help me.

I decided to take the plunge, and delete the driver. Crossing my fingers, sweating a bit, I’ve run the following command:

C:\Windows\System32>pnputil /d oem20.inf

And rebooted…

…and it did not help…

Actuall, anything I did – deleting the driver, or installing any of the drivers I found in the repository, seemed to be forgotten after the next reboot.

When all else fails

So, while I was looking for a nearby Computer Technician, and my wife started contemplating on buying a new computer, I also fiddled around on the contents of the directory.

What I noticed was that under the drivers’ folders were files that were also outside the folders

C:\Windows\System32>dir /S "lci_p*"
Volume in drive C is Windows
Volume Serial Number is ...

Directory of C:\Windows\System32

10/16/2015 10:33 AM 10,705 lci_proxykmd.cat
10/16/2015 10:33 AM 2,757 lci_proxykmd.inf
10/16/2015 10:33 AM 89,224 lci_proxykmd.sys
10/16/2015 10:33 AM 141,296 lci_proxyumd.dll
4 File(s) 243,982 bytes

Directory of C:\Windows\System32\amd64

10/16/2015 10:33 AM 89,224 lci_proxykmd.sys
10/16/2015 10:33 AM 141,296 lci_proxyumd.dll
10/16/2015 10:33 AM 112,624 lci_proxyumd32.dll
3 File(s) 343,144 bytes

Directory of C:\Windows\System32\drivers

10/16/2015 10:33 AM 89,224 lci_proxykmd.sys
1 File(s) 89,224 bytes

Directory of C:\Windows\System32\DriverStore\FileRepository

09/29/2016 12:31 AM  lci_proxykmd.inf_amd64_...
10/11/2017 08:49 AM  lci_proxykmd.inf_amd64_...
0 File(s) 0 bytes

Directory of C:\Windows\System32\DriverStore\FileRepository\lci_proxykmd.inf_amd64_...

10/16/2015 10:33 AM 10,705 lci_proxykmd.cat
10/16/2015 10:33 AM 2,757 lci_proxykmd.inf
09/29/2016 12:31 AM 8,788 lci_proxykmd.PNF
3 File(s) 22,250 bytes

Directory of C:\Windows\System32\DriverStore\FileRepository\lci_proxykmd.inf_amd64_...\amd64

10/16/2015 10:33 AM 89,224 lci_proxykmd.sys
10/16/2015 10:33 AM 141,296 lci_proxyumd.dll
10/16/2015 10:33 AM 112,624 lci_proxyumd32.dll
3 File(s) 343,144 bytes

Directory of C:\Windows\System32\DriverStore\FileRepository\lci_proxykmd.inf_amd64_...

10/10/2017 10:03 PM 10,668 lci_proxykmd.cat
10/10/2017 10:04 PM 2,764 lci_proxykmd.inf
10/11/2017 08:49 AM 8,820 lci_proxykmd.PNF
3 File(s) 22,252 bytes

Directory of C:\Windows\System32\DriverStore\FileRepository\lci_proxykmd.inf_amd64_...\x64

10/10/2017 10:03 PM 99,976 lci_proxykmd.sys
10/10/2017 10:03 PM 174,728 lci_proxyumd.dll
10/10/2017 10:03 PM 135,304 lci_proxyumd32.dll
3 File(s) 410,008 bytes

I also noticed that some of the files outside the FileRepository  had the older timestamp, while others had the newer timestamp. I’ve decided on a final test before giving up, and I overwritten all the files with the newer timestamp with the files of the older version.

And I rebooted.

And it worked!

Conclusions

  • Don’t install unfamiliar software on your machine, just because some site says so
  • Don’t upgrade drivers you are not sure need upgrading
  • If a computer is already bricked – you could prod it some more -what’s the worst you could do? brick it more?

By the way, we still have disk consumption issues, but I decided they subside after the computer is up for about 10-20 minutes.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s