Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


Server 2008(32) : Reboot is required, because the in-memory KMDF version is older than the coinstall

zviveredzvivered Member Posts: 85

Hello,

I'm trying to install an old PCI driver created with: Windows Driver Kit Version 7.1.0
The inf is using WdfCoInstaller01009.dll

The installation (using Update from device manager) failed: code 0x1
In setupact.log I got:

WdfCoInstaller: [02/04/2021 10:01.17.434] DIF_INSTALLDEVICE: Pre-Processing
WdfCoInstaller: [02/04/2021 10:01.17.465] ReadComponents: WdfSection for Driver Service Pci9x5x using KMDF lib version Major 0x1, minor 0x9
WdfCoInstaller: [02/04/2021 10:01.17.497] DIF_INSTALLDEVICE: Coinstaller version: 1.9.7600
WdfCoInstaller: [02/04/2021 10:01.17.512] DIF_INSTALLDEVICE: KMDF in-memory version: 1.7.6001
WdfCoInstaller: [02/04/2021 10:01.17.512] DIF_INSTALLDEVICE: KMDF on-disk version: 1.7.6001
WdfCoInstaller: [02/04/2021 10:01.17.543] Service Wdf01000 is running
WdfCoInstaller: [02/04/2021 10:01.17.543] DIF_INSTALLDEVICE: Reboot is required, because the in-memory KMDF version is older than the coinstaller's version.
WdfCoInstaller: [02/04/2021 10:01.17.559] DIF_INSTALLDEVICE: Update is required, because the on-disk KMDF version is older than the coinstaller
WdfCoInstaller: [02/04/2021 10:01.17.637] VerifyMSRoot: exit: error(0) The operation completed successfully.

Before installing my driver I uninstalled an older **WDM **driver by:
1. Uninstall + delete from device manager
2. delete relevant inf from windows\inf
3. Reboot

Can you please tell why am I still getting the "older KMDF" message ?

Thank you,
Zvika

Comments

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,830
    edited February 5

    The error messages explain what's happening in detail. Did you not believe it? There is ANOTHER DRIVER on your system that uses KMDF (a number of operating system drivers in Vista use KMDF). That driver installed an older version, and that version is in memory. Because of that, the co-installer can't upgrade to the version that you require (1.9) without a reboot. It's just that simple.

    This is partly why Microsoft changed the policy, so that each version comes with a KMDF version and sticks with it.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • zviveredzvivered Member Posts: 85

    Hi Tim,

    I tried to reboot the PC, but still got this error.
    How can I keep the "ANOTHER DRIVER" and still install mine ?

    Thank you,
    Zvika

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 8,317

    It should “just work”... as I’m sure you know, versions of KMDF are upwardly compatible. So... the driver using V1.7 should be fine using V1.9 (which is what you’re trying to install).

    As to why this doesn’t work... ??? More debugging is clearly in order. But, it should just work.

    Peter

    Peter Viscarola
    OSR
    @OSRDrivers

  • Scott_Noone_(OSR)Scott_Noone_(OSR) Administrator Posts: 3,401

    Target your driver to KMDF 1.7 and be done with it.

    -scott
    OSR

  • zviveredzvivered Member Posts: 85

    Hi All,

    Is it possible to know what is the other driver that needs 1.7 ?
    It is not a driver that I developed.

    Thank you,
    Zvika

  • Scott_Noone_(OSR)Scott_Noone_(OSR) Administrator Posts: 3,401

    Server 2008 shipped with 1.7 included. Therefore if you target 1.7 you're guaranteed that the framework won't need to be updated by your installer.

    -scott
    OSR

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,830

    Is it possible to know what is the other driver that needs 1.7 ?

    Sure. You can run the kernel debugger. There are commands in the wdfkd extension that can tell you every KMDF driver that is loaded. But what good will that do you? You aren't going to restart all of those, except by rebooting.

    It is not a driver that I developed.

    Right. There are now quite a number of standard Microsoft drivers that use KMDF.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • zviveredzvivered Member Posts: 85

    Hi All,

    makefile.inc contains the following:

    `_LNG=$(LANGUAGE)
    _INX=.
    STAMP=stampinf -f [email protected] -a $(_BUILDARCH) -k $(KMDF_VERSION_MAJOR).$(KMDF_VERSION_MINOR)

    $(OBJ_PATH)\$(O)\$(INF_NAME).inf: $(_INX)\$(INF_NAME).inx
    copy $(_INX)\$(
    $(STAMP)
    `

    What is the right way to "target 1.7" ?
    Should I search the define KMDF_VERSION_MINOR and set it to 7 ?

    If I'm a card's vendor, does it mean that I should provide few versions (e.g 1.7, 1.9) for a specific card ?

    Thank you,
    Zvika

  • Scott_Noone_(OSR)Scott_Noone_(OSR) Administrator Posts: 3,401

    SOURCES and Makefile! I haven't used that in quite a while but I think you need to specify major and minor in your SOURCES:

    KMDF_VERSION_MAJOR=1
    KMDF_VERSION_MINOR=7

    If you don't need newer Framework features you can ship one driver running 1.7 on all platforms.

    -scott
    OSR

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,830

    If I'm a card's vendor, does it mean that I should provide few versions (e.g 1.7, 1.9) for a specific card ?

    No. You embed the minimum version you need. A driver built to expect 1.7 will work just fine on 1.25. Very, very few drivers need anything newer than 1.7.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Writing WDF Drivers 7 Dec 2020 LIVE ONLINE
Internals & Software Drivers 25 Jan 2021 LIVE ONLINE
Developing Minifilters 8 March 2021 LIVE ONLINE