I am seeing error 0x80070003 in CBS.log after consistently failing to install the cumulative update for February 2020 (KB4532693).
The logged error is always:
2020-03-06 21:29:44, Error CBS Shtd: Failed while processing non-critical driver operations queue. [HRESULT = 0x80070003 - ERROR_PATH_NOT_FOUND]
ERROR_PATH_NOT_FOUND is the corresponding Win32 error code (3) translated to
The corresponding error in
%WINDIR%\inf\setupapi.dev.log looks like this:
>>> [Install Driver Updates] >>> Section start 2020/03/06 21:29:43.850 cmd: C:\WINDOWS\winsxs\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.18362.651_none_5f2896f458eff373\TiWorker.exe -Embedding sto: Image State = Specialized sto: Image Architecture = amd64 sto: Image OS Version = 10.0.18363 sto: Image Product Type = WinNT sto: Transaction = CbsDriversAndPrimitives sto: Driver Updates = 644 ! inf: Unable to load INF: 'C:\WINDOWS\System32\DriverStore\FileRepository\netathrx.inf_amd64_220db23f5419ea8d\netathrx.inf'(00000003) !!! inf: Invalid INF 'C:\WINDOWS\System32\DriverStore\FileRepository\netathrx.inf_amd64_220db23f5419ea8d\netathrx.inf', parsing error on line 0. Code = 1002 !!! sto: Failed to get version info for driver update 'C:\WINDOWS\System32\DriverStore\FileRepository\netathrx.inf_amd64_220db23f5419ea8d\netathrx.inf'. Error = 0x00000003 <<< Section end 2020/03/06 21:29:44.069 <<< [Exit status: FAILURE(0x00000003)]
So it seems I am looking for a file named
C:\WINDOWS\System32\DriverStore\FileRepository\netathrx.inf_amd64_220db23f5419ea8d\netathrx.inf. The folder that is supposed to contain this file doesn't exist. The slight problem are the permissions (ACL) on the parent folder, though. Surprisingly the file
netathrx.inf exists in
There is indeed an Qualcomm Atheros network adapter in this laptop:
Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter
My question now: how do I find that file and replace it in hopes of the update installation succeeding after that?
Note: right now I've tried everything from installing the (cumulative) update manually using
dism /online with and without giving a mounted
/source and I also used
sfc /scannow (which found and fixed one issue, but after that point never reported anything again). So I am at a loss as to what non-destructive action I can take short of using the "repair" feature from the Windows 10 installation media, which I fear would reset stuff in the registry and thus could affect installed programs.
I have no third-party AV/AM solution, instead using the Windows Defender suite of applications.
The adapter in question which seems to cause the update installation to require
netathrx.inf reports with
lspci (on Linux) as:
05:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)
The way I chose to investigate the issue was as follows:
dism /mount-image /imagefile:install.wim /index:1 /mountdir:%CD%\mount /readonly)
INF\netathrx.infrelative to the mount point
install.wim, discarding all possible changes (
dism /unmount-image /mountdir:%CD%\mount /discard)
The findings from this were as follows:
For reference I am giving the SHA-2 and SHA-1 of the
77dde20a2eed36696f2f5e036a838ff0fbc45dec33ad7647c789397c96553240 netathrx.inf 5a57d3a77021e14bec535dbe2d05ee734ec36dd0 netathrx.inf
After verifying these things the path to fixing this immediate issue seemed clear (although I did not know at the point whether a bigger issue would be hiding behind this one).
Due to the restrictive ACL of the
%SystemRoot%\System32\DriverStore\FileRepository I opted to "abuse" PsExec to impersonate
SYSTEM (aka LocalSystem). This can be done - from an elevated prompt - by executing
psexec -sid %COMSPEC% (or even
psexec -sid cmd.exe).
This way I was now able (current working directory was
%SystemRoot%) to make the directory for the missing INF file:
after that I simply hardlinked the file in place:
mklink /h System32\DriverStore\FileRepository\netathrx.inf_amd64_220db23f5419ea8d\netathrx.inf INF\netathrx.inf
Without reboot I was able to initiate another attempt of installing said cumulative update and reboot to see it succeed.
And indeed it succeeded this time.
Hope this detailed description helps others to resolve similar issues. It's unfortunately a highly manual process and I was surprised to see that
dism /online /cleanup-image /checkhealth,
dism /online /cleanup-image /scanhealth and
dism /online /cleanup-image /restorehealth didn't report or fix the issue.
NOTE: please be aware that inside the
install.wim the folder
netathrx.inf_amd64_220db23f5419ea8d contains more files than just the INF. I suspect that it would make sense to copy (or hardlink if they exist elsewhere) the files for other scenarios.
User contributions licensed under CC BY-SA 3.0