Windows 10

Most of the time I spend on my computer is in the Linux world, however I do have a Windows laptop for the non-open applications I need to use from time to time. One of those applications is the video conferencing tool I use for work. Last Wednesday I was working from home, switched to my Windows laptop to prepare for the morning scrum conference, only to find Windows had decided to update and restart itself. Annoying, but not a big deal, until I logged in and realized that all my drivers for networking, bluetooh, usb audio and usb video were all disabled.

I was able to download Wi-Fi and Bluetooth drivers to a USB stick and reinstall them on my Windows laptop. However, USB audio and video devices use drivers that are built directly into the Windows operating system. Whenever I attempted to update these driver in the device manager, I’d get the following error:

Through a series of searches, I eventually discovered a log file named C:\Windows\INF\setupapi.dev.log :

>>> [Device Install (DiShowUpdateDevice) - USB\VID_262A&PID_1100&MI_01\6&213CF812&1&0001] >>> Section start 2016/08/17 14:19:36.912 cmd: "C:\WINDOWS\system32\mmc.exe" "C:\WINDOWS\system32\compmgmt.msc" /s dvi: {DIF_UPDATEDRIVER_UI} 14:35:31.130 dvi: Default installer: Enter 14:35:31.133 dvi: Default installer: Exit dvi: {DIF_UPDATEDRIVER_UI - exit(0xe000020e)} 14:35:31.137 ndv: {Update Driver Software Wizard for USB\VID_262A&PID_1100&MI_01\6&213CF812&1&0001} sto: {Setup Import Driver Package: c:\windows\inf\wdma_usb.inf} 14:35:35.293 ! sto: Unable to determine presence of driver package. Error = 0x00000002 inf: Provider: Microsoft inf: Class GUID: {4d36e96c-e325-11ce-bfc1-08002be10318} inf: Driver Version: 10/29/2015,10.0.10586.0 sto: {Copy Driver Package: c:\windows\inf\wdma_usb.inf} 14:35:35.308 sto: Driver Package = c:\windows\inf\wdma_usb.inf sto: Flags = 0x00000007 sto: Destination = C:\Users\myusername\AppData\Local\Temp\{360925e0-0e26-7643-bd01-ff3a8203caf7} sto: Copying driver package files to 'C:\Users\myusername\AppData\Local\Temp\{360925e0-0e26-7643-bd01-ff3a8203caf7}'. flq: Copying 'c:\windows\inf\wdma_usb.inf' to 'C:\Users\myusername\AppData\Local\Temp\{360925e0-0e26-7643-bd01-ff3a8203caf7}\wdma_usb.inf'. !!! flq: Error installing file (0x00000002) !!! flq: Error 2: The system cannot find the file specified. ! flq: SourceFile - 'c:\windows\inf\USBAUDIO.sys' ! flq: TargetFile - 'C:\Users\myusername\AppData\Local\Temp\{360925e0-0e26-7643-bd01-ff3a8203caf7}\USBAUDIO.sys' !!! cpy: Failed to copy file 'c:\windows\inf\USBAUDIO.sys' to 'C:\Users\myusername\AppData\Local\Temp\{360925e0-0e26-7643-bd01-ff3a8203caf7}\USBAUDIO.sys'. Error = 0x00000002 !!! flq: SPFQNOTIFY_COPYERROR: returned SPFQOPERATION_ABORT. !!! flq: Error 995: The I/O operation has been aborted because of either a thread exit or an application request. !!! flq: FileQueueCommit aborting! !!! flq: Error 995: The I/O operation has been aborted because of either a thread exit or an application request. !!! sto: Failed to copy driver package to 'C:\Users\myusername\AppData\Local\Temp\{360925e0-0e26-7643-bd01-ff3a8203caf7}'. Error = 0x00000002 sto: {Copy Driver Package: exit(0x00000002)} 14:35:35.362 sto: {Setup Import Driver Package - exit (0x00000002)} 14:35:35.365 !!! ndv: Driver package import failed for device. !!! ndv: Error 2: The system cannot find the file specified. ndv: Installing NULL driver. dvi: {Plug and Play Service: Device Install for USB\VID_262A&PID_1100&MI_01\6&213CF812&1&0001} ! ndv: Installing NULL driver! dvi: {DIF_ALLOW_INSTALL} 14:35:35.**** dvi: Default installer: Enter 14:35:35.421 dvi: Default installer: Exit dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 14:35:35.421 dvi: {DIF_REGISTER_COINSTALLERS} 14:35:35.422 dvi: Default installer: Enter 14:35:35.422 dvi: Default installer: Exit dvi: {DIF_REGISTER_COINSTALLERS - exit(0x00000000)} 14:35:35.423 dvi: {DIF_INSTALLDEVICE} 14:35:35.423 dvi: Default installer: Enter 14:35:35.424 ! dvi: Installing NULL driver! dvi: Install Null Driver: Removing device sub-tree. 14:35:35.425 dvi: Install Null Driver: Removing device sub-tree completed. 14:35:35.429 dvi: Install Null Driver: Restarting device. 14:35:35.431 dvi: Install Null Driver: Restarting device completed. 14:35:35.435 dvi: Install Device: Starting device. 14:35:35.435 dvi: Install Device: Starting device completed. 14:35:35.448 dvi: Default installer: Exit dvi: {DIF_INSTALLDEVICE - exit(0x00000000)} 14:35:35.448 ump: {Plug and Play Service: Device Install exit(00000000)} ndv: {Update Driver Software Wizard exit(00000002)} <<< Section end 2016/08/17 14:35:37.358 <<< [Exit status: FAILURE(0x00000002)]

So it seemed that the latest patch had somehow removed USBAUDIO.sys , or caused the INF file to search for it in the wrong location (it’s actually located in C:\Windows\System32\Drivers ). However copying the file to the location mentioned in the logs would give me an error about the drivers not being signed. I’d get the same error from the Microsoft WiFi Miniport Adapter.

I assume the latest update broke my system’s USB support. Running the following command generates a listing of recently installed Windows updates:

wmic qfe list brief /format:htable > "%USERPROFILE%\hotfix.html"

I attempted to uninstall the most recent update. I still couldn’t install USB audio/video drivers. I then attempted to roll back to a system restore checkpoint. Some of my applications that depending on the C++ runtimes installed at that checkpoint stopped working and had to be reinstalled, but the USB issue still persisted.

Any searches I preformed for this issue gave me a pretty big spread on results with multiple issues dating back to Windows 7 and XP. A post to SuperUser on the issue went unanswered and another post on Microsoft answers was given a worthless cookie-cutter response. The only real support I got was from a supposed Microsoft employee (johnwinkmsft) on Reddit who at least attempted to seriously look at my issue.

Eventually I started preforming searches relating directly to the Anniversary update. I found a post somewhere that suggested running Microsoft’s Windows10Upgrade28084.exe, which is a manual install of the anniversary update. Even though I had checked for updates multiple times with the built-in Windows Update tool, when I ran the anniversary update installer, it said my build was behind. I allowed it to install the update and rebooted. Afterwards, I went through the annoying first-time boot screen in which I had to be sure and disable, once again, all the ways Microsoft seeks to monitor my personal usage information.

When I finally got back to the desktop, all my USB devices were once again working. The summary KB3176493 mentions security fixes for kernel mode drivers. I suspect that KB3176493 may have been dependent on the Anniversary update/build of Windows 10, and that the signing key, or the location for key drivers changed between the two builds. Still, that doesn’t explain why the issue didn’t resolve by uninstalling the update or dropping back to a system restore point.

I’m not a Windows system expert by any means. Had this been an issue on my Linux system, I’d have the domain knowledge to diagnose this issue a lot faster. I also believe I would have had been response from the developer community, such as when I made several posts on various mailing lists and bug trackers in an attempt to get Wi-Fi and bluetooth working on my laptop. I can understand why Windows support is much more difficult with a much larger installation base of mostly non-tech users. In the past, I cannot recall any security updates for Windows that have broken my system, or at least not as severely as this case. It’s troublesome the number of issues users have been reporting with the Windows 10 Anniversary Update, as well as the KB3176493 patch causing printing bugs. Still I’m glad I continued to diagnose this issue and not resort to the 1990s solution of reinstalling Windows.