Yesterday, Microsoft released its ninth firmware update for the Surface Book and Surface Pro 4 (Oct. 23 2015, Nov. 2, Nov. 18, Dec. 2, Dec. 17, Jan. 27, 2016, Feb. 17, Mar. 15, and now Apr. 19). The update is immense, with dozens of separately identified driver fixes, and a handful of additional changes.
The most recent Surface Pro 3 release lists four driver and firmware updates, all associated with the Surface Dock, which has encountered a great deal of criticism. If I count correctly, that's the 21st firmware patch for Surface Pro 3.
You may have received some or all of the updates overnight. If you haven't, keep this admonition from Microsoft in mind:
When Surface updates are provided via the Windows Update service, they are delivered in stages to Surface customers. As a result, not every Surface will receive the update at the same time, but the update will be delivered to all devices. If you have not received the update then please manually check Windows Update later.
The Surface Book and Surface Pro 4 have been the subject of many deleterious mentions online, including complaints about sleep problems, wakeup problems, screen flickering, Windows Hello not working, Windows Store stuttering, and many other odd mishaps. It's much too early to tell for sure, but it looks like this round of patches has solved many -- but not all -- of the problems ... if you can get them installed.
I applied the firmware updates to a Surface Pro 3, a Surface Pro 4, and a brand-new Surface Book, and encountered many of the issues that other folks are reporting. Here's what I found.
My Surface Pro 3, which doesn't have a Dock, shows no updates available. It isn't clear at this point if that's because the firmware patches are slow to roll out, or if you have to have a plugged-in Dock in order to get the patches. It also isn't clear if you can install the latest Dock patches independently of Windows Update using (for example) the Microsoft Surface Dock Updater.
If you've managed to get the Dock patches for SP3 downloaded and installed, please drop a note here in the comments or on AskWoody.com.
My Surface Pro 4 took its medicine with no noticeable adverse effects. I had to reboot twice, but encountered no other problems.
My Surface Book, on the other hand, hit a series of problems that are now well known and well documented. There's a solution making its way around the Internet, and Microsoft says it's working on solving the problem.
When installing the patches, the installer crashed with a blue screen that says, "PAGE_FAULT_IN_NONPAGED_AREA (iacamera64.sys).” After an automated countdown, the machine rebooted and came up with the installer running. It worked for a bit, then came back with an update notification that listed "Intel Corporation driver update for Intel(R) Control Logic," and many other Intel driver updates all failing with errors 800f0203 or 80248007.
There's a lengthy thread on Reddit, where Microsoft engineers are helping to answer installation questions. This combination seems to be the most common complaint, and it happens on both Surface Pro 4 and Surface Book updates. The Microsoft Answers forum is full to overflowing with questions -- 76 posts and increasing quickly, at last count.
Here's the recommended approach to solving the problem (note that it doesn't always work, though):
Step 1. Go to C:\Windows\INF and open setupapi.dev (the online instructions say setupapi.dev.log -- which is wrong)
Step 2. Search for the string
Failed to install device instance
Step 3. Go up about 9 lines to a very long line that starts
Driver package ‘c:\windows\softwaredistribution\download\install….'
At the end of that long line you'll see an inf file listed, like this:
Other people report an
inf name of
oem135.inf, and many more. Make a note of the
Step 4. Right-click Start and choose Command Prompt (Admin). That puts you in an elevated command prompt.
Step 5. Type
pnputil –d <infname>
substituting your Inf name for <infname>. In my case, I used
pnputil –d oem68.inf
In most cases, that combination will work. There are tough cases, though, including mine. When I ran the
pnputil command, I got an error:
Deleting the driver package failed :One or more devices are presently installed using the specified INF.
At that point, I stopped trying to get the updates installed. I didn't want to delete a needed driver, on the off chance that the presently installed devices are critical. The update, for me, will have to wait for another day.
Poster GoodThings2Life on the Blackforce UK forum has more of a sledgehammer approach. He writes:
I had some extra work to do that may be helpful to others.
In my case, one of the Surface Book's firmware controller drivers got stuck in C:\Windows\System32\DriverStore\FileRepository\skccontroller.inf_amd64_b8fa66e3cad9164f and this was what was indicated in the log file from the article.
Instead of using the pnputil -d command, I had to browse to C:\Windows\System32\DriverStore\FileRepository and manually take ownership, assign full permissions to Everyone, and delete the entire skccontroller.inf_amd64_b8fa66e3cad9164f folder entirely.
Hopefully this information will be helpful to others, and I thank you for figuring out this much to get me pointed in the right direction!
Several Microsoft devs are actively holding down the fort on Reddit. Zac_l, in particular, has made this magnanimous gesture:
Can you upload this file to somewhere I can access it: C:\windows\inf\setupapi.dev.log ?
PM me the link and I'll reply with recovery steps. These steps will be specific to your machine, so I don't want to post them publicly and have someone else follow them and mess up their machine.
I think Niterider4, posting on the Microsoft Surface Forums, hit the nail on the head:
Personally, I'm waiting for the day when my Surface Book is more like a dependable computer and less like a technology project that requires frequent monitoring and maintenance.
I really want to believe that the latest crop of drivers will work. Guess we'll have to wait until the installer bugs get ironed out.