Can a kmdf driver be used in a winpe environment

I have a driver for windows 2008 that I try to load in a winpe environment.

The driver is kmdf based. When I try to load it, I get errors related to the coinstaller.

Here is the relevant part from the setupapi.dev.log:

ump: Creating Install Process: DrvInst.exe 14:27:11.442
! ndv: Installing NULL driver!
dvi: Set selected driver complete.
pol: Device installation is subject to policy
dvi: {DIF_ALLOW_INSTALL} 14:27:11.442
dvi: No class installer for ‘Ethernet Controller’
dvi: Using exported function ‘WdfCoInstaller’ in module ‘X:\Windows\system32\wdfcoinstaller01007.dll’.
dvi: CoInstaller 1 == wdfcoinstaller01007.dll,WdfCoInstaller
dvi: CoInstaller 1: Enter 14:27:11.457
dvi: CoInstaller 1: Exit
dvi: Default installer: Enter 14:27:11.457
dvi: Default installer: Exit
dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 14:27:11.457
dvi: {DIF_INSTALLDEVICE} 14:27:11.457
dvi: No class installer for ‘Ethernet Controller’
dvi: CoInstaller 1: Enter 14:27:11.457
!!! dvi: CoInstaller 1: failed(0xe0000203)!
!!! dvi: Error 0xe0000203: There is no driver selected for the device information set or element.
dvi: {DIF_INSTALLDEVICE - exit(0xe0000203)} 14:27:11.457
dvi: {DIF_DESTROYPRIVATEDATA} 14:27:11.457
dvi: CoInstaller 1: Enter 14:27:11.457
dvi: CoInstaller 1: Exit
dvi: Default installer: Enter 14:27:11.457
dvi: Default installer: Exit
dvi: {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)} 14:27:11.457

If I remove all parts of the inf that are kmdf related I can install my driver but it doesn’t load.
Even if I create an empty driver it doesn’t load. (An empty driver == driver with only DriverEntry returning 0).

If I remove the line
KMDF_VERSION_MAJOR=1
from the sources file, the driver loads.

Is there a solution to this problem?

Thanks
Tzachi

There was a bug in the 1.7 coinstaller that affected NULL driver scenarios. Try with the 1.9 coinstaller from the Win7 Beta WDK and see if that helps.

I’m not sure why this works on srv2k8 and not WinPE, are you using a different installation mechanism?

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@mellanox.co.il
Sent: Thursday, July 02, 2009 11:44 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Can a kmdf driver be used in a winpe environment

I have a driver for windows 2008 that I try to load in a winpe environment.

The driver is kmdf based. When I try to load it, I get errors related to the coinstaller.

Here is the relevant part from the setupapi.dev.log:

ump: Creating Install Process: DrvInst.exe 14:27:11.442
! ndv: Installing NULL driver!
dvi: Set selected driver complete.
pol: Device installation is subject to policy
dvi: {DIF_ALLOW_INSTALL} 14:27:11.442
dvi: No class installer for ‘Ethernet Controller’
dvi: Using exported function ‘WdfCoInstaller’ in module ‘X:\Windows\system32\wdfcoinstaller01007.dll’.
dvi: CoInstaller 1 == wdfcoinstaller01007.dll,WdfCoInstaller
dvi: CoInstaller 1: Enter 14:27:11.457
dvi: CoInstaller 1: Exit
dvi: Default installer: Enter 14:27:11.457
dvi: Default installer: Exit
dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 14:27:11.457
dvi: {DIF_INSTALLDEVICE} 14:27:11.457
dvi: No class installer for ‘Ethernet Controller’
dvi: CoInstaller 1: Enter 14:27:11.457
!!! dvi: CoInstaller 1: failed(0xe0000203)!
!!! dvi: Error 0xe0000203: There is no driver selected for the device information set or element.
dvi: {DIF_INSTALLDEVICE - exit(0xe0000203)} 14:27:11.457
dvi: {DIF_DESTROYPRIVATEDATA} 14:27:11.457
dvi: CoInstaller 1: Enter 14:27:11.457
dvi: CoInstaller 1: Exit
dvi: Default installer: Enter 14:27:11.457
dvi: Default installer: Exit
dvi: {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)} 14:27:11.457

If I remove all parts of the inf that are kmdf related I can install my driver but it doesn’t load.
Even if I create an empty driver it doesn’t load. (An empty driver == driver with only DriverEntry returning 0).

If I remove the line
KMDF_VERSION_MAJOR=1
from the sources file, the driver loads.

Is there a solution to this problem?

Thanks
Tzachi


NTDEV is sponsored by OSR

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

I don’t think that this will help. If I understand correctly, my problem is that co-installers are not supported on winpe. As a result a new co-installer will not help.

Please also note that a new version of co-installer will also require a reboot, which is not practical on a winpe enviorment (I want to be able to boot from cdrom for example).

server 2008 ships with its own version of KMDF, it will be at least v1.5, probably v1.7. you can just compile your driver against the right minor version and use the INF to install it w/out the coinstaller and it should work b/c the version of KMDF your driver requests is already present

d


From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] on behalf of xxxxx@mellanox.co.il [xxxxx@mellanox.co.il]
Sent: Thursday, July 02, 2009 11:06 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Can a kmdf driver be used in a winpe environment

I don’t think that this will help. If I understand correctly, my problem is that co-installers are not supported on winpe. As a result a new co-installer will not help.

Please also note that a new version of co-installer will also require a reboot, which is not practical on a winpe enviorment (I want to be able to boot from cdrom for example).


NTDEV is sponsored by OSR

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