WdfCoinstaller01009.dll installation fail 0x80240016 on Vista

Hi,

One of our SDET reported one issue while installing our WDF 1.9 driver on Vista x86 machine.

The problem here is because of the WDF upgrading from 1.7 to 1.9 on Vista. The in-box WDF version on Vista is 1.7. Upgrading invokes the Windows Update where the error happens.

SetupApi.dev.log
!!! dvi: CoInstaller 2: failed(0x80240016)!
dvi: CoInstaller 1: Enter (Post Processing) 14:05:26.559
dvi: CoInstaller 1: Exit (Post Processing)
dvi: {DIF_INSTALLDEVICE - exit(0x80240016)} 14:05:26.560
!!! ndv: Error(80240016) installing device!

SetupAct.log
WdfCoInstaller: [07/16/2012 14:04.21.572] Invoking “C:\Windows\system32\wusa.exe “C:\Windows\Temp\WdfTemp\Microsoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu” /quiet /norestart”.

WdfCoInstaller: [07/16/2012 14:05.26.413] The update process returned error code :status(80240016) .
WdfCoInstaller: [07/16/2012 14:05.26.504] For additional information please look at the log files %windir%\windowsupdate.log and %windir%\Logs\CBS\CBS.log

WindowsUpdate.log
2012-07-16 14:05:21:560 2996 ae4 COMAPI -------------
2012-07-16 14:05:21:560 2996 ae4 COMAPI – START – COMAPI: Install [ClientId = wusa]
2012-07-16 14:05:21:560 2996 ae4 COMAPI ---------
2012-07-16 14:05:21:560 2996 ae4 COMAPI - Allow source prompts: Yes; Forced: No; Force quiet: No
2012-07-16 14:05:21:560 2996 ae4 COMAPI - Updates in request: 1
2012-07-16 14:05:21:560 2996 ae4 COMAPI - ServiceID = {571EBD53-2784-4D5E-9B1B-9D5C3F724648} Third party service
2012-07-16 14:05:21:561 2996 ae4 COMAPI WARNING: ISusInternal::BeginInstallUpdates3 failed, hr=80240016

I searched the entire forum and saw some similar issues but the error code was different. Can anyone help me figure out the root cause and give me the work arround solution?

Thanks,
Marshall

Hi,

as far as I know there is a problem when updating wdf.
In the update case , Wdf1.7 still has an open handle on the in memory loaded DLL that it doesn’t release. A reboot is needed to finish the update.
I discovered the problem on Vista when installing on different platforms.

hope tis helps,
HJR

Hi,

you can look at the Windows Update Error Codes and find out if you have a second (msi) installation running. If this is the case, you might have to deal with “chained MSI installations”, which is possible beginning with Windows installer 4.5 , but imho should be avoided if possible.

http://inetexplorer.mvps.org/answers/63.html

0x80240016 -2145124330 SUS_E_INSTALL_NOT_ALLOWE try to install while another install is going on or reboot is pending

Concerning the reboot pending you can have a look at the following link:
http://www.osronline.com/showthread.cfm?link=172462

I hope this helps,
HJR

Thanks for the information. Now to work arround this issue, I pause the WU service before doig the driver installation and resume the WU service in the end. The code is as below:

hr = CoCreateInstance(CLSID_AutomaticUpdates,
NULL,
CLSCTX_INPROC_SERVER,
IID_IAutomaticUpdates,
(LPVOID*)&pAU
);
hr = pAU->Pause();

However, the CBS log in the latest test report indicates another new error code:

0x8024800C WU_E_DS_LOCKTIMEOUTEXPIRED The data store section could not be locked within the allotted time.

Do you know how I can make it work without returnning error?

Thanks,
Marshall