WHCK check kmdf version failed

Hi,
I’m testing my drivers with WHCK and failed when checking the version of kmdf although I build my drivers with WDK 8.1, the lastest version.
I’ve searched around and found at a post that apply a filter could solve this issue so I did but the test still failed.
The test log is like this:
[Find the timestamp and version for file : C:\Windows\System32\DriverStore\FileRepository\dellsensorclassdriver.inf_amd64_neutral_af8fa0a8994818de\WudfUpdate_01011.dll
Message 10/3/2014 4:58:03.371 PM TimeStamp is 2012/07/26 08:29:03 Size is 2367488
Error 10/3/2014 4:58:03.371 PM CoInstaller version doesn’t match any of the RTM fre versions ]
Anyone know how to fix this issue? Many thanks

Hi:

If your INF file references the WdfCoInstallerxxxxx.dll then your driver
package must include the CoInstaller for each platform.

See:

http://msdn.microsoft.com/en-ca/library/windows/hardware/ff544208(v=vs.85).aspx

About half way down the page describes where the redistrutable files can
found that you will need to include with your driver package.

Phil

xxxxx@gmail.com wrote:

I’m testing my drivers with WHCK and failed when checking the version of kmdf although I build my drivers with WDK 8.1, the lastest version.

Well, hold on a minute. It’s complaining about
“DellSensorClassDriver.inf”. Is that actually your driver? (I’m
guessing it’s not.) It’s complaining about the UMDF updater for that
driver, not about the KMDF version for your driver. You will either
need a filter for this, or you’ll need to attach an explanation. Dell
couldn’t have passed system testing on this system with an out-of-band
UMDF release.

The 8.1 WDK didn’t come out until June of 2013. The timestamp in the
dump (2012/07/26) corresponds to WDK 8.0.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi,
Sorry about the UMDF log that I’ve post earlier by mistake but the checking result of kmdf version is the similar with that.
I’ve built the driver with WDK 8.0 then uninstall it and upgrade to WDK 8.1 and re-built the driver. Maybe that is the cause of this issue. Is re-install the WDK 8.1 would fix it?
Many Thanks,

xxxxx@gmail.com wrote:

Sorry about the UMDF log that I’ve post earlier by mistake but the checking result of kmdf version is the similar with that.

Please post the real log entries that show the real problems. As you
can see, I was able to do quite a bit of interpretation from the log
snippet you sent, and saying “similar” just isn’t good enough.

I’ve built the driver with WDK 8.0 then uninstall it and upgrade to WDK 8.1 and re-built the driver. Maybe that is the cause of this issue. Is re-install the WDK 8.1 would fix it?

Shouldn’t be. If you don’t mind a silly question, where did you get the
8.1 WDK? We have sometimes seen issues like these when people have
access to internal Microsoft builds.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thanks for your reply, here is the log of kmdf version check failed:
Device having device id:acpi\int33c2 found
Message 10/3/2014 4:57:33.341 PM Find the timestamp and version for file : C:\Windows\System32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283ea1d91bcb\WdfCoInstaller01011.dll
Message 10/3/2014 4:57:33.341 PM TimeStamp is 2012/07/26 08:28:53 Size is 1818624
Error 10/3/2014 4:57:33.341 PM CoInstaller version doesn’t match any of the RTM fre versions
File: Line: -1
Error Type:
Error Code: 0x0
Error Text: Error 0x00000000
Error 10/3/2014 4:57:33.341 PM CoInstaller version doesn’t meet the requirements
File: Line: -1
Error Type:
Error Code: 0x0
Error Text: Error 0x00000000
End Test 10/3/2014 4:57:33.216 PM wdflogotestcoinstallerversion::CoInstallerVersionCheck::VerifyCoInstallerVersion
Result: Fail

I downloaded the WDK 8.1 from Microsoft’s web site, here is the link: http://www.microsoft.com/en-us/download/details.aspx?id=42273

And I’m building the drivers using Visual Studio 2013 Premium. This develop environment doesnt have any problem, right?

And one more things, when I checked the “wdfcoinstaller01011.dll” in %systemroot%/system32, the file properties shows that it was created at August 2013. Here is the coinstaller section in inx file:
;-------------------------------------------------------------------------
; WDF Coinstaller installation
;-------------------------------------------------------------------------
[DestinationDirs]
CoInstaller_CopyFiles = 11

[DI2C_Inst.NT.CoInstallers]
AddReg = CoInstaller_AddReg
CopyFiles = CoInstaller_CopyFiles

[CoInstaller_CopyFiles]
WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll

[SourceDisksFiles]
WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll = 1

[CoInstaller_AddReg]
HKR, CoInstallers32, 0x00010000, “WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller”

[DI2C_Inst.NT.Wdf]
KmdfService = DI2C, DI2C_wdfsect

[DI2C_wdfsect]
KmdfLibraryVersion = $KMDFVERSION$

With the CoInstaller_CopyFiles = 11, it will copy the file from system32, then how the timestamp in the error log is 2012/07/26?
Any idea? Please help.

xxxxx@gmail.com wrote:

Thanks for your reply, here is the log of kmdf version check failed:

And one more things, when I checked the “wdfcoinstaller01011.dll” in %systemroot%/system32, the file properties shows that it was created at August 2013. Here is the coinstaller section in inx file:

With the CoInstaller_CopyFiles = 11, it will copy the file from system32, then how the timestamp in the error log is 2012/07/26?
Any idea? Please help.

It’s not complaining about the installed co-installer. It’s complaining
about the WdfCoinstaller01011.dll contained in the driver store folder
for the Delli2C driver. Does your driver depend on that driver? If so,
you may need to check with Dell to see if that have a fix.

If not, are you running a whole system WHQL test, or only your driver?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

> It’s not complaining about the installed co-installer. It’s complaining
about the WdfCoinstaller01011.dll contained in the driver store folder
for the Delli2C driver.

And where is that WdfCoinstaller01011.dll come from? I means, the WdfCoinstaller01011.dll in my machine was created at August 2013, then I build the driver with the inx that include Coinstaller Section as shown above. The WdfCoinstaller01011.dll in the driver store must be copied from my developing machine, right?

If not, are you running a whole system WHQL test, or only your driver?

I’m running WHCK 2.0 test for my driver only.

Hi:

And where is that WdfCoinstaller01011.dll come from? I means, the
WdfCoinstaller01011.dll in my machine was created at August 2013, then I
build the driver with the inx that include Coinstaller Section as shown
above. The WdfCoinstaller01011.dll in the driver store must be copied from
my developing machine, right?

The WdfCoinstaller01011.dll should be in the folder with your driver, and
INF file. The INF statement “CoInstaller_CopyFile = 11” is the destination
where the WdfCoInstaller1011.dll file should be placed when your driver is
installed. Better terminology would be that any WdfCoInstaller01011.dll in
the driver store would be there as a result of your driver been installed on
that system, and if necessary copied to %systemroot%/system32 (if newer).

Phil

xxxxx@gmail.com wrote:

> It’s not complaining about the installed co-installer. It’s complaining about the WdfCoinstaller01011.dll contained in the driver store folder for the Delli2C driver.

And where is that WdfCoinstaller01011.dll come from?

From Dell, I assume. Is your driver actually called “DellI2C”? Or is
that driver provided by Dell that you happen to be using? If the driver
package came from Dell, then they’re the ones that bundled this version
of the co-installer.

I means, the WdfCoinstaller01011.dll in my machine was created at August 2013, then I build the driver with the inx that include Coinstaller Section as shown above. The WdfCoinstaller01011.dll in the driver store must be copied from my developing machine, right?

Yes, assuming DellI2C is your driver.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

> The WdfCoinstaller01011.dll should be in the folder with your driver, and
INF file.

Yes, the WdfCoinstaller01011.dll is in the package folder after building the driver, along with the *.sys, *.inf and the *.cat file.

The INF statement “CoInstaller_CopyFile = 11” is the destination
where the WdfCoInstaller1011.dll file should be placed when your driver is
installed.

Yes, it is the destination. And the source would be my “C:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64” right?

Yes, assuming DellI2C is your driver.

Yes, my driver is named “delli2c”, sorry for not make this clear at the beginning.

One silly question: How to check the “timestamp” of the WdfCoInstaller01011.dll ? Currently there is a tab named “digital signature” and a Microsoft signature that was timestamped at Saturday, ?August ?18, ?2012 12:54:56 AM. I assume that that is the timestamp of the file, am I right?

Hi:

Yes, it is the destination. And the source would be my “C:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64” right?

Yes.

I assume that that is the timestamp of the file, am I right?
Yes, When you press the “View” button, you will see more information, that shows a text box with a label “Signing Time”, this may be a better term when the reference is the digital signature of a file. As timestamp could also refer to the Created:, Modified: and Accessed: fields in the property page of a file.

Phil

> Yes, When you press the “View” button, you will see more information, that shows
a text box with a label “Signing Time”, this may be a better term when the
reference is the digital signature of a file. As timestamp could also refer to
the Created:, Modified: and Accessed: fields in the property page of a file.

Thanks, so my WdfCoInstaller01011.dll in “C:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64” was timestamped at August 18, 2012 12:54:56 AM

And the error log:
[ Message 10/3/2014 4:57:33.341 PM TimeStamp is 2012/07/26 08:28:53 Size is
1818624
Error 10/3/2014 4:57:33.341 PM CoInstaller version doesn’t match any of the RTM
fre versions ]

shows that the timestamp is 2012/07/26 08:28:53. How could that happen?

Any ideas?

On Oct 8, 2014, at 9:29 PM, xxxxx@gmail.com wrote:

> Yes, When you press the “View” button, you will see more information, that shows
a text box with a label “Signing Time”, this may be a better term when the
reference is the digital signature of a file. As timestamp could also refer to
the Created:, Modified: and Accessed: fields in the property page of a file.

Thanks, so my WdfCoInstaller01011.dll in “C:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64” was timestamped at August 18, 2012 12:54:56 AM

What is the actual timestamp on the file? That?s shown using ?dir? in a command prompt, or in the details view of Explorer, although I?m finding it hard to believe that I have to explain that.

And the error log:
[ Message 10/3/2014 4:57:33.341 PM TimeStamp is 2012/07/26 08:28:53 Size is
1818624
Error 10/3/2014 4:57:33.341 PM CoInstaller version doesn’t match any of the RTM
fre versions ]

shows that the timestamp is 2012/07/26 08:28:53. How could that happen?

Do you possibly have multiple copies of your driver package in the driver store?

Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

> Do you possibly have multiple copies of your driver package in the driver store?

Here is the driver store after install the driver:

%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.cat
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.inf
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.PNF
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.sys
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\WdfCoInstaller01011.dll
%systemroot%\system32\DriverStore\FileRepository\delli2c.PNF
%systemroot%\system32\DriverStore\FileRepository\delli2c.cat
%systemroot%\system32\DriverStore\FileRepository\delli2c.sys
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf

Its all normal, right?

xxxxx@gmail.com wrote:

> Do you possibly have multiple copies of your driver package in the driver store?
Here is the driver store after install the driver:

%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.cat
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.inf
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.PNF
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\delli2c.sys
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\WdfCoInstaller01011.dll
%systemroot%\system32\DriverStore\FileRepository\delli2c.PNF
%systemroot%\system32\DriverStore\FileRepository\delli2c.cat
%systemroot%\system32\DriverStore\FileRepository\delli2c.sys
%systemroot%\system32\DriverStore\FileRepository\delli2c.inf

Its all normal, right?

Is that the ONLY folder in the driver store that contains your driver?
Is that, in fact, the path it was complaining about?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

> Is that the ONLY folder in the driver store that contains your driver?

Yes.

Is that, in fact, the path it was complaining about?

Yes, the path in the log is
"C:\Windows\System32\DriverStore\FileRepository\delli2c.inf_amd64_neutral_3c75283e
a1d91bcb\WdfCoInstaller01011.dll "

xxxxx@gmail.com wrote:

Thanks, so my WdfCoInstaller01011.dll in “C:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64” was timestamped at August 18, 2012 12:54:56 AM

And the error log:
[ Message 10/3/2014 4:57:33.341 PM TimeStamp is 2012/07/26 08:28:53 Size is 1818624
Error 10/3/2014 4:57:33.341 PM CoInstaller version doesn’t match any of the RTM fre versions ]

shows that the timestamp is 2012/07/26 08:28:53. How could that happen?

I find this curious. In both the 8.0 and 8.1 WDKs on my system,
WdfCoInstaller01011.dll is 1,795,952 bytes long, and is internally
timestamped 2012/07/25 at 18:28:53. Given the strangeness of timezones,
the timestamp is probably the same. But why is the size different? I
hate to go there, but do you have virus protection on this machine?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

That might be the buggy 1.11 WDF release. See the thread http://www.osronline.com/showthread.cfm?link=230798
Jan

On Oct 10, 2014, at 10:57 AM, Tim Roberts > wrote:

xxxxx@gmail.commailto:xxxxx wrote:
Thanks, so my WdfCoInstaller01011.dll in “C:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64” was timestamped at August 18, 2012 12:54:56 AM

And the error log:
[Message 10/3/2014 4:57:33.341 PM TimeStamp is 2012/07/26 08:28:53 Size is 1818624
Error 10/3/2014 4:57:33.341 PM CoInstaller version doesn’t match any of the RTM fre versions]

shows that the timestamp is 2012/07/26 08:28:53. How could that happen?

I find this curious. In both the 8.0 and 8.1 WDKs on my system,
WdfCoInstaller01011.dll is 1,795,952 bytes long, and is internally
timestamped 2012/07/25 at 18:28:53. Given the strangeness of timezones,
the timestamp is probably the same. But why is the size different? I
hate to go there, but do you have virus protection on this machine?


Tim Roberts, xxxxx@probo.commailto:xxxxx
Providenza & Boekelheide, Inc.


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx>

Just a unverified hypothesis, the 08:28:53 timestamped WdfCoinstaller.dll is the buggy version included in the original WDK 8.0 download. The 18:28:53 timestamped version, with an identical version resource, was the correct one available as a separate download. Unfortunately if you saved the original WDK 8.0 and install it today, you may get the buggy WdfCoinstaller.dll. I guess you are supposed to be psychic to know you need to install an updated version of WdfCoinstaller.dll, or that you need to download a new build of the WDK 8.0. These timestamps are the internal version resource not the file system timestamp.

If people who have the different versions in front of them can report the version resource, date resource, file size, and signature timestamp, and which one is broken, we can add support or challenge this hypothesis of what the story really is.

I looked at the MSFT support pages on the topic of WDF 1.11 and didn?t offhand see any mention of this issue. Does anybody know a MSFT support page that does give the real story? About all I could find was https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/91def370-1703-4b9d-b626-3d7d16870092/whck-error-for-wdk-80-user-mode-driver-coinstaller-does-not-match-rtm-fre-version?forum=wdk

I think the simple heads up for developers is if you download the WDK 8.0 just after it?s release, and didn?t update the WDFCoinstaller, you may be using the buggy version. The MSFT download page for the WDK 8.0 no longer lists the WDF update, and am guessing it was rolled into the WDK bits. It would be nice to know exactly when this happened and how to tell the different WDK 8.0 releases apart.

I also added a little note to the wikipedia page on WDK versions to bring this issue to developers attention.

Jan

On Oct 10, 2014, at 7:04 PM, Jan Bottorff > wrote:

That might be the buggy 1.11 WDF release. See the thread http://www.osronline.com/showthread.cfm?link=230798
Jan

On Oct 10, 2014, at 10:57 AM, Tim Roberts > wrote:

xxxxx@gmail.commailto:xxxxx wrote:
Thanks, so my WdfCoInstaller01011.dll in “C:\Program Files (x86)\Windows Kits\8.1\Redist\wdf\x64” was timestamped at August 18, 2012 12:54:56 AM

And the error log:
[Message 10/3/2014 4:57:33.341 PM TimeStamp is 2012/07/26 08:28:53 Size is 1818624
Error 10/3/2014 4:57:33.341 PM CoInstaller version doesn’t match any of the RTM fre versions]

shows that the timestamp is 2012/07/26 08:28:53. How could that happen?

I find this curious. In both the 8.0 and 8.1 WDKs on my system,
WdfCoInstaller01011.dll is 1,795,952 bytes long, and is internally
timestamped 2012/07/25 at 18:28:53. Given the strangeness of timezones,
the timestamp is probably the same. But why is the size different? I
hate to go there, but do you have virus protection on this machine?


Tim Roberts, xxxxx@probo.commailto:xxxxx
Providenza & Boekelheide, Inc.


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx>